有关于如何逐步实现 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
最佳答案
您可以添加突变来操作突变集合中的其他行,如示例中所示。
它和 CDC 都没有大量相关文档,因为通常建议不要使用它们,除非确实需要。分布式系统中存在很多类似这样的复杂性,通常可以在应用程序层中更好地进行推理。
为什么不将其他突变包含在一个批处理中?特别是在同一分区中,它可能会工作得更好,并且在保持触发器部署在所有实例上同步和更新等方面需要更少的工作。
关于cassandra - 如何在Cassandra中实现触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46837731/