cassandra - 如何在Cassandra中实现触发器?

标签 cassandra cql cassandra-3.0

有关于如何逐步实现 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/

相关文章:

node.js - 如何使用 jest 框架为 cassandra 在 Node.js 中执行查询编写单元测试

cassandra - 我们可以使用 Cassandra 作为键值存储吗?

cassandra - 从 com.example.cassandra 使用 Java Driver for Apache Cassandra 1.0 连接到 Cassandra 时出错

java - 通过程序或命令获取mesospehere dcos下运行的服务IP端口

Cassandra 在 datastax 驱动程序中准备了批处理语句

cassandra - 在 Cassandra 2.2 中,无法创建包含密码的角色

java - Cassandra Java datastax 2.1.8 无法使用引号连接到键空间

python - 使用 datastax Python Cassandra 驱动程序从文件执行 CQL 查询

cassandra - Cassandra 中的列排序

java - 如何在Cassandra中使物化 View 立即更新(或者是否有手动刷新命令)?