如何使用cassandra cdc(更改数据捕获)

时间:2017-04-27 17:20:16

标签: cassandra change-data-capture

我想知道如何在cassandra中使用CDC。我发现这已经从3.8版开始实现( https://issues.apache.org/jira/browse/CASSANDRA-8844)。有没有使用的例子?

3 个答案:

答案 0 :(得分:1)

<强> 1。在cassandra.yaml上启用CDC

cdc_enabled (default: false)
Enable or disable CDC operations node-wide.

<强> 2。在表格上启用CDC

CREATE TABLE foo (a int, b text, PRIMARY KEY(a)) WITH cdc=true;
// or
ALTER TABLE foo WITH cdc=true;

第3。记忆刷新到磁盘后,您可以访问$CASSANDRA_HOME/data/cdc_raw

中的行CDC数据

在此文件夹cassandra store CommitLogSegments。您可以查看此链接Read CommitLogSegments

阅读更多:https://github.com/apache/cassandra/blob/8b3a60b9a7dbefeecc06bace617279612ec7092d/doc/source/operating/cdc.rst

答案 1 :(得分:1)

您可以编写自己的CommitLogReader实现,或使用此sample implementation.

但是,请注意,CDC日志不太可靠(由于重复的事​​件和将数据刷新到CDC所花费的时间),并且在将来的发行版中可能会发生格式更改。

答案 2 :(得分:1)

我在与 Cassandra 兼容并支持 CDC 的 ScyllaDB 工作 - 使用起来更简单。

您可以指定是否仅获取增量、前图像、后图像。数据存储在系统生成的表中,可以通过 CQL 访问和读取。

因此:

  • 不需要在 cassandra 节点上编写和部署代码来使用提交日志(也不需要刷新来获取它们)
  • 重复数据删除是解决方案所固有的。

您可以在https://docs.scylladb.com/using-scylla/cdc/

中阅读更多内容