dat*_*eek 5 time-series cassandra
我正在寻找创建一个Cassandra时间序列数据库,用于存储数百万个可能总共高达100B数据点的日常数据系列.
我查看了这篇文章:http: //rubyscale.com/blog/2011/03/06/basic-time-series-with-cassandra/
这种设计非常完美.所以基本上我可以将每日时间戳作为列,如果需要,可以通过将日期附加到行来对列进行分片.
我有两个问题:
如果您要管理大量写入,则您的方法存在一个问题。
始终写入 1 个键意味着该键的所有写入都将写入一个节点。基本上,您每天都会使用集群中的一个节点,因此您不妨拥有一个巨大的 Cassandra 实例,而不必费心设置集群。如果您的写入频率非常高,您可能会关闭负责该日期/密钥的节点。
我的建议是将一天分成同时使用的多行。时间桶可能很危险,因为在一个时间桶内突然激增可能会导致一切崩溃。
您可以像这样创建存储桶(行键):
有很多方法可以做到这一点。您还可以使用正在保存的列的某些元素来执行此操作。但我认为这样做应该很重要,以便始终利用整个 cassandra 集群。
我的答案仅适用于写入繁重的应用程序/功能,因为您必须使用 multi_get (多个键整行读取)来读取所有数据并重新构建当天的整个时间线。