Cassandra CQL:如何只插入不超过 3 年的记录?
Cassandra CQL: How to insert only records, which are not older than 3 years?
我有一些 table 这样的:
CREATE TABLE events (
id int,
eventdate timestamp,
PRIMARY KEY (id)
);
我想做的是条件插入,它会验证 eventdate
是否不超过 3 年,如果满足条件则插入数据。
在 SQL 中,DATEADD
可以实现类似的功能
在Cassandra中如何处理?
select * from events
并迭代(分页)结果集。为超过 3 年的所有内容发布插页。一个快速的 python 脚本并给它一两天到 运行 将比更复杂的事情在更短的时间内完成。特别是如果这是一次性的事情。如果您需要定期执行此操作,我建议您编写一个 spark 作业来执行此操作。如果您不想使用 spark 并希望在本地 运行 通过将 select 语句上的标记范围拆分为环边界,您可以获得更高的效率。
Cassandra 不支持需要先读后写的大型批量操作,而后者必须读取整个数据集。它不适用于其设计支持的集群(想想跨越许多数据中心的 PB)。
我有一些 table 这样的:
CREATE TABLE events (
id int,
eventdate timestamp,
PRIMARY KEY (id)
);
我想做的是条件插入,它会验证 eventdate
是否不超过 3 年,如果满足条件则插入数据。
在 SQL 中,DATEADD
在Cassandra中如何处理?
select * from events
并迭代(分页)结果集。为超过 3 年的所有内容发布插页。一个快速的 python 脚本并给它一两天到 运行 将比更复杂的事情在更短的时间内完成。特别是如果这是一次性的事情。如果您需要定期执行此操作,我建议您编写一个 spark 作业来执行此操作。如果您不想使用 spark 并希望在本地 运行 通过将 select 语句上的标记范围拆分为环边界,您可以获得更高的效率。
Cassandra 不支持需要先读后写的大型批量操作,而后者必须读取整个数据集。它不适用于其设计支持的集群(想想跨越许多数据中心的 PB)。