是否有关于如何逐步实施Cassandra触发器的良好示例或指南?
我正在寻找一些高级的东西,比如在执行INSERT或UPDATE后操纵同一分区中的其他行。
不幸的是文档非常有限,到目前为止我只找到了这些链接:
假设您希望将日志放入表中,并在达到一定数量的日志条目时对其进行汇总。
CREATE TABLE simple_log (
id int,
event_id timeuuid,
message text,
PRIMARY KEY(id)
);
INSERT INTO simple_log (id, event_id, message) VALUES (1, now(), 'first');
INSERT INTO simple_log (id, event_id, message) VALUES (1, now(), 'second');
INSERT INTO simple_log (id, event_id, message) VALUES (1, now(), 'third');
每当您按ID选择日志顶部时,您应该返回汇总结果:
SELECT * FROM simple_log WHERE id = 1;
id | event_id | message
----+--------------------------------------+---------
1 | d97f92d1-b5a4-11e7-825c-495e6ea8608a | first-second-third
答案 0 :(得分:2)
您可以添加突变以将其他行操纵到突变集合中,如示例中所示。
它和CDC都没有很多关于它的文档,因为它通常建议不要使用它们,除非需要 。使用这样的东西在分布式系统中有很多复杂性,并且通常可以在应用层中更好地推理它。
为什么不在批处理中包含其他突变?特别是在同一个分区中,它可能会更好地工作,并且需要更少的工作,例如保持在所有实例上部署的触发器同步和更新等。