我在 cassandra 数据库中有一个数据集,其中每个记录必须每月处理一次(基本上是每月订阅)。进程每天运行,因此数据分为 31 个块,每天处理。我正在尝试设计一个分区键以避免过滤所有数据集。
第一个解决方案是分配一个基于一个月中某天的分区键。这意味着我每天可以处理固定数量的分区 (31)。但问题是数据大小会随着时间的推移而增加,但分区数将保持不变,我可能会因为行太宽而遇到性能问题。
其他解决方案是根本不处理这个问题,每天使用 apache spark 处理所有表(基本上使用 spark 过滤选择 1/31 的数据)。随着时间的推移,数据会增加,但集群中的节点也会增加,我可能会有一个恒定的性能。但所有建议都反对 cassandara 中的数据过滤。
在这种情况下理论上可能拥有的最大行数约为 10 亿。
会有什么建议?