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

Tablestore:Lastpoint インデックスの取得

最終更新日:Jul 30, 2026

Lastpoint インデックスに多次元インデックスを追加すると、最新の時系列データに対して多次元フィルター、ジオクエリ、集約を実行できます。これらのクエリは、Lastpoint インデックス単独では実行不可能です。

Lastpoint インデックスで検索インデックスを使用する理由

Lastpoint インデックスは、各時系列の最新のデータポイントのみを格納します。たとえば、車のインターネット (IoV) シナリオでは、Lastpoint インデックスには車両ごとに 1 行のデータが含まれます。これには、最後に報告された GPS 座標、速度、ステータス、走行距離などが含まれます。

次の表は、車両フリートの Lastpoint インデックスのサンプルデータを示しています:

_#h

_m_name

_data_source

_tags

_time

gps

speed

status

total_mileage

remaining_mileage

4c#PlatformA#07

Platform A

sensor1

["region=hangzhou","car_model=sedan","number_plate=ZheA D7512*","color=white"]

1730423400000000

30.245853,120.178564

0

Idle

20000

450

25#PlatformA#ae

Platform A

sensor2

["region=hangzhou","car_model=suv","number_plate=ZheC 72B2*","color=black"]

1730779800000000

30.245853,120.213654

80

Active

15050

250

b2#PlatformB#4b

Platform B

sensor3

["region=hangzhou","car_model=sedan","number_plate=ZheB 121*9","color=blue"]

1730862600000000

30.246022,120.124460

0

Idle

18230

270

