すべてのプロダクト
Search
ドキュメントセンター

Tablestore:Lastpoint インデックス内のデータのクエリ

最終更新日:May 01, 2026

このトピックでは、Tablestore SDK for Java を使用して Lastpoint インデックス内のデータをクエリする方法について説明します。

注意事項

Lastpoint インデックス機能を使用するには、Tablestore SDK for Java V5.17.1 以降が必要です。お使いの SDK がそれ以前のバージョンの場合、アップグレードしてください。

説明

Tablestore SDK for Java の新しいバージョンのダウンロード方法については、「Tablestore SDK for Java バージョン履歴」をご参照ください。

前提条件

作業を開始する前に、次の要件を満たしていることを確認してください。

  • 時系列テーブルに対して Lastpoint インデックスが作成済みであること。詳細については、「Lastpoint インデックスの作成」をご参照ください。

サンプルコード

以下の例では、GetRange 操作を呼び出して、Lastpoint インデックスからすべての行を読み取ります。スキャンでは、すべてのプライマリキー列の開始プライマリキー値と終了プライマリキー値としてそれぞれ INF_MIN および INF_MAX を使用し、キー範囲全体をカバーします。nextStartPrimaryKey が応答に含まれる場合、すべての行が取得されるまでその位置から読み取りを継続します。

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;
        }
    }
}

次のステップ

  • Tablestore SDK for Java を使用したデータの読み取り方法については、「データの読み取り」をご参照ください。

  • ブール値クエリ、全文検索、プレフィックスクエリ、あいまい検索などの高度な方法で Lastpoint インデックス内のデータをクエリするには、Lastpoint インデックスに対して多次元インデックスを作成してください。詳細については、「Lastpoint インデックスの取得」をご参照ください。