更新时间线元数据

更新时间:
复制 MD 格式

使用 Java SDK 批量更新时间线元数据的属性,并获取更新失败行的错误信息。

前提条件

  • 安装Tablestore Java SDK并初始化时序模型客户端。

  • 目标时序表允许更新时间线元数据属性。如果未允许,请先更新时序表配置,将 allowUpdateAttributes 设置为 true

功能说明

调用 updateTimeseriesMeta 方法批量更新时间线元数据属性。如果指定的时间线元数据不存在,服务端会新增该元数据。

public UpdateTimeseriesMetaResponse updateTimeseriesMeta(UpdateTimeseriesMetaRequest request) throws TableStoreException, ClientException
说明

时间线元数据索引异步更新。提交更新后,需等待索引更新完成才能检索到最新属性。

以下示例将 example_timeseries_table 中指定时间线的 status 属性更新为 online,并检查失败行。

Map<String, String> tags = new HashMap<>();
tags.put("region", "cn-hangzhou");
tags.put("host", "host_0");
TimeseriesKey timeseriesKey =
        new TimeseriesKey("cpu", "source_0", tags);

Map<String, String> attributes = new HashMap<>();
attributes.put("status", "online");
TimeseriesMeta meta = new TimeseriesMeta(timeseriesKey);
meta.setAttributes(attributes);

UpdateTimeseriesMetaRequest request =
        new UpdateTimeseriesMetaRequest("example_timeseries_table");
request.setMetas(Collections.singletonList(meta));
UpdateTimeseriesMetaResponse response =
        timeseriesClient.updateTimeseriesMeta(request);

for (UpdateTimeseriesMetaResponse.FailedRowResult result : response.getFailedRows()) {
    System.out.println(result.getIndex());
    System.out.println(result.getError());
}

参数说明

UpdateTimeseriesMetaRequest 包含以下参数。

名称

类型

说明

timeseriesTableName(必选)

String

时序表名称。

metas(必选)

List<TimeseriesMeta>

要更新的时间线元数据列表,不能为空。可以在一次请求中更新多条元数据。

时间线元数据

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

名称

类型

说明

timeseriesKey(必选)

TimeseriesKey

要更新的时间线标识。

attributes(可选)

SortedMap<String, String>

要设置的元数据属性,由字符串类型的键值对组成。未设置或设置为空映射时,Java SDK 不发送属性内容。

说明

updateTimeInUs 由服务端生成,是检索时间线元数据时的返回字段。更新时间线元数据时不要设置该字段,否则 Java SDK 会拒绝请求。

时间线标识

metas[].timeseriesKey 的类型为 TimeseriesKey,包含以下参数。

名称

类型

说明

measurementName(必选)

String

度量名称。Java SDK 5.17.2 及以上版本支持将其设置为空。

dataSource(可选)

String

数据源标识,可以为空。

tags(可选)

SortedMap<String, String>

标签信息,由字符串类型的键值对组成。未设置时使用空映射。

返回值

UpdateTimeseriesMetaResponse 包含以下业务返回字段。

字段

类型

说明

failedRows

List<UpdateTimeseriesMetaResponse.FailedRowResult>

通过 getFailedRows() 获取更新失败的元数据。全部更新成功时返回空列表,也可以通过 isAllSuccess() 判断是否全部成功。

失败行信息

failedRows[] 中每个元素的类型为 UpdateTimeseriesMetaResponse.FailedRowResult,包含以下字段。

字段

类型

说明

index

int

通过 getIndex() 获取失败元数据在请求 metas 列表中的下标。

error

Error

通过 getError() 获取失败原因。