我有非常大量的数据,我计划将它们存储在Cassandra中。我是Cassandra的新手,正在尝试找到一个适合我的数据模型。
我的数据是在不规则时间间隔内收集的商品的各种参数:
commodity_id | timestamp | param1 | param2
c1 | '2018-01-01' | 5 | 15
c1 | '2018-01-03' | 7 | 15
c1 | '2018-01-08' | 8 | 10
c2 | '2018-01-01' | 100 | 13
c2 | '2018-01-02' | 140 | 13
c2 | '2018-01-05' | 130 | 13
c2 | '2018-01-06' | 150 | 13
我需要查询数据库,并通过参数中的"百分比变化"获取商品 ID。
例如,找出在"2018-01-02"和"2018-01-06"之间参数2增加超过50%的所有商品
CREATE TABLE "commodity" (
commodity_id text,
timestamp date,
param1 int,
param2 int,
PRIMARY KEY (commodity_id, timestamp)
)
你应该对这张表没问题。你可以期待商品分区的 daysPerYear 条目,它相当小,因此你不需要任何人工键。即使你有大量的商品,你也不会用完分区,因为 murmur3 分区器实际上的范围是 -2^63 到 +2^63-1。这是 18,446,744,073,709,551,616 个可能的值。
我会从 cassandra 中提取数据并计算应用程序层中的值。