创建不带分析存储的时序表
以下示例用于创建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);
}
列出时序表名称
以下示例用于获取实例下所有时序表的表名。
private static void listTimeseriesTable(TimeseriesClient client) {
ListTimeseriesTableResponse listTimeseriesTableResponse = client.listTimeseriesTable();
for (String table : listTimeseriesTableResponse.getTimeseriesTableNames()) {
System.out.println(table);
}
}
更新时序表数据生命周期
以下示例用于更新指定时序表的TTL为3年。
private static void updateTimeseriesTable(TimeseriesClient client) {
// 填写时序表名称。
String tableName = "<TIMESERIES_TABLE>";
UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
// 更新TTL为3年。
updateTimeseriesTableRequest.setTimeseriesTableOptions(new TimeseriesTableOptions(86400 * 365 * 3));
client.updateTimeseriesTable(updateTimeseriesTableRequest);
DescribeTimeseriesTableResponse describeTimeseriesTableResponse = client.describeTimeseriesTable(new DescribeTimeseriesTableRequest(tableName));
TimeseriesTableMeta tableMeta = describeTimeseriesTableResponse.getTimeseriesTableMeta();
// 查看更新后时序表的TTL配置。
System.out.println(tableMeta.getTimeseriesTableOptions().getTimeToLive());
}
查询时序表描述信息
以下示例用于查询指定时序表的描述信息。
private static void describeTimeseriesTable(TimeseriesClient client) {
// 填写时序表名称。
String tableName = "<TIMESERIES_TABLE>";
DescribeTimeseriesTableResponse describeTimeseriesTableResponse = client.describeTimeseriesTable(new DescribeTimeseriesTableRequest(tableName));
TimeseriesTableMeta tableMeta = describeTimeseriesTableResponse.getTimeseriesTableMeta();
// 查看时序表名。
System.out.println(tableMeta.getTimeseriesTableName());
// 查看时序表状态。
System.out.println(tableMeta.getStatus());
// 查看时序表的TTL配置。
System.out.println(tableMeta.getTimeseriesTableOptions().getTimeToLive());
// 查看时间线表的TTL配置。
System.out.println(tableMeta.getTimeseriesMetaOptions().getMetaTimeToLive());
// 查看是否允许更新时间线属性列。
System.out.println(tableMeta.getTimeseriesMetaOptions().getAllowUpdateAttributes());
//如果为时序表创建了分析存储,您可以使用如下代码获取时序表的分析存储信息。
List<TimeseriesAnalyticalStore> analyticalStores = describeTimeseriesTableResponse.getAnalyticalStores(); // 查看时序表的分析存储配置。
for (TimeseriesAnalyticalStore store : analyticalStores) {
// 查看分析存储名称。
System.out.println(store.getAnalyticalStoreName());
// 查看分析存储TTL配置。
System.out.println(store.getTimeToLive());
// 查看分析存储同步配置。
System.out.println(store.getSyncOption());
}
}
删除时序表
以下示例用于删除指定时序表。
private static void deleteTimeseriesTable(TimeseriesClient client) {
// 填写时序表名称。
String tableName = "<TIMESERIES_TIME>";
DeleteTimeseriesTableRequest deleteTimeseriesTableRequest = new DeleteTimeseriesTableRequest(tableName);
client.deleteTimeseriesTable(deleteTimeseriesTableRequest);
}