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

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

最終更新日:Apr 28, 2025

CreateTimeseriesTable 操作を呼び出して、時系列テーブルを作成できます。時系列テーブルを作成する際に、時系列テーブルのデータの Time To Live(TTL)、時系列メタデータの構成情報、カスタム時系列識別子、およびカスタムデータフィールドを時系列テーブルのプライマリキー列として指定できます。また、Lastpoint インデックスと分析ストアを作成することもできます。分析ストアを使用すると、時系列データを迅速に分析できます。 Lastpoint インデックスを使用すると、時系列テーブルの時系列の最新時点のデータを迅速に取得できます。

前提条件

  • TimeSeries モデルのインスタンスが作成されていること。詳細については、「TimeSeries モデルのインスタンスを作成する」をご参照ください。

    重要

    分析ストアまたは Lastpoint インデックス機能を使用するには、分析ストアまたは Lastpoint インデックス機能をサポートするリージョンに TimeSeries モデルのインスタンスを作成する必要があります。

  • クライアントが初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。

使用上の注意

  • 作成する時系列テーブルの名前は、既存のデータテーブルの名前と同じにすることはできません。

    説明

    ListTimeseriesTable 操作を呼び出して、インスタンス内の時系列テーブルの名前をクエリできます。詳細については、「時系列テーブルの名前をクエリする」をご参照ください。

  • 1 つの時系列テーブルに対して作成できる分析ストアは 1 つだけです。

  • 1 つの時系列テーブルに対して作成できる Lastpoint インデックスと分析ストアの合計数は 10 を超えることはできません。

  • 時系列テーブルのプライマリキー列として指定できるデータフィールドは最大 4 つです。

  • 時系列テーブルのカスタム時系列識別子のフィールドとして指定できるフィールドは最大 6 つです。

操作

public class CreateTimeseriesTableRequest implements Request {
    // 時系列テーブルのスキーマ情報
    private TimeseriesTableMeta timeseriesTableMeta;
    // 分析ストア情報
    private List<TimeseriesAnalyticalStore> analyticalStores = new ArrayList<TimeseriesAnalyticalStore>();
    // 分析ストア機能を有効にするかどうか
    private boolean enableAnalyticalStore = true;
}

パラメーター

パラメーター

説明

TimeseriesTableMeta

時系列テーブルの構成。

  • timeseriesTableName: 時系列テーブルの名前。

  • timeseriesMetaOptions: 時系列メタデータの構成。以下のパラメーターが含まれます。

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

    • allowUpdateAttributes: 時系列メタデータのプロパティ列を変更できるかどうかを指定します。

    UpdateTimeseriesTable 操作を呼び出して、上記のパラメーターを変更できます。

  • timeseriesTableOptions: 時系列テーブルの構成。以下のパラメーターが含まれます。

    timeToLive: 時系列テーブルのデータの TTL。単位:秒。時系列テーブルのデータが期限切れにならないようにするには、このパラメーターを -1 に設定します。 UpdateTimeseriesTable 操作を呼び出して、このパラメーターを変更できます。

  • timeseriesKeys: カスタム時系列識別子の情報。デフォルトでは、時系列識別子はメトリック名、データソース、およびタグで構成されます。詳細については、「カスタム時系列識別子とカスタムデータフィールドをプライマリキー列として指定する」をご参照ください。カスタム時系列識別子を指定する場合は、このパラメーターが必要です。

  • fieldPrimaryKeys: プライマリキー列として指定されたデータフィールド。このパラメーターを使用すると、同じ時系列識別子とタイムスタンプを持つ複数の時系列データ行を時系列テーブルに保存できます。詳細については、「カスタム時系列識別子とカスタムデータフィールドをプライマリキー列として指定する」をご参照ください。このパラメーターは、同じ時系列識別子とタイムスタンプを持つ複数の時系列データ行を時系列テーブルに保存する場合にのみ必要です。

  • lastpointIndexes: Lastpoint インデックスの名前。詳細については、「Lastpoint インデックス」をご参照ください。

enableAnalyticalStore

デフォルトの分析ストアを作成するかどうかを指定します。デフォルト値:true。デフォルトの分析ストアが作成されることを指定します。

分析ストアを作成した後、分析ストアを使用して時系列データを低コストで保存し、時系列データをクエリおよび分析できます。詳細については、「時系列の分析ストア」をご参照ください。

分析ストアを作成しない場合は、このパラメーターを false に設定します。

analyticalStores

分析ストアの構成。以下の項目で構成されます。

  • analyticalStoreName: 分析ストアの名前。

  • timeToLive: 分析ストアの TTL。単位:秒。 timeToLive は -1 または 2592000 以上の int32 正の整数に設定できます。 -1 は分析ストアのデータが期限切れにならないことを指定します。 2592000 は 30 日を指定します。

  • syncOption: データ同期構成。この項目の値は SYNC_TYPE_FULL に固定されています。

分析ストアなしで時系列テーブルを作成する

次のサンプルコードは、データが期限切れにならない 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);
    // デフォルトの分析ストアが作成されないように指定します。
    request.setEnableAnalyticalStore(false);    
    client.createTimeseriesTable(request);
}

