すべてのプロダクト
Search
ドキュメントセンター

Tablestore:時系列データの TTL

最終更新日:Apr 09, 2025

時系列テーブルの既存データを自動的に削除する場合、TTL(Time To Live:生存時間)を設定して時系列データを管理できます。これはストレージ容量を節約し、ストレージコストを削減するのに役立ちます。時系列データの TTL を設定した後、TTL を変更してデータの保持期間を延長できます。

使用上の注意

  • 削除されたデータは復元できません。ご注意ください。

    TTL を設定してデータを自動的に削除する前に既存データをバックアップする必要がある場合は、DataWorks の Data Integration サービスを使用して時系列データを Object Storage Service (OSS) にエクスポートできます。詳細については、「概要」をご参照ください。

  • TTL を変更する前に、DescribeTimeseriesTable 操作を呼び出して、時系列データの TTL を表示できます。

TTL

TimeSeries モデルでは、データは時系列メタデータと時系列テーブルのデータで構成されます。時系列メタデータは時系列メタデータテーブルに格納され、時系列テーブルのデータは時系列データテーブルに格納されます。Tablestore では、データの TTL を設定することで、時系列メタデータと時系列テーブルのデータを管理できます。

時系列テーブルのデータの TTL

時系列データテーブルの属性として、TTL は時系列テーブルのデータの保持期間を示します。データの TTL は秒単位で指定されます。時系列テーブルのデータが指定された TTL 値を超える期間保持されると、Tablestore は非同期モードでデータを自動的に削除します。

たとえば、時系列データテーブルのデータの TTL を 86400(1 日)に設定します。00:00:00 UTC + 08:00 on July 21, 2016 に、00:00:00 UTC + 08:00 on July 20, 2016 より前にテーブルに書き込まれたデータの有効期限が切れます。Tablestore は、有効期限切れのデータを非同期モードで自動的に削除します。

時系列テーブルの作成時に TTL 値を指定しない場合、デフォルト値 -1 が使用されます。これは、時系列テーブルのデータの有効期限が切れないことを示します。カスタム TTL 値を指定することもできます。時系列テーブルの作成後、UpdateTimeseriesTable 操作を呼び出して、データの TTL を変更できます。

データが TTL 値を超える期間保持されている場合、データは無効になり、Tablestore によってデータが削除されていない場合でも、データをクエリすることはできません。

  • TTL 値を小さくすると、時系列テーブルの一部のデータの保持期間が新しい TTL 値を超える場合があります。Tablestore は、有効期限切れのデータを非同期的に削除します。

  • TTL 値を大きくすると、Tablestore がテーブル内のデータを削除せず、データが新しい TTL 値以内の期間保持されている場合、時系列テーブル内のデータをクエリできます。

時系列メタデータの TTL

時系列メタデータテーブルの属性として、TTL は時系列メタデータの保持期間を示します。メタデータの TTL は秒単位で指定されます。時系列メタデータが指定された TTL 値を超える期間保持されると、Tablestore は非同期モードでメタデータを自動的に削除します。時系列テーブルのデータは削除されません。

重要

時系列のメタデータの有効期限が切れ、時系列のデータの有効期限が切れていない場合は、GetTimeseriesData 操作を呼び出して、時系列識別子を指定することで時系列テーブルのデータをクエリできます。

時系列テーブルの作成時に TTL 値を指定しない場合、デフォルト値 -1 が使用されます。これは、時系列テーブルのデータの有効期限が切れないことを示します。カスタム TTL 値を指定することもできます。時系列テーブルの作成後、UpdateTimeseriesTable 操作を呼び出して、TTL を変更できます。

重要

時系列メタデータの属性は _attributes 列に格納されます。TTL が -1 に設定されている時系列メタデータの属性を更新できます。値 -1 は、メタデータの有効期限が切れないことを示します。

時系列メタデータの TTL を -1 から 604800(7 日)以上の値に変更する場合は、時系列メタデータの属性を更新する必要がないことを確認してください。さらに、[時系列メタデータの属性を更新するかどうか][いいえ] に設定する必要があります。

[時系列メタデータの属性を更新するかどうか][はい] に設定する場合は、[時系列メタデータの TTL]-1 に設定する必要があります。

時系列メタデータが TTL 値を超える期間保持されている場合、メタデータは無効になり、Tablestore によってメタデータが削除されていない場合でも、メタデータをクエリすることはできません。

  • TTL 値を小さくすると、時系列メタデータテーブルの一部の時系列メタデータの保持期間が新しい TTL 値を超える場合があります。Tablestore は、有効期限切れのメタデータを非同期的に削除します。

  • TTL 値を大きくすると、Tablestore がメタデータを削除せず、メタデータが新しい TTL 値以内の期間保持されている場合、時系列メタデータをクエリできます。

方法

時系列テーブルを作成するときに、テーブル内のデータの TTL を設定できます。時系列テーブルを作成した後に TTL を変更することもできます。このトピックでは、時系列テーブルを作成した後に TTL を変更する方法の例を示します。Tablestore コンソール、CLI、または SDK を使用して TTL を変更できます。

