Tablestore SDK for Java を使用して、プライマリキーの範囲を指定し、Lastpoint インデックスから各時系列の最新のデータポイントを読み取ります。
前提条件
Tablestore SDK for Java をインストールし、クライアントを初期化します。Lastpoint インデックスにはバージョン 5.17.1 以降が必要です。最新バージョンの使用を推奨します。
説明
Lastpoint インデックスはデータテーブルとして読み取れます。getRange を呼び出し、プライマリキー範囲を指定して、範囲内の最新のデータポイントを読み取ります。デフォルトの時系列識別子を使用する時系列テーブルの場合、Lastpoint インデックスには、_#h、_m_name、_data_source、_tags のプライマリキーカラムがこの順序で含まれます。
public GetRangeResponse getRange(GetRangeRequest getRangeRequest) throws TableStoreException, ClientException
次の例では、4 つのプライマリキーカラムの開始値を INF_MIN に、終了値を INF_MAX に設定します。次に、複数ページにわたって example_lastpoint_index からすべてのデータを読み取ります。
RangeRowQueryCriteria criteria =
new RangeRowQueryCriteria("example_lastpoint_index");
PrimaryKey startPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MIN)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MIN)
.build();
PrimaryKey endPrimaryKey = PrimaryKeyBuilder.createPrimaryKeyBuilder()
.addPrimaryKeyColumn("_#h", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_m_name", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_data_source", PrimaryKeyValue.INF_MAX)
.addPrimaryKeyColumn("_tags", PrimaryKeyValue.INF_MAX)
.build();
criteria.setInclusiveStartPrimaryKey(startPrimaryKey);
criteria.setExclusiveEndPrimaryKey(endPrimaryKey);
criteria.setMaxVersions(1);
while (true) {
GetRangeResponse response =
client.getRange(new GetRangeRequest(criteria));
response.getRows().forEach(System.out::println);
if (response.getNextStartPrimaryKey() == null) {
break;
}
criteria.setInclusiveStartPrimaryKey(
response.getNextStartPrimaryKey());
}
パラメータ
GetRangeRequest には、次のパラメータが 1 つ含まれます。
|
名前 |
型 |
説明 |
|
rangeRowQueryCriteria (必須) |
|
範囲読み取り条件。 |
範囲読み取り条件
rangeRowQueryCriteria には次のパラメータが含まれます:
|
名前 |
型 |
説明 |
|
tableName (必須) |
|
Lastpoint インデックス名。 |
|
inclusiveStartPrimaryKey (必須) |
|
包含開始プライマリキー。インデックスで定義された順序で、すべてのプライマリキーカラムを指定します。 |
|
exclusiveEndPrimaryKey (必須) |
|
排他終了プライマリキー。インデックスで定義された順序で、すべてのプライマリキーカラムを指定します。 |
|
maxVersions (必須) |
|
各カラムで返すバージョンの最大数。Lastpoint インデックスには、各フィールドの最新値のみが保持されます。このパラメータを |
|
columnsToGet (任意) |
|
返す属性カラム。このパラメータを指定しない場合、すべての属性カラムが返されます。 |
|
direction (任意) |
|
読み取り方向。有効な値: |
|
limit (任意) |
|
1 回のリクエストで返す行の最大数。値は |
レスポンス
GetRangeResponse には次のフィールドが含まれます:
|
フィールド |
型 |
説明 |
|
|
|
|
|
|
|
|
Lastpoint 行スキーマ
デフォルトの時系列識別子を使用する時系列テーブルの場合、各 Lastpoint 行には次のフィールドが含まれます:
|
フィールド |
型 |
説明 |
|
|
|
時系列のシステム生成パーティションキー。 |
|
|
|
メジャーメント名。 |
|
|
|
データソース。 |
|
|
|
時系列タグ。 |
|
|
|
最新のデータポイントのタイムスタンプ (マイクロ秒)。 |
|
データフィールド |
|
最新のデータポイントに含まれるデータフィールドと値。 |