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

Tablestore:Lastpoint インデックスからのデータの読み取り

最終更新日:Aug 04, 2026

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

範囲読み取り条件。

範囲読み取り条件

rangeRowQueryCriteria には次のパラメータが含まれます:

名前

型

説明

tableName (必須)

String

Lastpoint インデックス名。

inclusiveStartPrimaryKey (必須)

PrimaryKey

包含開始プライマリキー。インデックスで定義された順序で、すべてのプライマリキーカラムを指定します。

exclusiveEndPrimaryKey (必須)

PrimaryKey

排他終了プライマリキー。インデックスで定義された順序で、すべてのプライマリキーカラムを指定します。

maxVersions (必須)

int

各カラムで返すバージョンの最大数。Lastpoint インデックスには、各フィールドの最新値のみが保持されます。このパラメータを 1 に設定します。

columnsToGet (任意)

Set<String>

返す属性カラム。このパラメータを指定しない場合、すべての属性カラムが返されます。

direction (任意)

Direction

読み取り方向。有効な値:FORWARD、BACKWARD。デフォルト値:FORWARD。

limit (任意)

int

1 回のリクエストで返す行の最大数。値は 0 より大きい値である必要があります。このパラメータを指定しない場合、SDK のデフォルト値である -1 が使用されます。

レスポンス

GetRangeResponse には次のフィールドが含まれます:

フィールド

型

説明

rows

List<Row>

getRows() を呼び出して、リクエストで返された Lastpoint 行を取得します。

nextStartPrimaryKey

PrimaryKey

getNextStartPrimaryKey() を呼び出して、次のリクエストの開始プライマリキーを取得します。値が null の場合、指定した範囲内のすべてのデータが返されたことを示します。

Lastpoint 行スキーマ

デフォルトの時系列識別子を使用する時系列テーブルの場合、各 Lastpoint 行には次のフィールドが含まれます:

フィールド

型

説明

_#h

String

時系列のシステム生成パーティションキー。

_m_name

String

メジャーメント名。

_data_source

String

データソース。

_tags

String

時系列タグ。

_time

long

最新のデータポイントのタイムスタンプ (マイクロ秒)。

データフィールド

ColumnValue

最新のデータポイントに含まれるデータフィールドと値。