説明
  • データテーブルの作成時に TTL を設定する方法の詳細については、「時系列テーブルの操作」をご参照ください。

  • サポートされる機能は、TTL を変更するために使用するメソッドによって異なります。

Tablestore コンソールの使用

Tablestore コンソールを使用して、時系列テーブルの時系列メタデータまたはデータの TTL を変更できます。

時系列テーブルのデータの TTL を変更する

  1. [インスタンス管理] ページに移動します。

    1. Tablestore コンソール にログインします。

    2. 上部のナビゲーションバーで、リソースグループとリージョンを選択します。

    3. [概要] ページで、管理するインスタンスの名前をクリックするか、インスタンスの [アクション] 列の [インスタンスの管理] をクリックします。

  2. [インスタンスの詳細] タブの下部にある [時系列テーブル] タブをクリックします。

  3. [時系列テーブル] タブで、管理する時系列テーブルの名前をクリックします。

  4. 説明[基本情報] タブの image.pngデータライフサイクル セクションで、 の横にある アイコンをクリックします。

  5. 表示されるダイアログボックスで、TTL 値を変更します。

    TTL 値は、時系列テーブルのデータの保持期間です。単位:秒。値は -1 または 86400 以上の値である必要があります。値 -1 は、データの有効期限が切れないことを指定します。値 86400 は 1 日を指定します。

  6. [はい] をクリックします。

時系列メタデータの TTL を変更する

  1. [インスタンス管理] ページに移動します。

    1. Tablestore コンソール にログインします。

    2. 上部のナビゲーションバーで、リソースグループとリージョンを選択します。

    3. [概要] ページで、管理するインスタンスの名前をクリックするか、インスタンスの [アクション] 列の [インスタンスの管理] をクリックします。

  2. [インスタンスの詳細] タブの下部にある [時系列テーブル] タブをクリックします。

  3. [時系列テーブル] タブで、管理する時系列テーブルの名前をクリックします。

  4. 説明[基本情報] タブの image.pngデータライフサイクル セクションで、 の横にある アイコンをクリックします。

  5. 表示されるダイアログボックスで、TTL 値を変更します。

    TTL 値は、時系列メタデータテーブルの時系列メタデータの保持期間です。単位:秒。値は -1 または 604800 以上の値である必要があります。値 -1 は、メタデータの有効期限が切れないことを指定します。値 604800 は 7 日を指定します。

  6. [はい] をクリックします。

Tablestore CLI の使用

Tablestore CLI を使用して、時系列テーブルのデータの TTL を変更できます。

alter コマンドを実行して、テーブルの構成を更新します。詳細については、「時系列テーブルを更新する」をご参照ください。

次のサンプルコードは、時系列テーブルのデータの TTL を 86400(1 日)に変更する方法の例を示しています。

alter --ttl 86400 --ts

Tablestore SDK の使用

Tablestore SDK を使用して、時系列テーブルの時系列メタデータまたはデータの TTL を変更できます。

時系列テーブルのデータの TTL を変更する

次のサンプルコードは、時系列テーブルのデータの TTL を 3 年に変更する方法の例を示しています。

private static void updateTimeseriesTable(TimeseriesClient client) {
    // 時系列テーブルの名前を指定します。
    String tableName = "<TIMESERIES_TABLE>";
    UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
    // TTL を 3 年に変更します。
    updateTimeseriesTableRequest.setTimeseriesTableOptions(new TimeseriesTableOptions(86400 * 365 * 3));
    client.updateTimeseriesTable(updateTimeseriesTableRequest);

    DescribeTimeseriesTableResponse describeTimeseriesTableResponse = client.describeTimeseriesTable(new DescribeTimeseriesTableRequest(tableName));
    TimeseriesTableMeta tableMeta = describeTimeseriesTableResponse.getTimeseriesTableMeta();
    // 変更された TTL を表示します。
    System.out.println(tableMeta.getTimeseriesTableOptions().getTimeToLive());
}

時系列メタデータの TTL を変更する

次のサンプルコードは、時系列テーブルの時系列メタデータに指定された TTL 値を 94608000(3 年)に変更する方法の例を示しています。

private static void updateTimeseriesMetaTableTTL(TimeseriesClient client) {
    // 時系列テーブルの名前を指定します。
    String tableName = "<TIMESERIES_TABLE>";
    UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
    // TTL 値を 94608000(3 年)に変更します。
    TimeseriesMetaOptions options = new TimeseriesMetaOptions();
    options.setMetaTimeToLive(86400 * 365 * 3);
    updateTimeseriesTableRequest.setTimeseriesMetaOptions(options);
    client.updateTimeseriesTable(updateTimeseriesTableRequest);
}

FAQ

時系列データを削除するにはどうすればよいですか?

関連情報

分析ストアは、時系列データ向けに設計された低コストのストレージエンジンです。分析ストアを使用して、時系列データを低コストで保存し、時系列データを効率的にクエリおよび分析できます。詳細については、「時系列分析ストア」をご参照ください。