Cassandra CQL:如何仅插入不超过3年的记录?

时间:2019-11-07 11:20:15

标签: cassandra insert conditional-statements cql

我有一些这样的桌子:

CREATE TABLE events (
   id int,
   eventdate timestamp,
   PRIMARY KEY (id)
);

我要做的是有条件插入,它将验证eventdate是否不超过3年,并在满足条件的情况下插入数据。

在SQL中,DATEADD可以实现类似的目的

如何在Cassandra中处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

select * from events并遍历结果集(分页)。发行超过3年的所有内容的插页。一个快速的python脚本并给它一两天的运行时间,比完成更复杂的事情所需的时间更少。特别是如果这是一次性的事情。如果您需要定期执行此操作,我建议编写一个火花作业来执行。如果您不想使用spark并希望在本地运行它,可以通过将select语句上的标记范围划分为环形边界来提高效率。

Cassandra将不支持大批量操作,这些操作要求在读取之前必须先读取整个数据集的读取。它不适用于其设计要支持的群集(请考虑跨许多数据中心的PB)。