我必须尽快从Geomesa数据存储中删除大量功能(大约100万条记录)。 我试着用:
String cql = DATE_TIME_FIELD + " BEFORE " +
strCurrentDateTime + ") AND " + "(" + TIMING_FIELD + " > 0)";
Filter filter = CQL.toFilter(cql);
featureStore.removeFeatures(filter)
然而它运作得太慢了。 DATE_TIME_FIELD和TIMING_FIELD都有索引。还有其他方法吗?
谢谢!
答案 0 :(得分:1)
通常,GeoMesa利用的分布式数据库针对插入进行了优化。删除大量记录会导致许多次要和主要的压缩。
复杂化问题,每个索引为每个记录写入额外的条目,这增加了要删除的内容的数量。
如果想要删除整个表/要素类型,通常可以正常工作。
如果频繁地删除数百万条记录,可能会为基础数据存储区编写批量删除帮助程序。 (例如,使用具有某些配置的GeoMesa文件系统,这种删除可能很简单。)