このトピックでは、Java SDK を使用して Lastpoint インデックスデータをクエリする方法について説明します。
注意事項
Tablestore Java SDK は、バージョン 5.17.1 以降で Lastpoint インデックス機能をサポートしています。この機能を使用するには、SDK をバージョン 5.17.1 以降にアップグレードする必要があります。
説明
Java SDK の新しいバージョンをダウンロードする必要がある場合は、「Java SDK の反復バージョン」をご参照ください。
前提条件
時系列テーブルに Lastpoint インデックスを作成済みであること。詳細については、「Lastpoint インデックスの作成」をご参照ください。
サンプルコード
次のサンプルコードは、GetRange 操作を呼び出して、Lastpoint インデックスからすべてのデータを読み取ります。
private static void getRange(SyncClient client) {
// Lastpoint インデックス名を設定します。
RangeRowQueryCriteria rangeRowQueryCriteria = new RangeRowQueryCriteria("<LASTPOINT_INDEX_NAME>");
// 開始プライマリキーと終了プライマリキーを構築します。開始プライマリキーのすべての列を INF_MIN に設定し、終了プライマリキーのすべての列を INF_MAX に設定します。
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();
rangeRowQueryCriteria.setInclusiveStartPrimaryKey(startPrimaryKey);
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();
rangeRowQueryCriteria.setExclusiveEndPrimaryKey(endPrimaryKey);
// 最大バージョン数を 1 に設定します。時系列テーブルは複数バージョンのデータをサポートしていません。
rangeRowQueryCriteria.setMaxVersions(1);
System.out.println("スキャン結果:");
while (true) {
GetRangeResponse getRangeResponse = client.getRange(new GetRangeRequest(rangeRowQueryCriteria));
for (Row row : getRangeResponse.getRows()) {
System.out.println(row);
}
// nextStartPrimaryKey が null でない場合は、データの読み取りを続行します。
if (getRangeResponse.getNextStartPrimaryKey() != null) {
rangeRowQueryCriteria.setInclusiveStartPrimaryKey(getRangeResponse.getNextStartPrimaryKey());
} else {
break;
}
}
}関連情報
Java SDK を使用したデータの読み取りの詳細については、「データの読み取り」をご参照ください。
複数条件の組み合わせクエリ、全文検索、プレフィックスクエリ、あいまいクエリなど、より柔軟で豊富なデータアクセラレーションクエリメソッドが必要な場合は、Lastpoint インデックスの検索インデックス機能を使用できます。詳細については、「Lastpoint インデックスの取得」をご参照ください。