本ガイドでは、サンプル Java アプリケーションを用いて、Lindorm Ganos を使用した自動識別システム(AIS)の軌道データの書き込みおよびクエリ実行手順について説明します。
前提条件
開始する前に、以下の環境が整っていることを確認してください。
Lindorm Ganos が有効化されていること
Java および Maven がインストール済みであること
お使いの LindormTable インスタンスの
zk_addressエンドポイント
ステップ 1:サンプルパッケージのダウンロードとビルド
lindorm-ganos-sample パッケージをダウンロードし、展開します。
lindorm-sample ディレクトリから、以下のコマンドを実行します。
mvn install -Dmaven.test.skip=true -s ../settings.xmlビルドが正常に完了すると、lindorm-sample-1.0.0.jar が target ディレクトリ内に生成されます。
ステップ 2:データの書き込み
すべての操作は、sample_template.json を使用して操作タイプおよび接続パラメーターを JAR に渡します。
シングルスレッドでデータを書き込む場合は、sample_template.json 内の operation を WRITER に設定します。
{
"operation": "WRITER",
"zk_address": "<your_zk_address>",
"catalog": "example",
"schema": "ship"
}| パラメーター | 説明 |
|---|---|
zk_address | ApsaraDB for HBase API for Java が LindormTable に接続するために使用するエンドポイントです。 |
catalog | データを書き込むカタログ(名前空間)です。 |
schema | スキーマ名です。デフォルトのスキーマ ship では、id、z2、z3、および attr 列に基づく 4 つの時空間インデックステーブルが作成されます。カスタムインデックステーブルを使用する場合は、「インデックステーブルの作成」をご参照ください。 |
サンプルを実行します。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.json並列でのデータ書き込み
複数スレッドでデータを書き込む場合は、operation を PWRITER に設定します。各スレッドは指定された範囲内でランダムな AIS ポイントセットを生成し、インデックステーブルに書き込みます。
{
"operation": "PWRITER",
"zk_address": "<your_zk_address>",
"catalog": "example",
"schema": "ship",
"write_template_file": "src_root/src/main/java/com/aliyun/apsaradb/lindorm/ganos/sample/write_template.json"
}write_template.json 内でパラメーターを指定します。サンプルパッケージには、参考用の write_template.json が含まれています。
サンプルを実行します。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.jsonステップ 3:データのクエリ実行
固定クエリの実行
属性、空間、および時空間クエリをデフォルトパラメーターで実行するには、operation を READER に設定します。
{
"operation": "READER",
"zk_address": "<your_zk_address>",
"catalog": "example",
"schema": "ship"
}バウンディングボックスによるフィルター処理を行う場合は、filter_string パラメーターを追加します。
{
"operation": "READER",
"filter_string": "bbox(geom, 20, 20, 40, 40)",
"zk_address": "<your_zk_address>",
"catalog": "example",
"schema": "ship"
}bbox(geom, 20, 20, 40, 40) は、座標 (20, 20) および (40, 40) で定義されるバウンディングボックス内に収まるポイントのみを結果に含めます。
サンプルを実行します。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.jsonカスタムクエリの実行
JSON ファイルからパラメーターを読み込んで、カスタムの空間、時空間、または属性クエリを定義するには、operation を UDFQUERY に設定します。
{
"operation": "UDFQUERY",
"zk_address": "<your_zk_address>",
"catalog": "example",
"schema": "ship",
"query_template_file": "src_root/src/main/java/com/aliyun/apsaradb/lindorm/ganos/sample/query_template.json"
}クエリ条件は query_template.json で指定します。サンプルパッケージには、参考用の query_template.json が含まれています。
サンプルを実行します。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.json次のステップ
インデックステーブルの作成 — デフォルトではなく、カスタムの時空間インデックステーブルを定義します