创建时序表

更新时间:
复制 MD 格式

使用 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(必选)

TimeseriesTableMeta

时序表结构。

analyticalStores(可选)

List<TimeseriesAnalyticalStore>

自定义分析存储列表,默认值为空。创建时序表时最多创建一个分析存储。

enableAnalyticalStore(可选)

boolean

是否创建默认分析存储,默认值为 false。未配置 analyticalStores 时,设置为 true 将创建名称为 default_analytical_store 的分析存储;其数据生命周期默认为 -1,数据同步方式为 SYNC_TYPE_FULL。配置 analyticalStores 时,创建自定义分析存储。

lastpointIndexes(可选)

List<CreateTimeseriesTableRequest.LastpointIndex>

随时序表创建的 Lastpoint 索引列表,默认值为空。创建时序表时最多同时创建一个 Lastpoint 索引;一个时序表的 Lastpoint 索引与分析存储总数不能超过 10 个。

时序表结构

timeseriesTableMeta 的类型为 TimeseriesTableMeta,包含以下参数。

名称

类型

说明

timeseriesTableName(必选)

String

时序表名称,不能与实例中已有的表名称相同,包括数据表和时序表。

timeseriesTableOptions(可选)

TimeseriesTableOptions

时序数据生命周期配置。不设置时使用默认配置。

timeseriesMetaOptions(可选)

TimeseriesMetaOptions

时间线元数据配置,包括生命周期和属性列更新设置。

timeseriesKeys(可选)

List<String>

自定义时间线标识的字段名称列表,最多包含 6 个字段。不设置时,时间线标识由度量名称、数据源和标签构成。关于该功能的更多信息,请参见自定义时间线标识和数据字段主键

fieldPrimaryKeys(可选)

List<PrimaryKeySchema>

作为主键的数据字段列表,最多包含 4 个字段,用于存储时间线标识和时间点均相同的多行数据。关于该功能的更多信息,请参见自定义时间线标识和数据字段主键

时序数据生命周期

timeseriesTableMeta.timeseriesTableOptions 的类型为 TimeseriesTableOptions,包含以下参数。

名称

类型

说明

timeToLive(可选)

int

时序数据的生命周期,单位为秒,默认值为 -1。取值为 -1 或不小于 86400 的整数;-1 表示数据永不过期。数据超过生命周期后由系统自动清理,创建后可通过更新时序表修改。

时间线元数据

timeseriesTableMeta.timeseriesMetaOptions 的类型为 TimeseriesMetaOptions,包含以下参数。

名称

类型

说明

metaTimeToLive(可选)

int

时间线元数据的生命周期,单位为秒。取值为 -1 或不小于 604800 的整数;-1 表示时间线元数据永不过期。该值不能小于 timeToLivetimeToLive-1 时,该值也必须为 -1。设置有限生命周期后,必须将 allowUpdateAttributes 设置为 false

allowUpdateAttributes(可选)

boolean

是否允许更新时间线元数据的属性列。设置有限的 metaTimeToLive 时必须为 false

数据字段主键

timeseriesTableMeta.fieldPrimaryKeys[] 中每个元素的类型为 PrimaryKeySchema,包含以下参数。

名称

类型

说明

name(必选)

String

作为主键的数据字段名称。

type(必选)

PrimaryKeyType

数据字段类型。取值为 INTEGERSTRING

分析存储

analyticalStores[] 中每个元素的类型为 TimeseriesAnalyticalStore,包含以下参数。

名称

类型

说明

analyticalStoreName(必选)

String

分析存储名称。

timeToLive(可选)

int

分析存储的数据生命周期,单位为秒,默认值为 -1。取值为 -1 或不小于 2592000 的 int32 整数;-1 表示数据永不过期。

syncOption(可选)

AnalyticalStoreSyncType

数据同步方式,默认值为 SYNC_TYPE_FULL。创建时序表时仅支持 SYNC_TYPE_FULL,表示全量同步。

Lastpoint 索引

lastpointIndexes[] 中每个元素的类型为 CreateTimeseriesTableRequest.LastpointIndex,包含以下参数。

名称

类型

说明

indexName(必选)

String

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。使用前,请确认实例所在地域支持该功能。

以下示例使用 pk1pk2 构成时间线标识,并将 field1field2 设置为数据字段主键。

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);

相关文档