GetTimeseriesDataオペレーションを呼び出して、時系列テーブルで指定された条件を満たす時系列データをクエリできます。
前提条件
時系列データは、データをクエリする時系列テーブルに書き込まれます。詳細については、時系列データの書き込みを参照してください。
TimeseriesClientインスタンスが初期化されます。詳細については、OTSClientインスタンスの初期化を参照してください。
パラメーター
パラメーター | 説明 |
timeseriesKey | クエリする時系列の識別子。次のパラメーターを使用して識別子を指定できます。
|
timeRange | クエリの時間範囲。時間範囲は左閉区間、右開区間です。次のパラメーターを使用して時間範囲を指定できます。
|
backward | クエリ結果を逆 chron 順にソートするかどうかを指定します。このパラメーターを使用すると、時系列の最新データを取得できます。有効な値:
|
fieldsToGet | 返す列の名前。このパラメーターを指定しない場合は、すべての列がクエリされます。 重要 fieldsToGetパラメーターを設定する場合、返す各列の名前とデータ型を指定する必要があります。指定された列の名前とデータ型が一致しない場合、列のデータは返されません。 |
limit | 返す最大行数。 説明 limitパラメーターは、返す最大行数のみを指定します。指定された条件を満たす行数がlimitを超えていても、スキャンの最大データ量などの他の理由により、返される行数がlimitよりも少なくなる場合があります。この場合、nextTokenパラメーターを指定することで残りの行を取得できます。 |
nextToken | クエリで指定された条件を満たす行の一部のみが返された場合、レスポンスにはnextTokenパラメーターが含まれます。次のリクエストでnextTokenパラメーターを指定して、残りの行を取得できます。 |
例
次のサンプルコードは、test_timeseries_tableという名前の時系列テーブルで、指定された条件を満たす時系列データをクエリする方法の例を示しています。
private static void getTimeseriesData(TimeseriesClient client) {
String tableName = "test_timeseries_table";
GetTimeseriesDataRequest getTimeseriesDataRequest = new GetTimeseriesDataRequest(tableName);
Map<String, String> tags = new HashMap<String, String>();
tags.put("region", "hangzhou");
tags.put("os", "Ubuntu16.04");
// 時系列のメジャーメント名、データソース、およびタグを指定して、時系列の識別子を構築します。
TimeseriesKey timeseriesKey = new TimeseriesKey("cpu", "host_0", tags);
getTimeseriesDataRequest.setTimeseriesKey(timeseriesKey);
// 時間範囲を指定します。
getTimeseriesDataRequest.setTimeRange(0, (System.currentTimeMillis() + 60 * 1000) * 1000);
// 返す最大行数を指定します。
getTimeseriesDataRequest.setLimit(10);
// オプション。クエリ結果を逆 chron 順にソートするかどうかを指定します。デフォルト値:false。このパラメーターをtrueに設定すると、クエリ結果は逆 chron 順にソートされます。
getTimeseriesDataRequest.setBackward(false);
// オプション。返す列を指定します。このパラメーターを指定しない場合は、すべての列が返されます。
getTimeseriesDataRequest.addFieldToGet("string_1", ColumnType.STRING);
getTimeseriesDataRequest.addFieldToGet("long_1", ColumnType.INTEGER);
GetTimeseriesDataResponse getTimeseriesDataResponse = client.getTimeseriesData(getTimeseriesDataRequest);
System.out.println(getTimeseriesDataResponse.getRows().size());
if (getTimeseriesDataResponse.getNextToken() != null) {
// nextTokenパラメーターが空でない場合は、別のリクエストを開始して残りの行を取得できます。
getTimeseriesDataRequest.setNextToken(getTimeseriesDataResponse.getNextToken());
getTimeseriesDataResponse = client.getTimeseriesData(getTimeseriesDataRequest);
System.out.println(getTimeseriesDataResponse.getRows().size());
}
}