我需要以一定的间隔将数据从系统转发到外部系统。为此,我已经将所有行存储在表中。已转发的数据不应再次导出。
这样做的目的是记住客户端的最后一次导出时间,并在下次导出以下记录。成功导出后,旧行将被删除。
CREATE TABLE export(
id int,
import_date_time timestamp,
data text,
PRIMARY KEY (id, import_date_time)
) WITH CLUSTERING ORDER BY (import_date_time DESC)
insert into export(id, import_date_time, data) values (1, toUnixTimestamp(now()), 'content')
select * from export where id = 1 and import_date_time > '2017-03-30 16:22:37'
delete from export where id = 1 and import_date_time <= '2017-03-30 16:22:37'
有没有人已经实现了类似的解决方案,或者您有不同的解决方案?
如果可能,我不需要请求的ID,因为我想导出所有数据
如果您使用固定的分区键值(id = 1),则所有插入,选择和删除操作都会在同一节点上重复进行(如果RF = 1)。并且还为每个删除卡桑德拉创建一个逻辑删除条目,当您执行选择查询时,卡桑德拉需要合并每个条目。因此,您的选择查询性能将下降。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。