Cassandra没有地理空间支持的原因吗?

时间:2014-04-04 16:50:25

标签: geolocation nosql cassandra geospatial

由于Cassandra基于Dynamo论文(分布式,自平衡哈希表)+ BigTable,并且有一些空间索引可以很好地适应该范例(quadkeygeohash)。是否有理由没有实施地理空间支持?

您可以将GeoPoint数据类型添加为具有内部geohash的元组,并将CF指定为包含地理数据。从那里,您可以选择将地理数据作为二级索引或非规范化SCF的行为。这可以为地理空间开发奠定基础,你可以从实现一些低悬的水果开始,例如.nearby(),它可以返回共享相同geohash的列。 (我知道那不会给你"最近的",你必须走一圈周围的地理位置,或者使用一个形状和空间填充曲线,以便以后实现,但这是查找附近列的一般操作)

我知道SimpleGeo / Urban Airship为Cassandra建立了地理支持,但它看起来并没有被打开过。另外,让我知道是否有更好的地方问这个(quora,邮件列表等......)

1 个答案:

答案 0 :(得分:5)

我认为答案分为两部分。

为什么它不存在的原因是因为没有人向Cassandra提交代码已经考虑过这个功能,或者认为这个功能具有足够的优先权来花费大量时间。 Cassandra的大部分开发工作都是由Datastax完成的,他们作为一个商业实体,对用户的需求和建议非常了解,并且在新功能方面可以为他们提供最大投资回报率非常务实。

如果有一个足够好的第三方开发人员(或团队)有足够的时间在他们手上,这可以完成,并且概念上C *提交者可能没有添加像这样的主要功能的问题。

第二个方面是Cassandra支持blob(字节数组),这意味着您所描述的内容可以以相对简单的方式在客户端应用程序/驱动程序中实现。在这种情况下,驱动器将负责将地理调用转换为适当的原始字节操作。我也怀疑这比使用核心存储引擎中的相关运算符支持整个新数据原语要少。

相关问题