全部产品
云市场

FAQ

更新时间:2019-09-05 10:11:51

HBase Ganos能否支持地理围栏数据的存取

地理围栏数据本质上是“面”数据,属于GeoJson的标准数据类型,HBase Ganos完全支持,其存取方式同“点”、“线”数据一致。

  1. {
  2. "features": [
  3. {
  4. "geometry": {
  5. "coordinates": [
  6. [0,0],
  7. [0,1],
  8. [1,1],
  9. [1,0],
  10. [0,0]
  11. ],
  12. "type": "Polygon"
  13. },
  14. "id": "polygon_feature",
  15. "properties": {
  16. "name": "shanghai"
  17. },
  18. "type": "Feature"
  19. }
  20. ],
  21. "type": "FeatureCollection"
  22. }

如何设置ID

如果ID列作为索引,则需要保证ID的唯一性,一般建议是业务上的biz_id+timestamp组合

采用何种时间格式并建立时间索引

在HBase Ganos中,时间数据是放在GeoJson的properties域中,,其格式可以为:时间戳,毫秒级的时间戳为13位整型,如1542628013000字符描述的时间格式:如2018/11/19 19:46:53,或者带时区的2018/11/19T19:46:53Z下面示例中,properties域中的dtg字段为时间字段(具体名称可自定),在创建索引时通过参数 date=properties.dtg为时间建立索引,其中date是固定写法,properties.dtg为GeoJson中的时间字段。

  1. {
  2. "type": "Feature",
  3. "geometry": {
  4. "type": "Point",
  5. "coordinates": [125.6, 10.1]
  6. },
  7. "properties": {
  8. "name": "Dinagat Islands",
  9. "dtg": 1536041936000,
  10. "id": "1"
  11. }
  12. }

通过时间查询,性能较慢,可能是什么原因

  • 请检查是否为其建立索引,方法为(目前需要扩展GeoMesa功能)
  • 请检查数据查询条件的时间格式是否与数据写入时的时间格式相同。入库时时间字段为时间戳(整型,1542628013000),查询时时间格式为字符描述的(如2018/11/19 19:46:53),则时间索引无效。

如何进行数据的更新基于HBase的特性,{row, column}相同时,只会返回最新一个version的数据,可等同认为数据会覆盖。举例如下:依次插入数据 1:a,b,c 和1:a1,b1。则最终只会保存1:a1,b1依次插入数据 1:a,b,c 和1:a1,b1,c1,d,e,f 。则最终只会保存1:a1,b1,c1,d,e,f。

如何依据高程进行查询

目前时空索引支持二维空间坐标+时间坐标,并不支持高程。可将高程信息放在属性中并为其建立索引

REST接口中创建ds时,需要注意什么?

在REST接口中,创建ds时,需要指定hbase catalog和zookeeper地址,而后面两个参数决定了数据的存放位置。因此可以将ds理解为是一个配置名称,通过这个配置名称可以找到hbase catalog和zookeeper,并非是普通数据库中的datasource含义。因此,如果hbase catalog和zookeeper地址不同,建议创建不同的ds;反之,尽量使用同一个ds。

有两个不同名称的ds,索引名称相同,为什么会查出来一样的数据?如上面所述,ds只是一个别名,真正起作用的是hbase catalog和zookeeper地址。如果两个不同名称的ds,指向的hbase catalog和zookeeper地址是同一个,在索引名相同的情况下,会共用一个索引,因此查出来的数据是一样的。