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

Tablestore:時系列テーブルの操作

最終更新日:Dec 28, 2024

TimeSeriesモデルでは、時系列データは時系列テーブルに格納され、アプリケーションはペタバイト規模のデータの同時書き込みと読み取りが可能になり、ストレージコストを削減できます。時系列テーブルを作成する際に、テーブル内のデータの有効期間(TTL)を指定できます。時系列テーブルを作成した後、ビジネス要件に基づいて時系列テーブルを管理できます。たとえば、インスタンス内のすべての時系列テーブルの名前をクエリしたり、時系列テーブルの構成を更新したりできます。

使用上の注意

  • 1 つのインスタンスに最大 64 個のテーブルを作成できます。テーブルには、データテーブル、セカンダリインデックステーブル、、時系列テーブルが含まれます。制限の詳細については、TimeSeriesモデルの制限を参照してください。

    時系列テーブルは、時系列メタデータテーブルと時系列データテーブルで構成されます。したがって、時系列テーブルは2つのテーブルに相当します。

  • TimeSeriesモデルは、次のリージョンでサポートされています:中国(杭州)、中国(上海)、中国(北京)、中国(張家口)、中国(ウランチャブ)、中国(深セン)、中国(成都)、中国(香港)、日本(東京)、マレーシア(クアラルンプール)、ドイツ(フランクフルト)、インドネシア(ジャカルタ)、英国(ロンドン)、米国(シリコンバレー)、米国(バージニア)、SAU (リヤド - パートナーリージョン)、およびシンガポール。

機能

Tablestoreは、CreateTimeseriesTableListTimeseriesTableUpdateTimeseriesTableDescribeTimeseriesTableDeleteTimeseriesTable操作を提供し、時系列テーブルの管理を支援します。

TablestoreのTimeSeriesモデルを使用して時系列データを格納する前に、CreateTimeseriesTable操作を呼び出して時系列テーブルを作成する必要があります。

時系列テーブルを作成する際は、時系列テーブルの名前を指定し、ビジネス要件に基づいてテーブル内のデータのTTLを指定する必要があります。

時系列テーブルのデータのTTLを指定すると、Tablestoreは保持期間がTTL値を超えた時系列データを非同期モードで自動的に削除します。詳細については、時系列データのTTLを参照してください。

時系列テーブルを作成した後、ビジネス要件に基づいて時系列テーブルを管理できます。次の表に、時系列テーブルで実行できる操作を示します。

操作

説明

時系列テーブルの名前をクエリする

インスタンス内の既存の時系列テーブルを表示するには、ListTimeseriesTable操作を呼び出して、インスタンスに作成されたすべての時系列テーブルの名前をクエリします。

時系列テーブルの構成を更新する

時系列テーブルの履歴データを削除したり、データの保持期間を延長したりするには、UpdateTimeseriesTable操作を呼び出して、時系列テーブルのデータのTTLを変更したり、時系列メタデータのTTLを変更したり、時系列の属性列を変更可能にするかどうかを指定したりします。

重要

時系列メタデータが指定されたTTL値を超える期間保持されている場合、Tablestoreは非同期モードでメタデータを自動的に削除します。時系列テーブルのデータは削除されません。 GetTimeseriesData操作を呼び出して、時系列識別子を指定することで、時系列テーブルのデータをクエリできます。

  • 時系列テーブルのデータのTTLを変更した後、Tablestoreは保持期間が時系列テーブルの新しいTTL値を超えたデータを非同期モードで自動的に削除します。

  • 時系列メタデータのTTLを変更した後、Tablestoreは保持期間が新しいTTL値を超えた時系列メタデータを非同期モードで自動的に削除します。

    重要

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

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

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

  • デフォルトでは、時系列メタデータの属性列は変更可能です。ビジネス要件に基づいて、時系列メタデータの属性列を変更できないように指定することもできます。

時系列テーブルに関する情報をクエリする

時系列テーブルの構成の詳細を表示するには、DescribeTimeseriesTable操作を呼び出して、時系列テーブルのデータのTTL、テーブルステータス、時系列メタデータの構成(時系列メタデータの属性列を変更できるかどうかなど)などの構成をクエリします。

時系列テーブルを削除する

インスタンスから時系列テーブルを削除するには、DeleteTimeseriesTable操作を呼び出します。

重要

削除された時系列テーブルは復元できません。ご注意ください。

