Lindorm GanosBase がアクティブ化された後、GanosBase API オペレーションを呼び出してアプリケーションを開発できます。
手順
サンプルコードパッケージ lindorm-ganosbase-sample をダウンロードします。
パッケージのダウンロードと解凍後、lindorm-sample ディレクトリに移動し、次のステートメントを実行します。
mvn install -Dmaven.test.skip=true -s ../settings.xml
コンパイルが成功すると、target ディレクトリに
lindorm-sample-1.0.0.jar
が生成されます。サンプルコードについて理解します。次の例では、自動識別システム(AIS)データを使用して、軌跡データの書き込み方法とクエリ方法を示します。
Main: サンプルプログラムのエントリポイントです。
JSON ファイルで操作とパラメータを指定します。詳細については、サンプル JSON ファイル sample_template.json をご参照ください。
Writer: Lindorm GanosBase にデータを書き込みます。2 つの書き込みモードがサポートされています。
WRITER: 単一スレッドを使用してデータを書き込みます。 Lindorm GanosBase に接続し、スキーマを定義し、時空間インデックステーブルを作成し、サンプルデータを読み取り、Lindorm GanosBase にサンプルデータを書き込みます。
PWRITER: 複数スレッドを使用してデータを書き込みます。 Lindorm GanosBase に接続し、スキーマを定義し、時空間インデックステーブルを作成します。スレッド数を指定します。各スレッドは、指定された範囲内でランダムな N 個の AIS ポイントを生成し、作成されたテーブルに AIS ポイントを書き込みます。 JSON ファイルでパラメータを指定する必要があります。詳細については、サンプル JSON ファイル write_template.json をご参照ください。
Reader: writer によって書き込まれた AIS データをクエリするために使用されるクエリインターフェースです。2 つのクエリモードがサポートされています。
READER: このクエリモードでは、固定パラメータを含むクエリを実行できます。クエリには、属性クエリ、空間クエリ、および時空間クエリが含まれます。
UDFQUERY: このクエリモードでは、JSON ファイルでパラメータを指定し、クエリ条件を指定して、空間クエリ、時空間クエリ、または属性クエリを実行できます。詳細については、サンプル JSON ファイル query_template.json をご参照ください。
サンプルコードを使用します。次の例では、
zk_address
パラメーターは、ワイドテーブルエンジン LindormTable に接続するために ApsaraDB for HBase API for Java が使用するエンドポイントに設定されています。データの書き込み
sample_template.json ファイルで、データの書き込みに必要なパラメータを設定します。
{ "operation" : "WRITER", "zk_address" : $your_zk_address, "catalog" : "example", "schema" : "ship" }
次のサンプルステートメントを実行して、データを書き込みます。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.json
デフォルトでは、スキーマが ship の 4 つのインデックステーブル(id、z2、z3、および attr 列のインデックス)が作成されます。指定されたインデックステーブルを作成する場合は、インデックステーブルの作成 で説明されている手順を実行します。
データのクエリ
sample_template.json ファイルでクエリパラメータを設定します。サンプルコードのデフォルトのクエリ範囲を使用します。
{ "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" }
次のサンプルステートメントを実行して、データをクエリします。
java -jar lindorm-sample-1.0.0.jar path_to_sample/sample_template.json
データを並列で書き込む
PWRITER を使用します。
{ "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" }
カスタムクエリを実行する
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" }