在cassandra表中存储纬度经度

时间:2015-07-21 16:57:56

标签: cassandra cql

如何将纬度和经度存储到Cassandra表中以及如何在5公里范围内查询数据

1 个答案:

答案 0 :(得分:3)

你的问题非常广泛和模糊,所以我会给出一个非常广泛的答案。

您可以将每个纬度和经度作为一行存储在Cassandra表中,如下所示:

CREATE TABLE locations (location text PRIMARY KEY, latitude float, longitude float);

然后,要找到指定纬度和经度半径5公里范围内的所有位置(让我们称之为位置X),您需要使用您要创建的客户端应用程序检查表中的每一行。

在纯Cassandra中,您将从表中SELECT *获取所有行(如果有很多行则使用分页),并且在客户端应用程序中,对于每一行,检查X和行之间的距离是否为小于5公里,输出匹配的行。

或者你可以将Cassandra与Apache spark配对并同时进行相同的计算。

但是你可以采取很多不同的方法,所以这只是一种方式。