Tablestore SDK for Java を使用して、メジャーメント名、データソース、タグ、属性、または更新時間によって時系列メタデータをクエリし、条件を組み合わせて、結果をページネーションします。
前提条件
Tablestore SDK for Java をインストールし、時系列クライアントを初期化します。
説明
queryTimeseriesMeta を呼び出して、時系列テーブル内の時系列メタデータをクエリします。 条件を指定しない場合、すべての時系列メタデータが返されます。 条件を指定した場合、メタデータは 1 つ以上の時系列の特性によってフィルター処理されます。
public QueryTimeseriesMetaResponse queryTimeseriesMeta(QueryTimeseriesMetaRequest request) throws TableStoreException, ClientException
サーバーは、新しい時系列のメタデータインデックスを非同期で構築します。新しい時系列を書き込んだ後、インデックスが構築されるまで待ってから、そのメタデータをクエリしてください。
次の例では、example_timeseries_table 内で、メジャー名が cpu で、os タグ値が Ubuntu で始まる時系列のメタデータをクエリします。
CompositeMetaQueryCondition condition =
new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
condition.addSubCondition(new MeasurementMetaQueryCondition(
MetaQuerySingleOperator.OP_EQUAL, "cpu"));
condition.addSubCondition(new TagMetaQueryCondition(
MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
QueryTimeseriesMetaRequest request =
new QueryTimeseriesMetaRequest("example_timeseries_table");
request.setCondition(condition);
request.setGetTotalHits(true);
request.setLimit(100);
QueryTimeseriesMetaResponse response =
timeseriesClient.queryTimeseriesMeta(request);
System.out.println(response.getTotalHits());
for (TimeseriesMeta meta : response.getTimeseriesMetas()) {
System.out.println(meta);
}
パラメーター
QueryTimeseriesMetaRequest には、以下のパラメーターが含まれています。
|
名前 |
型 |
説明 |
|
timeseriesTableName (必須) |
|
時系列テーブル名です。 |
|
condition (任意) |
|
時系列メタデータのクエリに使用する条件です。このパラメーターを指定しない場合、すべての時系列メタデータが返されます。 |
|
getTotalHits (任意) |
|
一致する時系列メタデータエントリの総数を返すかどうかを指定します。デフォルト: |
|
limit (任意) |
|
1 回のリクエストで返される時系列メタデータエントリの最大数です。正の値のみが有効です。実際に返されるエントリ数は、この値より少ない場合があります。 |
|
nextToken (任意) |
|
ページネショントークン。このパラメーターは、最初のリクエストでは指定しないでください。レスポンスの |
condition は、次のいずれかの条件タイプに設定できます。文字列条件は OP_EQUAL、OP_GREATER_THAN、OP_GREATER_EQUAL、OP_LESS_THAN、OP_LESS_EQUAL、および OP_PREFIX をサポートします。更新時の条件は OP_PREFIX をサポートしていません。
複合条件
condition が CompositeMetaQueryCondition 型の場合、以下のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
operator (必須) |
|
論理演算子。有効な値は |
|
subConditions (必須) |
|
組み合わせる条件の空でないリストです。サブ条件も複合条件にすることができます。 |
メジャーメント名条件
condition が MeasurementMetaQueryCondition 型の場合、以下のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
operator (必須) |
|
クエリ演算子です。 |
|
value (必須) |
|
一致させるメジャーメント名です。 |
データソース条件
condition が DataSourceMetaQueryCondition 型の場合、次のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
operator (必須) |
|
クエリ演算子です。 |
|
value (必須) |
|
一致させるデータソース識別子です。 |
タグ条件
condition が TagMetaQueryCondition 型の場合、以下のパラメーターを含みます。
|
名前 |
型 |
説明 |
|
operator (必須) |
|
クエリ演算子です。 |
|
tagName (必須) |
|
一致させる空でないタグ名です。 |
|
value (必須) |
|
一致させるタグ値です。 |
属性条件
condition が AttributeMetaQueryCondition タイプの場合、次のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
operator (必須) |
|
クエリ演算子です。 |
|
attributeName (必須) |
|
一致させる空でない属性名です。 |
|
value (必須) |
|
一致させる属性値です。 |
更新時間条件
condition が UpdateTimeMetaQueryCondition 型の場合、次のパラメーターが含まれます。
|
名前 |
型 |
説明 |
|
operator (必須) |
|
クエリ演算子。有効な値は |
|
timeInUs (必須) |
|
メタデータの最終更新時間です。1970-01-01 00:00:00 UTC からのマイクロ秒単位で指定します。 |
レスポンス
QueryTimeseriesMetaResponse には、以下の操作固有のフィールドが含まれます。
|
フィールド |
型 |
説明 |
|
|
|
|
|
|
|
|
|
|
|
|
時系列メタデータ
timeseriesMetas[] の各要素は TimeseriesMeta 型で、以下のフィールドを含みます。
|
フィールド |
型 |
説明 |
|
|
|
|
|
|
|
|
|
|
|
|
時系列識別子
timeseriesMetas[].timeseriesKey は TimeseriesKey 型で、以下のフィールドが含まれます。
|
フィールド |
型 |
説明 |
|
|
|
|
|
|
|
|
|
|
|
|
例
すべてのメタデータのページネーション
レスポンスの nextToken が null でない場合、すべての結果が返されるまでトークンを繰り返し渡します。
List<TimeseriesMeta> allMetas = new ArrayList<>();
byte[] nextToken = null;
do {
request.setNextToken(nextToken);
QueryTimeseriesMetaResponse response =
timeseriesClient.queryTimeseriesMeta(request);
allMetas.addAll(response.getTimeseriesMetas());
nextToken = response.getNextToken();
} while (nextToken != null);