當使用表格存儲時序模型時,您需要使用CreateTimeseriesTable接口創建時序表用于存儲時序數據。創建時序表時支持配置數據生命周期、時序時間線表的配置信息、自定義時間線標識和作為主鍵的數據字段、創建Lastpoint索引以及創建分析存儲。分析存儲可用于快速分析時序數據。Lastpoint索引可用于快速檢索各時間線的最新時間點的數據。
前提條件
已通過控制臺創建實例。具體操作,請參見創建時序模型實例。
重要如果要使用分析存儲或Lastpoint索引,請在支持分析存儲或Lastpoint索引的地域創建時序模型實例。具體操作,請參見創建時序模型實例。
已初始化TimeseriesClient。具體操作,請參見初始化OTSClient。
注意事項
時序表的名稱不能與當前已存在的數據表名稱相同。
說明您可以使用ListTimeseriesTable接口列出指定實例下已有的時序表名稱。具體操作,請參見列出時序表名稱。
一個時序表只能創建一個分析存儲。
一個時序表最多只能創建10個Lastpoint索引。
一個時序表最多只能添加4個作為主鍵的數據字段。
為一個時序表自定義時間線標識時,最多只能添加6個字段。
參數
參數 | 說明 |
TimeseriesTableMeta | 時序表的結構信息,包含如下內容:
|
enableAnalyticalStore | 是否創建默認分析存儲。默認值為true,表示創建默認分析存儲。 創建分析存儲后,您可以使用分析存儲低成本存儲時序數據以及查詢與分析時序數據。更多信息,請參見時序分析存儲概述。 如果不需要創建分析存儲,請將此參數設置為false。 |
analyticalStores | 重要 當前支持使用分析存儲功能的地域有華東1(杭州)、華東2(上海)、華北2(北京)和華北3(張家口)地域。更多信息,請參見時序分析存儲概述。 分析存儲配置,包括如下內容:
|
示例
創建不帶分析存儲的時序表
以下示例用于創建一個時序表。
/**
* CreateTimeseriesTableSample用于創建一個時序表,時序表名為timeseriesTableName,TTL為timeTolive。
*/
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)
// 調用client創建時序表。
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,TTL為timeTolive。
*/
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)
// 調用client創建時序表。
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,TTL為timeTolive,并且創建一個分析存儲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"),
})
// 調用client創建時序表。
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)
}
創建時序表時自定義時間線標識和作為主鍵的數據字段
表格存儲Go SDK最新版本支持自定義時間線標識和作為主鍵的數據字段功能。使用該功能時,請確保獲取了正確的Go SDK版本。
以下示例創建一張時序表,時間線標識由pk1和pk2構成,同時有三個作為主鍵的數據字段field1、field2和field3,字段類型分別為整型、字符串和二進制。
/**
* CreateTimeseriesTableSample用于創建一個時序表,時序表名為timeseriesTableName,TTL為timeTolive。
*/
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索引
表格存儲Go SDK最新版本支持Lastpoint索引功能。使用該功能時,請確保獲取了正確的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)
}
}
相關文檔
您可以通過時序Writer將時序數據寫入時序表。時序Writer支持多表寫入、寫入狀態統計、行級別回調和自定義配置功能。具體操作,請參見使用時序Writer寫入時序數據。
如果要低成本存儲時序數據以及快速查詢和分析時序數據,您可以為時序表創建分析存儲。具體操作,請參見創建分析存儲。關于時序分析存儲的更多信息,請參見時序分析存儲概述。
如果要修改時序表的數據生命周期,您可以通過更新時序表功能實現。具體操作,請參見更新時序表。
如果要查詢當前實例下的所有時序表,您可以通過列出時序表名稱實現。具體操作,請參見列出時序表名稱。
如果要查看時序表的詳細配置信息,您可以通過查詢時序表描述信息實現。更多信息,請參見查詢時序表描述信息。
如果不再使用時序表,您可以刪除時序表。具體操作,請參見刪除時序表。
如果要以更低成本備份表格存儲中的時序數據或者以文件形式導出時序數據到本地,您可以通過DataWorks數據集成服務將表格存儲中的時序數據導出到OSS后進行存儲或者下載。更多信息,請參見將表格存儲數據同步到OSS。
如果要可視化展示時序數據,您可以通過對接Grafana實現。更多信息,請參見對接Grafana。
通過Flink計算與分析數據后,您可以使用Tablestore時序表存儲輸出結果。更多信息,請參見使用教程(時序模型)。
在某些場景下,如果希望將時序表中的時序數據遷移到另一個時序表中,您可以使用DataWorks數據集成服務來實現。更多信息,請參見將表格存儲時序表中數據同步到另一個時序表。