更新時(shí)間線元數(shù)據(jù)
更新時(shí)間:
使用UpdateTimeseriesMeta接口,您可以批量更新時(shí)間線元數(shù)據(jù)的屬性。一次UpdateTimeseriesMeta調(diào)用支持更新多個(gè)時(shí)間線的元數(shù)據(jù)。
說(shuō)明
API接口說(shuō)明請(qǐng)參見(jiàn)UpdateTimeseriesMeta。
前提條件
已寫入時(shí)序數(shù)據(jù)。具體操作,請(qǐng)參見(jiàn)寫入時(shí)序數(shù)據(jù)。
已初始化TimeseriesClient。具體操作,請(qǐng)參見(jiàn)初始化OTSClient。
接口
public class UpdateTimeseriesMetaRequest implements Request {
/** 時(shí)序表名稱。*/
private final String timeseriesTableName;
/** 時(shí)間線元數(shù)據(jù)。*/
private List<TimeseriesMeta> metas = new ArrayList<TimeseriesMeta>();
}
public class TimeseriesMeta {
/** 時(shí)間線元數(shù)據(jù)標(biāo)識(shí)。*/
private TimeseriesKey timeseriesKey;
/** 時(shí)間線元數(shù)據(jù)屬性。*/
private SortedMap<String, String> attributes = new TreeMap<String, String>();
/** 時(shí)間線元數(shù)據(jù)生命周期。*/
private long updateTimeInUs = -1;
}
public class TimeseriesKey implements Comparable<TimeseriesKey> {
/** 度量名稱。*/
private final String measurementName;
/** 數(shù)據(jù)源名稱。*/
private final String dataSource;
/** 標(biāo)簽信息。*/
private final SortedMap<String, String> tags = new TreeMap<String, String>();
private String tagsString;
}
參數(shù)
timeseriesMeta表示一個(gè)時(shí)間線元數(shù)據(jù),每個(gè)timeseriesMeta包括timeseriesKey和attributes。詳細(xì)參數(shù)說(shuō)明請(qǐng)參見(jiàn)下表,
參數(shù) | 描述 |
timeseriesKey | 時(shí)間線標(biāo)識(shí)。 |
attributes | 時(shí)間線的屬性信息,內(nèi)容為字符串類型的key-value對(duì)。 |
示例
以下示例用于更新指定時(shí)序表中時(shí)間線的屬性信息。
private static void updateTimeseriesMeta(TimeseriesClient client) {
List<TimeseriesMeta> timeseriesMetaList = new ArrayList<TimeseriesMeta>();
for (int i = 0; i < 10; i++) {
Map<String, String> tags = new HashMap<String, String>();
tags.put("region", "hangzhou");
tags.put("os", "Ubuntu16.04");
// 構(gòu)造TimeseriesKey。
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags);
TimeseriesMeta meta = new TimeseriesMeta(timeseriesKey);
// 設(shè)置時(shí)間線的屬性值(attributes)。
Map<String, String> attrs = new HashMap<String, String>();
attrs.put("status", "online");
meta.setAttributes(attrs);
timeseriesMetaList.add(meta);
}
// 填寫時(shí)序表名稱。
String tableName = "<TIME_SERIES_TABLE>";
UpdateTimeseriesMetaRequest updateTimeseriesMetaRequest = new UpdateTimeseriesMetaRequest(tableName);
updateTimeseriesMetaRequest.setMetas(timeseriesMetaList);
UpdateTimeseriesMetaResponse updateTimeseriesMetaResponse = client.updateTimeseriesMeta(updateTimeseriesMetaRequest);
// 檢查是否全部成功。
if (!updateTimeseriesMetaResponse.isAllSuccess()) {
for (UpdateTimeseriesMetaResponse.FailedRowResult failedRowResult : updateTimeseriesMetaResponse.getFailedRows()) {
System.out.println(failedRowResult.getIndex());
System.out.println(failedRowResult.getError());
}
}
}
文檔內(nèi)容是否對(duì)您有幫助?