【发布时间】:2021-05-15 16:32:20
【问题描述】:
我有一张桌子
CREATE TABLE tablea (
hour text,
key_mod int,
processed int,
column1 bigint,
column2 biginit,
column3 biginit,
PRIMARY KEY ((event_hour, key_mod, processed), item_id, variation_id)
CREATE INDEX processed_idx ON tablea (processed);
已处理有两个值 - 1 表示已处理 0 表示未处理
SELECT * FROM tablea WHERE hour=? AND key_mod=? AND p1='N' LIMIT 300;
这会创建一个巨大的二级索引,我感觉它也会导致频繁的 gc。
我的访问模式看起来像
- 获取一小批未处理的记录
- 处理它们
- 将批次中的记录标记为“已处理”
为这张桌子建模的最佳方法是什么?我们无法将已处理添加到集群列,因为我们将无法更新它。我们的想法已经不多了。
谢谢
【问题讨论】:
标签: cassandra nosql data-modeling