要创建索引,Geomesa会在HBase中创建多个表。我有几个问题:
我计划将Geomesa与Hbase(由S3支持)组合使用以存储我的地理空间数据;数据大小可以增长到TB到PB。
我正在调查在主表和索引表之间的同步方面Geomesa的可靠性如何?
HBase表:
catalog1
catalog1_node_id_v4(主表)
catalog1_node_z2_geom_v5(索引表)
catalog1_node_z3_geom_lastUpdateTime_v6(索引表)
catalog1_node_attr_identifier_geom_lastUpdateTime_v8(索引表)
Geomesa架构
geomesa-hbase describe-schema -c catalog1 -f节点
INFO描述特征“节点”的属性
键|字符串
命名空间|字符串
标识符|字符串(索引属性)
versionId |字符串
nodeId |字符串
纬度|整数
经度|整数
lastUpdateTime |日期(时空索引)
标签|地图
geom |点(时空索引)(空间索引)
用户数据:
geomesa.index.dtg | lastUpdateTime
geomesa.indices | z3:6:3:geom:lastUpdateTime,z2:5:3:geom,id:4:3:,attr:8:3:identifier:geom:lastUpdateTime
答案 0 :(得分:0)
GeoMesa不会做任何同步索引的操作-通常应在您的提取管道中对此加以注意。
如果您有与给定输入功能绑定的可靠功能ID,则可以多次写入该功能而不会导致重复。在摄取期间,如果一批功能由于暂时性问题而失败,那么您可以重新编写它们以确保索引正确。
对于HBase,当您在功能编写器上调用flush
或close
时,待处理的变异将发送到群集。一旦该方法成功返回,则数据已保存到HBase。如果引发异常,则应重试失败的功能。如果随后发生HBase故障,则可能需要按照标准HBase操作恢复预写日志(WAL)。
由于验证(例如,空几何),特征也可能无法写入。在这种情况下,您将不想重试该功能,因为它将永远不会成功提取。如果您使用的是GeoMesa转换器框架,则可以pre-validate个功能以确保它们可以正常使用。
如果您还没有摄取管道,则可能要签出geomesa-nifi,这将使您转换和验证输入数据,并通过Nifi流自动重试失败。