多次元インデックスがない場合、プライマリキー (_#h) でしか行を取得できません。「現在アイドル状態で、残りの走行可能距離が 300 km を超える車両はどれか」といった問いに答えるには、すべての行をスキャンし、アプリケーション層でフィルター処理を行う必要がありますが、これは大規模になると処理が遅く、コストも高くなります。

Lastpoint インデックス上に構築された検索インデックスは、転置インデックスと列のストアをサポートし、以下を可能にします。

  • プライマリキー以外のクエリ — 車両のステータスや残りの走行可能距離など、任意の属性列でフィルター処理

  • ブール値、あいまい、全文検索クエリ — AND、OR、NOT 演算子で条件を組み合わせる

  • ジオクエリ — 指定した地理的エリア内のレコードを検索

  • k-最近傍 (KNN) ベクトルクエリ — ベクトルフィールドでの類似検索

  • 集約 — 最新のデータポイント全体で、最大値、最小値、カウント、グループごとの統計を計算

    説明

    このトピックでは、検索インデックスを使用して Lastpoint インデックスを取得するサンプルシナリオを説明します。 詳細については、「付録: サンプルシナリオ」をご参照ください。 検索インデックスの特徴と機能の詳細については、「検索インデックス」をご参照ください。

前提条件

開始する前に、時系列テーブルに対して Lastpoint インデックスが作成されていることを確認してください。詳細については、「LastPoint インデックスの作成」をご参照ください。

検索インデックスの管理とデータのクエリ

[時系列テーブルの管理]ページの [LastPoint Index] セクションで、検索インデックスを管理し、データをクエリします。

検索インデックスの作成

  1. [インスタンス管理] ページに移動します。

    1. Tablestore コンソールにログインします。

    2. 上部のナビゲーションバーで、リソースグループとリージョンを選択します。

    3. [概要] ページで、インスタンス名をクリックするか、[操作] 列の [インスタンスの管理] をクリックします。

  2. [時系列テーブルの管理] ページに移動します。

    1. [インスタンス管理] ページで、[時系列テーブル] タブをクリックします。

    2. [時系列テーブル] タブで、時系列テーブル名をクリックするか、[操作] 列の [データの管理] をクリックします。

  3. Lastpoint インデックスの検索インデックスを作成します。

    1. [基本情報] タブの [LastPoint インデックス] セクションで、Lastpoint インデックスの [検索インデックス] 列にある [検索インデックスの作成] をクリックします。

    2. [検索インデックスの作成] ダイアログボックスで、検索インデックスのパラメーターを設定します。

      この例では、テーブル名は demo_lastpoint、インデックス名は demo_lastpoint_search_index です。自動生成されるフィールドは次のとおりです:

      • _#h (String)

      • _m_name (String)

      • _data_source (String)

      • _tags (String)

      • cpu_sys (Double)

      • cpu_usage (Double)

      • _time (Long)

      1. デフォルトのインデックス名をそのまま使用するか、要件に応じて名前を入力します。

      2. スキーマの生成方法を選択します。

        重要

        [フィールド名] と [フィールドタイプ] の値は、Lastpoint インデックスのフィールド名と型に一致する必要があります。Lastpoint インデックスと多次元インデックスのフィールドタイプのマッピングについては、「データ型」をご参照ください。

        • [スキーマ生成タイプ] を [手動] に設定した場合は、フィールド名を入力し、フィールドタイプを選択して、[配列] を有効にするかどうかを指定します。

        • [スキーマ生成タイプ] を [自動生成] に設定した場合、システムは Lastpoint インデックスのフィールドをインデックスフィールドとして使用します。要件に応じて、フィールドタイプを選択し、[配列] を有効にするかどうかを指定します。

        説明

        仮想カラムを使用すると、テーブルスキーマを変更することなく、テーブルのカラムを多次元インデックス内の 1 つ以上の仮想カラムにマッピングできます。仮想カラムを使用して、クエリを高速化したり、異なる形態素解析メソッドを適用したりします。詳細については、「仮想カラム」をご参照ください。

      3. 生存時間 (TTL)、ルーティングキー、事前ソートの設定を行うには、[詳細設定] をオンにします。次の表に、パラメーターを示します。

        パラメーター

        説明

        ルーティングキー

        データ分散を制御するために使用されるルートフィールドです。1 つ以上のプライマリキー列を選択します。同じルートフィールド値を持つレコードは、同じデータパーティションに配置されます。ほとんどの場合、1 つのルートフィールドで十分です。複数のフィールドを指定した場合、それらの値が連結されてパーティションキーが形成されます。

        生存時間

        検索インデックス内のデータの保存期間。単位: 秒。デフォルト値: -1 (データは無期限)。

        TTL は 86,400 秒 (1 日) 以上、または -1 である必要があります。Tablestore は、TTL を超えたデータを自動的に削除します。

        事前ソート

        返されるデータのデフォルトのソート順です。有効な値:[デフォルト] (プライマリキーでソート) および [カスタム] (指定したフィールドでソート)。

        重要

        Nested フィールドを含む多次元インデックスは、事前ソートをサポートしていません。

      4. [OK] をクリックします。

多次元インデックスを使用したデータのクエリ

  1. [基本情報] タブの [LastPoint インデックス] セクションで、Lastpoint インデックスの [検索インデックス] 列にある [データの管理] をクリックします。

  2. [検索] ダイアログボックスで、データをクエリします。

    1. デフォルトでは、システムはすべての列を返します。特定の属性列を返すには、[返される列] パラメーターの [すべての列] をオフにし、目的の属性列を入力します。複数の列はカンマ (,) で区切ります。

      説明

      Lastpoint インデックスのすべてのプライマリキー列は常に返されます。

    2. 論理演算子を選択します: [And]、[Or]、または [Not]。

      [And] はすべての条件を満たす行を返します。[Or] は、単一の条件の場合はその条件を満たす行を返し、複数の条件の場合は [Or] は少なくとも 1 つの条件を満たす行を返します。[Not] は指定された条件を満たさない行を返します。

    3. インデックスフィールドを選択し、[追加] をクリックして、[クエリタイプ] と [値] パラメーターを設定します。

      説明

      1 つのフィールドに複数の値を指定するには、同じフィールドに対して再度 [追加] をクリックし、異なる [値] を設定します。

    4. デフォルトではソートは無効になっています。特定フィールドで結果をソートするには、[ソート] をオンにし、ソートフィールドを追加して、ソート順を設定します。

    5. デフォルトでは統計収集は無効になっています。フィールドの統計を収集するには、[統計の収集] をオンにし、フィールドを追加して、統計設定を行います。

    6. [はい] をクリックします。

      クエリ結果と統計は、[基本情報] タブの [LastPoint Index] セクションに表示されます。

検索インデックスの管理

次の表では、検索インデックスに対して実行できる操作について説明します。

操作

説明

検索インデックスの詳細表示

検索インデックスの基本情報、測定情報、ルーティングキー、インデックスフィールド、事前ソートの詳細を表示します。

  1. [時系列テーブルの管理] ページで、[基本情報] タブをクリックします。

  2. [LastPoint インデックス] セクションで、Lastpoint インデックスの [検索インデックス] 列にある [インデックス詳細] をクリックします。

  3. [インデックス詳細] パネルで、インデックス情報を確認します。

検索インデックスの削除

不要になった検索インデックスを削除します。

  1. [時系列テーブルの管理] ページで、[基本情報] タブをクリックします。

  2. [LastPoint インデックス] セクションで、Lastpoint インデックスの [検索インデックス] 列にある [削除] をクリックします。

  3. [検索インデックスの削除] ダイアログボックスで、インデックス情報を確認し、[OK] をクリックします。

SDK 統合

Lastpoint インデックスで多次元インデックスを操作するには、次の Tablestore SDK を使用します:

課金

  • Lastpoint インデックスの作成は無料です。Lastpoint インデックスデータのストレージと読み取り操作は課金対象です。詳細については、「時系列モデルの課金項目」をご参照ください。

  • 検索インデックスを介して Lastpoint インデックスにクエリを実行すると、検索インデックス料金が発生します。 詳細については、「検索インデックスの課金項目」をご参照ください。

よくある質問

付録:サンプルシナリオ

車のインターネット (IoV) シナリオでは、車両センサーが時系列データをクラウドに報告します。アプリケーションは、車両ステータスのモニタリング、フリートの位置特定、軌跡表示などのユースケースのために、このデータを格納、クエリ、分析します。

次の表は、時系列テーブルのサンプルデータを示しています。

説明

この例では、_m_name、_data_source、_tags は、それぞれメジャー名、データソース、タグ情報を指定する時系列識別子です。_time はデータ報告のタイムスタンプです。gps、speed、status、total_mileage、remaining_mileage は、それぞれ GPS 座標、速度、車両ステータス、総走行距離、残走行可能距離を指定する時系列データフィールドです。

_m_name

_data_source

_tags

_time

gps

speed

status

total_mileage

remaining_mileage

Platform A

sensor1

["region=hangzhou","car_model=sedan","number_plate=ZheA D7512*","color=white"]

1730422800000000

30.245853,120.178564

0

Idle

20000

450

Platform A

sensor1

["region=hangzhou","car_model=sedan","number_plate=ZheA D7512*","color=white"]

1730423400000000

30.245853,120.178564

0

Idle

20000

450

Platform A

sensor2

["region=hangzhou","car_model=suv","number_plate=ZheC 72B2*","color=black"]

1730779200000000

30.245278,120.150269

50

Active

15000

300

Platform A

sensor2

["region=hangzhou","car_model=suv","number_plate=ZheC 72B2*","color=black"]

1730779800000000

30.245853,120.213654

80

Active

15050

250

Platform B

sensor3

["region=hangzhou","car_model=sedan","number_plate=ZheB 121*9","color=blue"]

1730862000000000

30.246013,120.124470

60

Active

18200

300

Platform B

sensor3

["region=hangzhou","car_model=sedan","number_plate=ZheB 121*9","color=blue"]

1730862600000000

30.246022,120.124460

0

Idle

18230

270

Tablestore は、各時系列の最新のデータポイントを Lastpoint インデックスに自動的に同期します。結果として得られる Lastpoint インデックスのデータは、前のセクションの表に示されています。

以下のクエリ要件を考慮して、Lastpoint インデックスに多次元インデックスを作成し、その完全なクエリ機能を使用します。

  • 現在アイドル状態で、残りの走行可能距離が 300 km を超える車両を検索します。

  • 指定された地理的エリア内の車両を検索します。

  • 現在アクティブな車両の最高速度を検索します。

  1. 次のフィールドを持つ多次元インデックスを作成します:gps、speed、status、remaining_mileage。

  2. 多次元インデックスを使用してデータをクエリします。次の表は、各要件とその実装方法を示しています。

クエリ要件

実装

現在アイドル状態で、残りの走行可能距離が 300 km を超える車両を検索

status に対する完全一致検索 (値: "Idle") と remaining_mileage に対する範囲クエリ (値 > 300) を組み合わせます。

指定された地理的エリア内の車両を検索

gps フィールドでジオクエリを使用して、対象座標内の行を返します。

現在アクティブな車両の最高速度を検索

status に対する一致検索 (値: "Active") と speed フィールドに対する max 集約を使用します。