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