すべてのプロダクト
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 つです。

パラメーター

パラメーター

説明

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 に固定されています。

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

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

/**
 * CreateTimeseriesTableSample は、時系列テーブルを作成するために使用されます。 timeseriesTableName は時系列テーブルの名前を指定するために使用され、timeTolive は時系列テーブルの TTL を指定するために使用されます。
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string , timeToLive int64) {
    fmt.Println("[Info]: Begin to create timeseries table: " , timeseriesTableName)

    // 時系列テーブルの構成情報を構築します。
    timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive) 

    // テーブルのメタデータ情報を構築します。
    // 時系列テーブルの名前を指定します。
    timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName) 
    // 時系列テーブルの構成情報を指定します。
    timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)    

    // 時系列テーブルを作成するためのリクエストを構築します。
    createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest()   
    createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)
    // デフォルトの分析ストアが作成されないように指定します。
    createTimeseriesTableRequest.SetEnableAnalyticalStore(false)  

    // クライアントを呼び出して、時系列テーブルを作成します。
    createTimeseriesTableResponse , err := client.CreateTimeseriesTable(createTimeseriesTableRequest) 
    if err != nil {
        fmt.Println("[Error]: Failed to create timeseries table with error: " , err)
        return
    }
    fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: " , createTimeseriesTableResponse.RequestId)
}

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

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

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

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

/**
 * CreateTimeseriesTableSample は、時系列テーブルを作成するために使用されます。 timeseriesTableName は時系列テーブルの名前を指定するために使用され、timeTolive は時系列テーブルの TTL を指定するために使用されます。
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string , timeToLive int64) {
    fmt.Println("[Info]: Begin to create timeseries table: " , timeseriesTableName)

    // 時系列テーブルの構成情報を構築します。
    timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive)        

    // テーブルのメタデータ情報を構築します。
    // 時系列テーブルの名前を指定します。
    timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName)  
    // 時系列テーブルの構成情報を指定します。
    timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)      

    // 時系列テーブルを作成するためのリクエストを構築します。
    createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest()    
    createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)

    // クライアントを呼び出して、時系列テーブルを作成します。
    createTimeseriesTableResponse , err := client.CreateTimeseriesTable(createTimeseriesTableRequest)    
    if err != nil {
        fmt.Println("[Error]: Failed to create timeseries table with error: " , err)
        return
    }
    fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: " , createTimeseriesTableResponse.RequestId)
}

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

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

/**
 * CreateTimeseriesTableSample は、時系列テーブルを作成するために使用されます。 timeseriesTableName は時系列テーブルの名前を指定するために使用され、timeTolive は時系列テーブルの TTL を指定するために使用されます。この例では、test_analytical_store という名前の分析ストアが作成されます。
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string , timeToLive int64) {
    fmt.Println("[Info]: Begin to create timeseries table: " , timeseriesTableName)

    // 時系列テーブルの構成情報を構築します。
    timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive)    

    // テーブルのメタデータ情報を構築します。
    // 時系列テーブルの名前を指定します。
    timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName)  
    // 時系列テーブルの構成情報を指定します。
    timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)  

    // 時系列テーブルを作成するためのリクエストを構築します。
    createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest() 
    createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)

    // 分析ストアの構成情報を構築します。
    createTimeseriesTableRequest.SetAnalyticalStores([]*tablestore.TimeseriesAnalyticalStore{
        tablestore.NewTimeseriesAnalyticalStore("test_analytical_store"),
    })

    // クライアントを呼び出して、時系列テーブルを作成します。
    createTimeseriesTableResponse , err := client.CreateTimeseriesTable(createTimeseriesTableRequest) 
    if err != nil {
        fmt.Println("[Error]: Failed to create timeseries table with error: " , err)
        return
    }
    fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: " , createTimeseriesTableResponse.RequestId)
}

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

重要

最新バージョンの Tablestore Go SDK では、カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定できます。カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定する場合は、必ず正しいバージョンの Tablestore Go SDK を使用してください。

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

/**
 * CreateTimeseriesTableSample は、時系列テーブルを作成するために使用されます。 timeseriesTableName は時系列テーブルの名前を指定するために使用され、timeTolive は時系列テーブルの TTL を指定するために使用されます。
 */
func CreateTimeseriesTableSample(client *tablestore.TimeseriesClient, timeseriesTableName string, timeToLive int64) {
	fmt.Println("[Info]: Begin to create timeseries table: ", timeseriesTableName)

	timeseriesTableOptions := tablestore.NewTimeseriesTableOptions(timeToLive)
	timeseriesTableMeta := tablestore.NewTimeseriesTableMeta(timeseriesTableName)
	timeseriesTableMeta.SetTimeseriesTableOptions(timeseriesTableOptions)
	// カスタム時系列識別子を追加します。
	timeseriesTableMeta.AddTimeseriesKey("pk1")
	timeseriesTableMeta.AddTimeseriesKey("pk2")
	// 時系列テーブルのプライマリキー列として指定されたデータフィールドを追加します。
	timeseriesTableMeta.AddFieldPrimaryKey("field1", tablestore.PrimaryKeyType_INTEGER)
	timeseriesTableMeta.AddFieldPrimaryKey("field1", tablestore.PrimaryKeyType_STRING)
	timeseriesTableMeta.AddFieldPrimaryKey("field3", tablestore.PrimaryKeyType_BINARY)
	// 時系列テーブルを作成するためのリクエストを構築します。
	createTimeseriesTableRequest := tablestore.NewCreateTimeseriesTableRequest()
	createTimeseriesTableRequest.SetTimeseriesTableMeta(timeseriesTableMeta)

	createTimeseriesTableResponse, err := client.CreateTimeseriesTable(createTimeseriesTableRequest)
	if err != nil {
		fmt.Println("[Error]: Failed to create timeseries table with error: ", err)
		return
	}
	fmt.Println("[Info]: CreateTimeseriesTable finished! RequestId: ", createTimeseriesTableResponse.RequestId)
}

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

重要

最新バージョンの Tablestore Go SDK は、Lastpoint インデックス機能をサポートしています。 Lastpoint インデックス機能を使用する場合は、必ず正しいバージョンの Tablestore Go SDK を使用してください。

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

func createTimeseriesTable(client *tablestore.TimeseriesClient) {
	timeseriesTableMeta := tablestore.NewTimeseriesTableMeta("test_timeseries_table")
	timeseriesTableMeta.SetTimeseriesTableOptions(tablestore.NewTimeseriesTableOptions(-1))
	request := tablestore.NewCreateTimeseriesTableRequest()
	request.SetTimeseriesTableMeta(timeseriesTableMeta)
	request.SetLastpointIndexNames([]string{"index1"})
	_, err := client.CreateTimeseriesTable(request)
	if err != nil {
		log.Fatal(err)
	}
}

関連情報

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

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

  • 時系列テーブルのデータの TTL を変更できます。詳細については、「時系列テーブルを更新する」をご参照ください。

  • 現在のインスタンス上のすべての時系列テーブルをクエリできます。詳細については、「時系列テーブルの名前をクエリする」をご参照ください。

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

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

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

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

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