我正在考虑使用Cassandra作为时间序列商店。我有数百万个系列,每个系列都有大约10K的连续点,并且间隔均匀。有些系列虽然有几千点或更少。它们可能在不同的点开始和结束,但都共享相同的时间。我访问数据系列
我正在考虑两种选择。首先,我每次只能有一个列,因为它建议用于监控系统(尽管我有不同的访问模式)。其次,每个分区使用一列列表。
我担心读取性能(第二个用例更为关键)和存储开销。我做了以下公式:
total_column_size = column_name_size + column_value_size + 15
here
我认为这会使第一个选项在存储方面相当昂贵。我找不到列表存储布局的任何文档。你知道吗?有其他建议吗?
顺便说一句,我使用python作为cassandra的客户端,如果这有任何区别的话。
答案 0 :(得分:3)
“存储便宜”一般是这里的理念。如果您有两种查询模式,那么您可以将所有内容存储两次:一次按所需的垂直分割(天数除外),再按所选系列分区。如果您不知道如何提前对系列进行分区(从问题中不清楚)那么它会变得更加复杂。按顺序阅读时,Cassandra读取是顺序的 - 这是你应该使用它的唯一方法。
你所拥有的X0bn点数大于你的平均数据库,但并不接近荒谬,尤其是分布在集群上时。鉴于我不知道数据点的宽度,很难确定一个确切的数字,但如果这些只是标量值,那么这只是2TB左右的数据。