時系列テーブルと分析ストアを作成する

時系列テーブルを作成するときに、デフォルトの分析ストアまたはカスタム分析ストアを作成できます。

時系列テーブルとデフォルトの分析ストアを作成する

次のサンプルコードは、データが期限切れにならない test_timeseries_table という名前の時系列テーブルとデフォルトの分析ストアを同時に作成する方法の例を示しています。この例では、デフォルトの分析ストアの名前は default_analytical_store に固定されており、デフォルトの分析ストアのデータは期限切れになりません。

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);
}

時系列テーブルとカスタム分析ストアを作成する

次のサンプルコードは、データが期限切れにならない test_timeseries_table という名前の時系列テーブルとカスタム分析ストアを同時に作成する方法の例を示しています。この例では、カスタム分析ストアの名前は test_analytical_store であり、カスタム分析ストアのデータは期限切れになりません。

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

    // カスタム分析ストアの構成を指定します。
    List<TimeseriesAnalyticalStore> analyticalStores = new ArrayList<TimeseriesAnalyticalStore>();
    analyticalStores.add(new TimeseriesAnalyticalStore("test_analytical_store"));
    request.setAnalyticalStores(analyticalStores);

    client.createTimeseriesTable(request);
}

カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定する

重要

Tablestore Java SDK V5.17.1 以降では、カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定できます。カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定する場合は、正しいバージョンの Tablestore Java SDK を使用していることを確認してください。詳細については、「Tablestore Java SDK のバージョン履歴」をご参照ください。

次のサンプルコードは、時系列識別子が pk1 と pk2 で構成され、field1(Integer)、field2(String)、および field3(Binary)データフィールドがプライマリキー列として指定されている時系列テーブルを作成する方法の例を示しています。

private static void createTimeseriesTable(TimeseriesClient client) {
    String tableName = "test_timeseries_table";
    TimeseriesTableMeta timeseriesTableMeta = new TimeseriesTableMeta(tableName);
    timeseriesTableMeta.addTimeseriesKey("pk1");
    timeseriesTableMeta.addTimeseriesKey("pk2");
    timeseriesTableMeta.addFieldPrimaryKey("field1", PrimaryKeyType.INTEGER);
    timeseriesTableMeta.addFieldPrimaryKey("field2", PrimaryKeyType.STRING);
    timeseriesTableMeta.addFieldPrimaryKey("field3", PrimaryKeyType.BINARY);
    int timeToLive = -1;
    timeseriesTableMeta.setTimeseriesTableOptions(new TimeseriesTableOptions(timeToLive));
    CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(timeseriesTableMeta);
    client.createTimeseriesTable(request);
}

時系列テーブルと Lastpoint インデックスを作成する

重要

Tablestore Java SDK V5.17.1 以降では、Lastpoint インデックス機能がサポートされています。 Lastpoint インデックス機能を使用する場合は、正しいバージョンの Tablestore Java SDK を使用していることを確認してください。詳細については、「Tablestore Java SDK のバージョン履歴」をご参照ください。

次のサンプルコードは、時系列テーブルと、時系列テーブルの index1 という名前の Lastpoint インデックスを同時に作成する方法の例を示しています。

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);
    request.addLastpointIndex(new CreateTimeseriesTableRequest.LastpointIndex("index1"));
    client.createTimeseriesTable(request);
}

関連情報

  • 時系列テーブルを作成した後、テーブルに時系列データを書き込んだり、テーブルから時系列データを読み取ったりできます。詳細については、「時系列データを書き込む」および「時系列データをクエリする」をご参照ください。

  • 時系列データを低コストで保存し、時系列データを迅速にクエリおよび分析する場合は、時系列テーブルの分析ストアを作成できます。詳細については、「分析ストアを作成する」をご参照ください。

  • 時系列テーブルのデータの TTL を変更する方法については、「時系列テーブルの構成を変更する」をご参照ください。

  • インスタンス内のすべての時系列テーブルの名前をクエリする方法については、「時系列テーブルの名前をクエリする」をご参照ください。

  • 時系列テーブルに関する情報をクエリする方法については、「時系列テーブルの情報をクエリする」をご参照ください。

  • 不要になった時系列テーブルを削除する方法については、「時系列テーブルを削除する」をご参照ください。

  • Tablestore の時系列データを費用対効果の高い方法でバックアップしたり、時系列データをファイルとしてローカルデバイスにエクスポートしたりするには、DataWorks の Data Integration サービスを使用して、Tablestore から Object Storage Service(OSS)に時系列データを同期して保存またはダウンロードできます。詳細については、「Tablestore から OSS にデータを同期する」をご参照ください。

  • Tablestore を Grafana に接続して時系列データを視覚化する方法については、「Tablestore を Grafana に接続する」をご参照ください。

  • Realtime Compute for Apache Flink を使用してデータを計算および分析する場合は、Tablestore 時系列テーブルを使用して結果を保存できます。詳細については、「チュートリアル(TimeSeries モデル)」をご参照ください。