全部產品
Search
文件中心

Tablestore:更新時間軸中繼資料

更新時間:Jun 30, 2024

使用UpdateTimeseriesMeta介面,您可以批次更新時間軸中繼資料的屬性。一次UpdateTimeseriesMeta調用支援更新多個時間軸的中繼資料。

說明

API介面說明請參見UpdateTimeseriesMeta

前提條件

介面

public class UpdateTimeseriesMetaRequest implements Request {
    /** 時序表名稱。*/
    private final String timeseriesTableName;
    /** 時間軸中繼資料。*/
    private List<TimeseriesMeta> metas = new ArrayList<TimeseriesMeta>();
}

public class TimeseriesMeta {
    /** 時間軸中繼資料標識。*/
    private TimeseriesKey timeseriesKey;
    /** 時間軸中繼資料屬性。*/
    private SortedMap<String, String> attributes = new TreeMap<String, String>();
    /** 時間軸中繼資料生命週期。*/
    private long updateTimeInUs = -1;
}

public class TimeseriesKey implements Comparable<TimeseriesKey> {
    /** 度量名稱。*/
    private final String measurementName;
    /** 資料來源名稱。*/
    private final String dataSource;
    /** 標籤資訊。*/
    private final SortedMap<String, String> tags = new TreeMap<String, String>();
    private String tagsString;
}

參數

timeseriesMeta表示一個時間軸中繼資料,每個timeseriesMeta包括timeseriesKey和attributes。詳細參數說明請參見下表,

參數

描述

timeseriesKey

時間軸標識。

attributes

時間軸的屬性資訊,內容為字串類型的key-value對。

樣本

以下樣本用於更新指定時序表中時間軸的屬性資訊。

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");
        // 構造TimeseriesKey。
        TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_" + i, tags);
        TimeseriesMeta meta = new TimeseriesMeta(timeseriesKey);
        // 設定時間軸的屬性值(attributes)。
        Map<String, String> attrs = new HashMap<String, String>();
        attrs.put("status", "online");
        meta.setAttributes(attrs);
        timeseriesMetaList.add(meta);
    }
    // 填寫時序表名稱。
    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());
        }
    }
}