Cassandra - 以下查询的最佳 table 建模?

Cassandra - Best table modelling for following query?

我想执行以下查询:

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

预计每张卡会有几百个结果,就像您的常规信用卡账单一样。

我正在考虑为 table 建模,例如:

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

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

好吧,请确保每张卡的总记录应小于 100 MB(Cassandra 中的经验法则),但我希望比这小得多。

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

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

month:04 和 2020 年将派生自 occurredAt timstampp。