Cassandra:地理空间支持

Posted

技术标签:

【中文标题】Cassandra:地理空间支持【英文标题】:Cassandra: Geospatial support 【发布时间】:2013-07-06 10:53:09 【问题描述】:

在 Cassandra 之上实现地理空间查询的最佳方式是什么?

地理空间是指能够根据地理位置查询数据对象。 例如,查找离用户当前位置最近的 10 家餐厅。

我想到了一种可能的解决方案,但这似乎是一个可怕的 hack: 使行充当纬度和经度数据范围的“桶”(分别)。 然后按升序将位置作为列保存到适当的行中。 按纬度、经度(再次分别)查询 20 家壁橱餐厅,然后与 2 个集合相交。

我开始认为这可能是 Cassandra 模型的一个严重缺陷。

【问题讨论】:

【参考方案1】:

基本的 b 树索引以宽行的形式存在于 cassandra 中。 PlayOrm 在 cassandra 上具有完整的 SQL 语言,但带有分区,因此您不会将数十亿行与数十亿行连接起来,而是连接分区。我想做地理空间会与 PlayOrm 类似,但我猜。我的意思是地理空间可以用b-tree之类的吗?如果是这样,那只是意味着您必须做一些繁重的工作。我知道在某一时刻,PlayOrm 正在考虑添加一些地理空间功能,但我们从未考虑过......不过,我们总是会接受该领域的工作。

后来, 院长

【讨论】:

以上是关于Cassandra:地理空间支持的主要内容,如果未能解决你的问题,请参考以下文章

spring-data-cassandra 存储库的多个键空间支持?

如何使用 NoSQL 大规模运行地理空间查询?

cassandra 中的地理感知分区

在 Cassandra 中存储地理位置详细信息和在 Elastic Search 中存储索引的最佳方式?

DSE:地理位置,即纬度和经度在 cassandra 中存储为不同的字段

Cassandra数据存储:数据目录空间不等于占用空间