在HBase Ganos开通后(参考「开通指南」),就可以通过Ganos接口进行开发工作了。

依赖配置

GeoMesa客户端

HBase Ganos兼容开源的GeoMesa客户端,用户在不使用Ganos特定的功能优化时,可以直接集成GeoMesa客户端即可。

注意 GeoMesa客户端只适应基于HBase 1.x版本的Ganos
配置如下:
<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>
    <!-- 依赖alihbase -->
      <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-client</artifactId>
      <version>${hbase.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>${hbase.version}</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-common</artifactId>
      <version>${hbase.version}</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-protocol</artifactId>
      <version>${hbase.version}</version>
    </dependency>

Ganos客户端

  • 基于HBase 1.x的版本
注意 目前该版本的依赖包只能下载之后集成,尚未发布到maven库中,地址为:ganos-hbase-distributed-runtime_2.11-2.2.1-2.1.0.jar下载后,按照如下配置即可。
<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>
      <!-- 依赖alihbase -->
      <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-client</artifactId>
      <version>${hbase.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>${hbase.version}</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-common</artifactId>
      <version>${hbase.version}</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-protocol</artifactId>
      <version>${hbase.version}</version>
    </dependency>
  • 基于HBase 2.x的版本
注意 目前该版本的依赖包只能下载之后集成,尚未发布到maven库中,点此下载ganos-hbase-distributed-runtime_2.11-2.2.1-2.5.0.jar
<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>
      <!-- 依赖alihbase -->
      <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-client</artifactId>
      <version>${hbase.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>${hbase.version}</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-common</artifactId>
      <version>${hbase.version}</version>
    </dependency>
    <dependency>
      <groupId>com.aliyun.hbase</groupId>
      <artifactId>alihbase-protocol</artifactId>
      <version>${hbase.version}</version>
    </dependency>

示例应用

代码地址:ganos-sample-code

AIS数据是航海领域常用的数据,记录了船舶的航行轨迹等信息。数据格式如下,分别为:「船舶ID」「时间」「经度」「纬度」「航向」「速度」「数据源编码」「状态」

205073000;2018-09-03 09:15:50;72.96675666666667;11.982751666666667;130.* 0;13.1;17;129.0;0.0;1;在航
205073000;2018-09-03 11:10:17;73.27778666666667;11.70024;133.0;13.1;17;131.0;0.0;1;在航
205073000;2018-09-03 11:12:20;73.28349333333334;11.695146666666666;133.0;13.1;17;131.0;0.0;1;在航
205073000;2018-09-03 12:45:25;73.54346666666666;11.469733333333334;134.0;13.2;17;133.0;0.0;1;在航

针对这些轨迹的数据的查询包括:

  • 轨迹回放:查询某一船舶在过去某段时间内的轨迹数据。
  • 区域回放:查询某个区域范围内在某段时间所有的船舶轨迹。

具体来说,完成上述步骤需要经过如下步骤:

  • 创建索引:构造SimpleFeatureType,创建Schema,参考「索引表设计」章节
  • 构建时空对象:在SDK中即为构造SimpleFeature对象,参考「构建时空对象」章节
  • 写入:调用Ganos写入接口,参考「数据写入接口」章节
  • 查询:通过CQL描述查询语句,参考「数据查询接口」章节