如何从 Geomesa HBase Table 中读取数据?

How to read data from Geomesa HBase Table?

我很好奇想知道 Geomesa 在 HBase 中存储了什么值? processing/conversion Geomesa 在将数据存储到 HBase 之前做了什么?

例如,如果我直接在 HBase 上获取一个 Id,那么我会得到 response-1,但是对于相同的 Id,如果我执行 geomesa-hbase export,那么我会得到 response-2。如果直接想读取response-1,需要做什么样的转换?它是 Kryo 序列化的 byte[]?

响应 1

COLUMN                                         CELL                                                                                                                                  
 d:                                            timestamp=1567139694958, value=\x02\x00\x00\x00`OSM-node-541692281\xB9\x01\x08\x03\xC0^\x87\x9D\x0A\xBC\x01L@G\xD9\xA0\x01\x92\xA77\x7F\xF8\x00\x00\x00\x00\x00\x00\x01\x00\x00\x01a\x9F\xA1\x80h\x821-\xB1testUse\xF2OS\xCD\x01\x00\x00\x00\x01B\xDF\xAE\xC3\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x05\x183<>@HKTU^                                                                                    
1 row(s) in 0.8870 seconds

响应 2:

id,key:String,*geom:Point:srid=4326,timestamp:Timestamp,version:String,uid:String,user:String,featureSource:String,nodeId:Long,"tags:Map[String,String]",changeset:Long,visible:Boolean
OSM-node-5416922819,OSM-node-5416922819,POINT (-122.1189600788104 47.7001955),2018-02-16T17:20:17.000Z,1,-1,testUser,OSM,5416922819,,0,false

HBase 始终将值存储为 byte[]。在这种情况下,该值是 Kryo 序列化的 SimpleFeature。您可以使用 GeoMesa serializer instance.

反序列化它