17

我们正在研究使用 Cassandra 来存储来自各种来源的信息流。

我们面临的一个问题是在两个日期之间进行查询的最佳方式。

例如,我们需要检索 datetime dt1 和 datetime dt2 之间的对象。

我们目前正在考虑将创建的 unix 时间戳作为指向实际对象的键,然后使用 get_key_range 进行查询以检索?

显然,如果两个项目具有相同的时间戳,这将不起作用。

一般来说,这是在 noSQL 存储中执行日期时间的最佳方法吗?

4

1 回答 1

15

Cassandra 行可能非常大,因此请考虑将其建模为一行中的列而不是 CF 中的行;那么您可以使用列切片操作,这比行切片要快。如果没有与此关联的“自然”键,那么您可以使用每日或每小时键,例如“2010/02/08 13:00”。

否则,是的,使用范围查询(get_key_range 在 0.5 中已弃用;使用 get_range_slice)是您的最佳选择。

于 2010-02-08T19:16:26.887 回答