方法

Tablestoreコンソールで、またはTablestore CLIまたはSDKを使用して、時系列テーブルで操作を実行できます。

説明

サポートされる機能は、時系列テーブルで操作を実行するために使用するメソッドによって異なります。

時系列テーブルで操作を実行する前に、次の準備が整っていることを確認してください。

Tablestoreコンソールを使用する

Tablestoreコンソールで時系列テーブルを作成します。

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

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

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

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

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

  3. 時系列テーブルタブで、時系列テーブルの作成をクリックします。

    説明

    ワンクリックでデモを生成をクリックして、サンプルデータを含むテストテーブルを作成してクイックスタートすることもできます。時系列テーブルを作成すると、システムは特定の初期化操作を実行します。時系列が表示されるまで数十秒待つ必要があります。

  4. 時系列テーブルの作成ダイアログボックスで、パラメータを構成します。次の表にパラメータを示します。

    パラメータ

    説明

    名前:

    インスタンス内で時系列テーブルを一意に識別するために使用される時系列テーブルの名前。

    名前は1~128文字で、英字、数字、アンダースコア(_)のみ使用できます。名前は英字またはアンダースコア(_)で始まる必要があります。

    重要

    時系列テーブルの名前は、既存のデータテーブル、セカンダリインデックステーブル、時系列テーブルの名前とは異なる必要があります。

    有効期間

    時系列テーブルのデータの保持期間。単位:秒。システムが、現在の時刻とテーブルに渡された時間列の差が指定されたTTL値を超えていることを検出した場合、システムは期限切れのデータを自動的に削除します。

    重要

    時系列テーブルでは、システムはデータがテーブルに書き込まれた時刻ではなく、テーブルに渡された時間列に基づいてデータが生成された時刻を判断します。

    このパラメータの値は、-1または86400以上の値である必要があります。値-1は、データが期限切れにならないことを指定します。値86400は1日を指定します。

  5. 作成をクリックします。

    時系列テーブルを作成した後、時系列テーブルタブで時系列テーブルを表示できます。時系列テーブルが時系列テーブルのリストに表示されない場合は、fig_tablestore_002アイコンをクリックして時系列テーブルのリストを更新します。

時系列テーブルを作成した後、ビジネス要件に基づいて時系列テーブルを管理できます。次の表に、時系列テーブルで実行できる操作を示します。

操作

説明

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

  1. 時系列テーブルタブで、時系列テーブルの名前をクリックします。

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

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

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

  4. はいをクリックします。

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

  1. 時系列テーブルタブで、時系列テーブルの名前をクリックします。

  2. 説明基本情報image.png時系列メタデータのTTLタブのセクションで、の横にあるアイコンをクリックします。

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

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

  4. はいをクリックします。

時系列メタデータの属性列を変更できるかどうかを指定する

  1. 時系列テーブルタブで、時系列テーブルの名前をクリックします。

  2. 基本情報タブの説明セクションで、image.png時系列メタデータの属性を更新するかどうかの横にあるアイコンをクリックします。

  3. 表示されるダイアログボックスで、はいまたはいいえを選択します。

  4. はいをクリックします。

時系列テーブルを削除する

  1. 時系列テーブルタブで、管理する時系列テーブルを見つけて、アクション列の削除をクリックします。

  2. 表示されるメッセージで、OKをクリックします。

Tablestore CLIを使用する

Tablestore CLIを使用して時系列テーブルを作成するには、createコマンドを実行します。詳細については、時系列テーブルを作成するを参照してください。

次のサンプルコードは、mytableという名前の時系列テーブルを作成する方法の例を示しています。mytableテーブルのデータは期限切れになりません。

create -m timeseries -t mytable --ttl -1

テーブルで操作を実行する前に、useコマンドを実行して、管理するテーブルを選択する必要があります。詳細については、時系列テーブルを使用するを参照してください。

次のサンプルコードは、mytableという名前の時系列テーブルを使用する方法の例を示しています。

use --ts -t mytable

時系列テーブルを作成して選択した後、ビジネス要件に基づいて時系列テーブルを管理できます。次の表に、時系列テーブルで実行できる操作を示します。

操作

説明

時系列テーブルの名前をクエリする

listコマンドを実行して、インスタンス内のすべてのテーブルの名前をクエリします。詳細については、テーブルの名前を一覧表示するを参照してください。

