我可以在 Cassandra 4.x 中的地图值上创建存储附加索引吗?

Can I create Storage Attached Indexes on a map's values in Cassandra 4.x?

是否可以在 Cassandra 中的地图值上创建存储附加索引?就我而言,我有一个名为 coordinates 的列,其数据类型为 map<text,float> 并包含传感器位置的纬度和经度。因此,我想在地图的值上创建一个 SAI,以便能够根据这些值查询 table。

这是反模式吗?纬度和经度有两个单独的列会更好吗?

不,地图(或其他“复杂”类型)尚不支持创建 SASI 索引。

Is this an anti-pattern?

很遗憾,是的。即使有效,仅通过 coordinatesWHERE 子句中过滤也不会成为 partition-based 查询,并且会有点慢。不确定这里的键 is/was 是如何建模的,但是需要做一些工作来确保查询可以由单个节点提供服务。而基于 SAI/SASI 的索引查询不能保证这一点。