すべてのプロダクト
Search
ドキュメントセンター

Tablestore:時系列メタデータを更新する

最終更新日:Dec 28, 2024

UpdateTimeseriesMeta オペレーションを呼び出して、複数の時系列のメタデータを一度に更新できます。

説明

UpdateTimeseriesMeta オペレーションの詳細については、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>();
    /** 時系列メタデータの有効期間 (TTL)。 */
    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

時系列メタデータのプロパティ。値は、STRING 型の 1 つ以上のキーと値のペアで構成されます。

次のサンプルコードは、時系列テーブル内の複数の時系列のメタデータのプロパティを更新する方法の例を示しています。

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 = new TimeseriesKey("cpu", "host_" + i, tags);
        TimeseriesMeta meta = new TimeseriesMeta(timeseriesKey);
        // 時系列のプロパティの値を指定します。
        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());
        }
    }
}