次のサンプルコードは、すべての時系列テーブルの名前をクエリする方法の例を示しています。

list -t

時系列テーブルの構成を更新する

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

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

alter --ttl 86400 --ts

時系列テーブルに関する情報をクエリする

descコマンドを実行して、時系列テーブルに関する情報を表示します。詳細については、時系列テーブルに関する情報をクエリするを参照してください。

次のサンプルコードは、mytableという名前の時系列テーブルに関する情報をクエリする方法の例を示しています。

desc --ts -t mytable

時系列テーブルを削除する

不要になった時系列テーブルを削除するには、dropコマンドを実行します。詳細については、時系列テーブルを削除するを参照してください。

次のサンプルコードは、mytableという名前の時系列テーブルを削除する方法の例を示しています。

drop -t mytable --ts -y

Tablestore SDKを使用する

Tablestore SDK for JavaTablestore SDK for Goを使用して、時系列テーブルを作成および管理できます。この例では、Tablestore SDK for Javaを使用します。

ビジネス要件に基づいて時系列テーブルを作成します。

次のサンプルコードは、データが期限切れにならないtest_timeseries_tableという名前の時系列テーブルを作成する方法の例を示しています。

// 時系列テーブルを作成します。
private static void createTimeseriesTable(TimeseriesClient client) {
    String tableName = "test_timeseries_table";
    TimeseriesTableMeta timeseriesTableMeta = new TimeseriesTableMeta(tableName);
    int timeToLive = -1;
    timeseriesTableMeta.setTimeseriesTableOptions(new TimeseriesTableOptions(timeToLive));
    CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(timeseriesTableMeta);
    
    client.createTimeseriesTable(request);
}

時系列テーブルを作成した後、ビジネス要件に基づいて時系列テーブルを管理できます。

時系列テーブルの名前をクエリする

次のサンプルコードは、インスタンス内のすべての時系列テーブルの名前をクエリする方法の例を示しています。

// 時系列テーブルの名前をクエリします。
private static void listTimeseriesTable(TimeseriesClient client) {
    ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
    for (String table : listTimeseriesTableResponse.getTimeseriesTableNames()) {
        System.out.println(table);
    }
}

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

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

// 時系列テーブルのデータのTTLを変更します。
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()); 
}

時系列テーブルに関する情報をクエリする

次のサンプルコードは、時系列テーブルに関する情報をクエリする方法の例を示しています。

// 時系列テーブルに関する情報をクエリします。
private static void describeTimeseriesTable(TimeseriesClient client) {
    // 時系列テーブルの名前を指定します。
    String tableName = "<TIMESERIES_TABLE>";
    DescribeTimeseriesTableResponse describeTimeseriesTableResponse = client.describeTimeseriesTable(new DescribeTimeseriesTableRequest(tableName));
    TimeseriesTableMeta tableMeta = describeTimeseriesTableResponse.getTimeseriesTableMeta();
    // 時系列テーブル名を表示します。
    System.out.println(tableMeta.getTimeseriesTableName()); 
    // 時系列テーブルの状態を表示します。
    System.out.println(tableMeta.getStatus()); 
    // 時系列テーブルのデータのTTLを表示します。
    System.out.println(tableMeta.getTimeseriesTableOptions().getTimeToLive()); 
    // 時系列メタデータのTTLを表示します。
    System.out.println(tableMeta.getTimeseriesMetaOptions().getMetaTimeToLive()); 
    // 時系列メタデータのプロパティ列を変更できるかどうかを確認します。
    System.out.println(tableMeta.getTimeseriesMetaOptions().getAllowUpdateAttributes()); 
}

時系列テーブルを削除する

次のサンプルコードは、時系列テーブルを削除する方法の例を示しています。

// 時系列テーブルを削除します。
private static void deleteTimeseriesTable(TimeseriesClient client) {
    // 時系列テーブルの名前を指定します。
    String tableName = "<TIMESERIES_TIME>";
    DeleteTimeseriesTableRequest deleteTimeseriesTableRequest = new DeleteTimeseriesTableRequest(tableName);
    client.deleteTimeseriesTable(deleteTimeseriesTableRequest);
}

関連情報

時系列テーブルを作成した後、テーブルに時系列データを書き込んだり、テーブルから時系列データを読み取ったりできます。詳細については、基本的なデータ操作を参照してください。