UpdateTimeseriesMeta オペレーションを呼び出して、複数の時系列のメタデータを一度に更新できます。
説明
UpdateTimeseriesMeta オペレーションの詳細については、UpdateTimeseriesMeta を参照してください。
前提条件
時系列データは、データのクエリ元の時系列テーブルに書き込まれます。詳細については、時系列データを書き込む を参照してください。
TimeseriesClient インスタンスが初期化されます。詳細については、OTSClient インスタンスを初期化する を参照してください。
構文
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());
}
}
}