首页 > 解决方案 > Cassandra - 以下查询的最佳表建模?

问题描述

我希望执行以下查询:

SELECT value,occurredAt,venueName FROM Transaction_by_card WHERE card = 1234123412341234

并期望每张卡有几百个结果,就像您的常规信用卡账单一样。

我正在考虑对表格进行建模,例如:

(卡片 int,发生在时间戳,场地名称文本,值 int 主键(卡片,时间戳)与集群顺序按发生在 desc)

这是我用例的最佳模型吗?

标签: cassandracql

解决方案


好吧,只要确保每张卡的总记录应小于 100 mb(Cassandra 中的一种拇指规则),但我更喜欢比这更小的价值。

如果您假设您的结果大小可以更大,您可以执行基于时间
的存储桶例如基于月份的存储桶看起来像

(card int, occurredAt timestamp, year int, month int, venueName text, value int PRIMARY KEY ( (card, year, month) timestamp) WITH CLUSTERING ORDER BY occurredAt desc)

月份:04 和 2020 年将来自发生在 timstampp。


推荐阅读