このトピックでは、ApsaraDB for HBase Ganos(HBase Ganos)を使用してデータの書き込み、クエリ、および削除を行う方法について説明します。
サンプルコード
- hbase-ganos-sample をクリックして、サンプルコードをダウンロードします。
サンプルコードパッケージをダウンロードして解凍した後、pom.xmlファイルのプロジェクト依存関係を変更します。詳細については、このトピックの「依存関係」セクションをご参照ください。
- サンプルコードについて理解します。
- trajectory-sample モジュール自動識別システム(AIS)データがサンプルデータとして使用され、軌跡データの書き込みおよびクエリ方法が示されます。
- Main:サンプルプログラムのエントリポイントです。
- Writer:ApsaraDB for HBaseデータベースにデータを書き込むために使用されます。手順全体は、HBase Ganosへの接続、時空間インデックステーブルとして使用されるSchemaオブジェクトの作成、サンプルデータの読み取り、時空間インデックステーブルへのサンプルデータの書き込みという手順で構成されます。
- Reader:一般的なクエリインターフェースです。サンプルコードでは、等値クエリ、プレフィックスクエリ、サフィックスクエリなどの属性クエリ、空間データクエリ、および時空間データクエリの例が提供されています。
- spark-sample モジュールAISデータがサンプルデータとして使用され、軌跡データの書き込み方法と、Apache Sparkを使用して軌跡データをクエリおよび分析する方法が示されます。
- Writer:ApsaraDB for HBaseデータベースにデータを書き込むために使用されます。手順全体は、HBase Ganosへの接続、時空間インデックステーブルとして使用されるSchemaオブジェクトの作成、サンプルデータの読み取り、時空間インデックステーブルへのサンプルデータの書き込みという手順で構成されます。
- SparkDemo:HBase Ganosからデータを読み取り、データをSpark DataFrameに変換し、Spark SQLを使用して空間データクエリなどの操作を実行するために使用されます。
- trajectory-sample モジュール
依存関係
GeoMesaクライアントまたはHBase Ganosクライアントを使用できます。 HBase Ganosクライアントは、GeoMesaクライアントよりも多くの機能を提供します。
GeoMesa クライアント
HBase Ganosは、オープンソースのGeoMesaクライアントと互換性があります。 HBase Ganosの特定の機能が必要ない場合は、GeoMesaクライアントを使用できます。
重要 GeoMesaクライアントは、HBase 1.xのHBase Ganosにアクセスするためにのみ使用できます。
<properties>
<!-- Note: Specify the version of the ApsaraDB for HBase client -->
<alihbase.version>1.3.1</alihbase.version>
</properties>
<dependency>
<groupId>org.locationtech.geomesa</groupId>
<artifactId>geomesa-hbase-datastore_2.11</artifactId>
<version>2.2.1</version>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Dependencies for the ApsaraDB for HBase client-->
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-client</artifactId>
<version>${alihbase.version}</version>
<exclusions>
<exclusion>
<artifactId>com.google.guava</artifactId>
<groupId>guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-server</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-common</artifactId>
<version>${alihbase.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.hbase</groupId>
<artifactId>alihbase-protocol</artifactId>
<version>${alihbase.version}</version>
</dependency>
HBase Ganos クライアント
- HBase 1.x重要 HBase 1.x 用の HBase Ganos 依存関係は、maven ライブラリにリリースされていません。ganos-hbase-distributed-runtime_2.11-2.2.1-2.1.0.jar をクリックしてパッケージをダウンロードし、次の依存関係を設定してください。
<properties> <!-- Note: Specify the version of the ApsaraDB for HBase client --> <!-- 注:ApsaraDB for HBase クライアントのバージョンを指定します --> <alihbase.version>1.3.1</alihbase.version> </properties> <dependency> <groupId>com.aliyun.tst.ganos</groupId> <artifactId>ganos-geomesa-hbase15</artifactId> <version>2.0.0</version> <scope>system</scope> <systemPath>/ganos-jar-path</systemPath> </dependency> <!-- Dependencies for the ApsaraDB for HBase client--> <!-- ApsaraDB for HBase クライアントの依存関係 --> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-client</artifactId> <version>${alihbase.version}</version> <exclusions> <exclusion> <artifactId>com.google.guava</artifactId> <groupId>guava</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-server</artifactId> <version>${alihbase.version}</version> </dependency> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-common</artifactId> <version>${alihbase.version}</version> </dependency> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-protocol</artifactId> <version>${alihbase.version}</version> </dependency>
- HBase 1.x重要 HBase 1.x用のHBase Ganosの依存関係は、mavenライブラリにリリースされていません。 ganos-hbase-distributed-runtime_2.11-2.2.1-2.5.0.jar をクリックしてパッケージをダウンロードし、次の依存関係を設定します。
<properties> <!-- 注: ApsaraDB for HBase クライアントのバージョンを指定します --> <alihbase.version>2.0.0</alihbase.version> </properties> <dependency> <groupId>com.aliyun.tst.ganos</groupId> <artifactId>ganos-geomesa-hbase20</artifactId> <version>2.5.0</version> <scope>system</scope> <systemPath>/ganos-jar-path</systemPath> </dependency> <!-- ApsaraDB for HBase クライアントの依存関係 --> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-client</artifactId> <version>${alihbase.version}</version> <exclusions> <exclusion> <artifactId>com.google.guava</artifactId> <groupId>guava</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-server</artifactId> <version>${alihbase.version}</version> </dependency> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-common</artifactId> <version>${alihbase.version}</version> </dependency> <dependency> <groupId>com.aliyun.hbase</groupId> <artifactId>alihbase-protocol</artifactId> <version>${alihbase.version}</version> </dependency>