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

Tablestore:時系列データの TTL

最終更新日:Dec 28, 2024

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

使用上の注意

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

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

  • TTL を変更する前に、DescribeTimeseriesTable オペレーションを呼び出して、時系列データの TTL を表示できます。

TTL

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

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

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

たとえば、時系列データテーブルのデータの TTL を 86400(1 日)に設定したとします。2016 年 7 月 21 日午前 0 時 0 分 0 秒(UTC+8)に、2016 年 7 月 20 日午前 0 時 0 分 0 秒(UTC+8)より前にテーブルに書き込まれたデータは期限切れになります。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

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