我正在尝试测试 geomesa cassandra 后端。
我已经从 OSM 摄取了约 2M 点,并使用 geomesa 和 geotools ecql 向 cassandra发送DWITHIN
和查询。BBOX
然后我做了一些性能测试,结果对我来说看起来并不合理。
Cassandra 安装到具有 16 核至强、32GB RAM 和 1 个 SSD 驱动器的 linux 机器上。我~150
每秒收到查询。
我开始为我的查询调查 geomesa 执行计划。
来自org.locationtech.geomesa.index.utils.Explainer
的跟踪日志真的很有帮助,他们很好地解释了正在发生的事情。
让我感到困惑的是通过 cassandra 进行的范围扫描的数量。
例如,我在日志中看到以下内容:
Table: osm_poi_a7_c_osm_5fpoi_5fa7_attr_v2
Ranges (49): SELECT * FROM ..
该数字49
表示发送到 cassandra 的实际范围扫描数。不同的查询给了我不同的结果,它们大约从 ~10 到 ~130 不等。
10
对我来说看起来很合理,但130
看起来很大。
您能否解释一下导致 geomesa 发送如此大量范围扫描的原因?
有什么办法可以减少范围扫描的次数?
也许有一些配置选项?
还有其他选择吗?像降低 z-index 的精度以改进此类查询?
不管怎么说,还是要谢谢你!