Cassandra 时间序列数据
我们正在考虑使用 Cassandra 来存储来自各种来源的信息流。
我们面临的一个问题是查询两个日期之间的最佳方式。
例如,我们需要检索日期时间 dt1 和日期时间 dt2 之间的对象。
我们目前正在考虑将创建的unix时间戳作为指向实际对象的键,然后使用get_key_range来查询检索?
显然,如果两个项目具有相同的时间戳,则这是行不通的。
一般来说,这是在 noSQL 存储中处理日期时间的最佳方法吗?
We are looking at using Cassandra to store a stream of information coming from various sources.
One issue we are facing is the best way to query between two dates.
For example we will need to retrieve an object between datetime dt1 and datetime dt2.
We are currently considering the created unix timestamp as the key pointing to the actual object then using get_key_range to query to retrieve?
Obviously this wouldn't work if two items have the same timestamp.
Is this the best way to do datetime in noSQL stores in general?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Cassandra 行可能非常大,因此请考虑将其建模为行中的列,而不是 CF 中的行;那么您可以使用列切片操作,它比行切片更快。如果没有与此关联的“自然”键,那么您可以使用每日或每小时键,例如“2010/02/08 13:00”。
否则,是的,使用范围查询(get_key_range 在 0.5 中已弃用;使用 get_range_slice)是您的最佳选择。
Cassandra rows can be very large, so consider modeling it as columns in a row rather than rows in a CF; then you can use the column slice operations, which are faster than row slices. If there are no "natural" keys associated with this then you can use daily or hourly keys like "2010/02/08 13:00".
Otherwise, yes, using range queries (get_key_range is deprecated in 0.5; use get_range_slice) is your best option.