使用 Java SDK 建立時序表,並配置時序資料和時間軸中繼資料的生命週期、時間軸標識、資料欄位主鍵、分析儲存及 Lastpoint 索引。
前提條件
安裝Tablestore Java SDK並初始化時序模型用戶端。
功能說明
調用 createTimeseriesTable 方法建立用於儲存時序資料和時間軸中繼資料的時序表。時序表名稱不能與執行個體中已有的表名稱相同,包括資料表和時序表。
public CreateTimeseriesTableResponse createTimeseriesTable(CreateTimeseriesTableRequest request)以下樣本建立 example_timeseries_table。未設定時,時序資料的生命週期預設為 -1,表示資料永不到期;預設不建立分析儲存。
TimeseriesClient timeseriesClient = client.asTimeseriesClient();
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
timeseriesClient.createTimeseriesTable(request);參數說明
CreateTimeseriesTableRequest 包含以下參數。
名稱 | 類型 | 說明 |
timeseriesTableMeta(必選) |
| 時序表結構。 |
analyticalStores(可選) |
| 自訂分析儲存列表,預設值為空白。建立時序表時最多建立一個分析儲存。 |
enableAnalyticalStore(可選) |
| 是否建立預設分析儲存,預設值為 |
lastpointIndexes(可選) |
| 隨時序表建立的 Lastpoint 索引列表,預設值為空白。建立時序表時最多同時建立一個 Lastpoint 索引;一個時序表的 Lastpoint 索引與分析儲存總數不能超過 10 個。 |
時序表結構
timeseriesTableMeta 的類型為 TimeseriesTableMeta,包含以下參數。
名稱 | 類型 | 說明 |
timeseriesTableName(必選) |
| 時序表名稱,不能與執行個體中已有的表名稱相同,包括資料表和時序表。 |
timeseriesTableOptions(可選) |
| 時序資料生命週期配置。不設定時使用預設配置。 |
timeseriesMetaOptions(可選) |
| 時間軸中繼資料配置,包括生命週期和屬性列更新設定。 |
timeseriesKeys(可選) |
| 自訂時間軸標識的欄位名稱列表,最多包含 6 個欄位。不設定時,時間軸標識由度量名稱、資料來源和標籤構成。關於該功能的更多資訊,請參見自訂時間軸標識和資料欄位主鍵。 |
fieldPrimaryKeys(可選) |
| 作為主鍵的資料欄位列表,最多包含 4 個欄位,用於儲存時間軸標識和時間點均相同的多行資料。關於該功能的更多資訊,請參見自訂時間軸標識和資料欄位主鍵。 |
時序資料生命週期
timeseriesTableMeta.timeseriesTableOptions 的類型為 TimeseriesTableOptions,包含以下參數。
名稱 | 類型 | 說明 |
timeToLive(可選) |
| 時序資料的生命週期,單位為秒,預設值為 |
時間軸中繼資料
timeseriesTableMeta.timeseriesMetaOptions 的類型為 TimeseriesMetaOptions,包含以下參數。
名稱 | 類型 | 說明 |
metaTimeToLive(可選) |
| 時間軸中繼資料的生命週期,單位為秒。取值為 |
allowUpdateAttributes(可選) |
| 是否允許更新時間軸中繼資料的屬性列。設定有限的 |
資料欄位主鍵
timeseriesTableMeta.fieldPrimaryKeys[] 中每個元素的類型為 PrimaryKeySchema,包含以下參數。
名稱 | 類型 | 說明 |
name(必選) |
| 作為主鍵的資料欄位名稱。 |
type(必選) |
| 資料欄位類型。取值為 |
分析儲存
analyticalStores[] 中每個元素的類型為 TimeseriesAnalyticalStore,包含以下參數。
名稱 | 類型 | 說明 |
analyticalStoreName(必選) |
| 分析儲存名稱。 |
timeToLive(可選) |
| 分析儲存的資料生命週期,單位為秒,預設值為 |
syncOption(可選) |
| 資料同步方式,預設值為 |
Lastpoint 索引
lastpointIndexes[] 中每個元素的類型為 CreateTimeseriesTableRequest.LastpointIndex,包含以下參數。
名稱 | 類型 | 說明 |
indexName(必選) |
| Lastpoint 索引名稱。關於該功能的更多資訊,請參見Lastpoint 索引。 |
情境樣本
配置時間軸中繼資料生命週期
以下樣本將時序資料的生命週期設定為 7 天,將時間軸中繼資料的生命週期設定為 14 天,並禁止更新時間軸中繼資料的屬性列。
String tableName = "example_timeseries_table";
TimeseriesTableOptions tableOptions = new TimeseriesTableOptions(604800);
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName, tableOptions);
TimeseriesMetaOptions metaOptions = new TimeseriesMetaOptions();
metaOptions.setMetaTimeToLive(1209600);
metaOptions.setAllowUpdateAttributes(false);
tableMeta.setTimeseriesMetaOptions(metaOptions);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
timeseriesClient.createTimeseriesTable(request);自訂時間軸標識和資料欄位主鍵
自訂時間軸標識和資料欄位主鍵需要使用 5.17.1 及以上版本,建議使用最新版本的 SDK。使用前,請確認執行個體所在地區支援該功能。
以下樣本使用 pk1 和 pk2 構成時間軸標識,並將 field1 和 field2 設定為資料欄位主鍵。
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
tableMeta.addTimeseriesKey("pk1");
tableMeta.addTimeseriesKey("pk2");
tableMeta.addFieldPrimaryKey("field1", PrimaryKeyType.INTEGER);
tableMeta.addFieldPrimaryKey("field2", PrimaryKeyType.STRING);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
timeseriesClient.createTimeseriesTable(request);建立 Lastpoint 索引
Lastpoint 索引需要使用 5.17.1 及以上版本,建議使用最新版本的 SDK。使用該功能前,需要在支援該功能的地區建立時序模型執行個體。支援的地區,請參見Lastpoint 索引。
以下樣本隨時序表建立名稱為 example_lastpoint_index 的 Lastpoint 索引。
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
request.addLastpointIndex(
new CreateTimeseriesTableRequest.LastpointIndex("example_lastpoint_index"));
timeseriesClient.createTimeseriesTable(request);建立分析儲存
分析儲存用於低成本儲存和分析時序資料。使用該功能前,需要在支援該功能的地區建立時序模型執行個體。支援的地區及功能詳情,請參見分析儲存。
預設分析儲存
將 enableAnalyticalStore 設定為 true,建立名稱為 default_analytical_store 的預設分析儲存。
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
request.setEnableAnalyticalStore(true);
timeseriesClient.createTimeseriesTable(request);自訂分析儲存
以下樣本隨時序表建立 example_analytical_store,分析儲存中的資料永不到期,並使用全量同步方式。
String tableName = "example_timeseries_table";
TimeseriesTableMeta tableMeta = new TimeseriesTableMeta(tableName);
CreateTimeseriesTableRequest request = new CreateTimeseriesTableRequest(tableMeta);
TimeseriesAnalyticalStore analyticalStore =
new TimeseriesAnalyticalStore("example_analytical_store");
analyticalStore.setTimeToLive(-1);
analyticalStore.setSyncOption(AnalyticalStoreSyncType.SYNC_TYPE_FULL);
request.setAnalyticalStores(Collections.singletonList(analyticalStore));
timeseriesClient.createTimeseriesTable(request);