CreateTimeseriesTable API を呼び出して、時系列テーブルを作成できます。時系列テーブルを作成する際、時系列テーブル内のデータの Time to Live (TTL)、時系列メタデータの設定情報、カスタム時系列識別子、および時系列テーブルのプライマリキー列にカスタムデータフィールドを指定できます。また、Lastpoint インデックスと分析ストアを作成することもできます。分析ストアは、時系列データを迅速に分析するために使用できます。Lastpoint インデックスは、時系列テーブル内の時系列における最新時点のデータを迅速に取得するために使用できます。
前提条件
-
時系列モデル用のインスタンスが作成されていること。詳細については、「時系列モデル用インスタンスの作成」をご参照ください。
重要分析ストアまたは Lastpoint インデックス機能を使用するには、分析ストアまたは Lastpoint インデックス機能をサポートするリージョンで時系列モデル用のインスタンスを作成する必要があります。
-
クライアントが初期化されていること。詳細については、「Tablestore クライアントの初期化」をご参照ください。
注意事項
-
作成する時系列テーブルの名前は、既存のデータテーブルの名前と同じにすることはできません。
説明ListTimeseriesTable API を呼び出して、インスタンス内の時系列テーブルの名前を照会できます。詳細については、「時系列テーブルの一覧表示」をご参照ください。
-
時系列テーブルに作成できる分析ストアは 1 つのみです。
-
時系列テーブルに作成する Lastpoint インデックスと分析ストアの合計数は 10 を超えることはできません。
-
時系列テーブルのプライマリキー列として指定できるデータフィールドは最大 4 つです。
-
時系列テーブルのカスタム時系列識別子として、最大 6 つのフィールドを指定できます。
パラメータ
|
パラメータ |
説明 |
|
TimeseriesTableMeta |
|
|
EnableAnalyticalStore |
分析ストアを作成すると、分析ストアを使用して、低コストで時系列データを保存し、時系列データを照会および分析できます。詳細については、「分析ストア」をご参照ください。 分析ストアを作成しない場合は、このパラメータを false に設定します。 |
|
AnalyticalStores |
|
|
LastpointIndexNames |
|
サンプル
分析ストアなしで時系列テーブルを作成する
次のサンプルコードは、時系列テーブルを作成する方法の例です。
/**
* 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 SDK for Go では、カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定できます。カスタム時系列識別子とカスタムデータフィールドを時系列テーブルのプライマリキー列として指定する場合は、正しいバージョンの Tablestore SDK for Go を使用していることを確認してください。
次のサンプルコードは、時系列識別子が 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("field2", 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 SDK for Go は Lastpoint インデックス機能をサポートしています。Lastpoint インデックス機能を使用する場合は、正しいバージョンの Tablestore SDK for Go を使用していることを確認してください。
次のサンプルコードは、時系列テーブルと、その時系列テーブルに対して 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 を変更できます。詳細については、「時系列テーブルの更新」をご参照ください。
-
現在のインスタンスにあるすべての時系列テーブルを照会できます。詳細については、「時系列テーブルの名前の照会」をご参照ください。
-
時系列テーブルの情報を照会できます。詳細については、「時系列テーブルの情報の照会」をご参照ください。
-
不要になった時系列テーブルを削除できます。詳細については、「Go SDK を使用した時系列テーブルの削除」をご参照ください。
-
Tablestore 内の時系列データをコスト効率よくバックアップしたり、時系列データをファイルとしてローカルデバイスにエクスポートしたりするには、DataWorks の Data Integration 機能を使用して、Tablestore から Object Storage Service (OSS) に時系列データを同期して保存またはダウンロードできます。詳細については、「Tablestore から OSS へのデータの同期」をご参照ください。
-
時系列データを可視化するには、Tablestore を Grafana に接続できます。詳細については、「Grafana への接続」をご参照ください。
-
Realtime Compute for Apache Flink を使用してデータを計算および分析する場合、Tablestore 時系列テーブルを使用して結果を保存できます。詳細については、「チュートリアル (時系列モデル)」をご参照ください。