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

问题描述 投票:0回答:3

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

cassandra cdc change-data-capture
3个回答
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. memtable刷新到磁盘后,您可以访问

$CASSANDRA_HOME/data/cdc_raw

中的行CDC数据

在此文件夹中cassandra存储

CommitLogSegments
。您可以查看此链接读取CommitLogSegments

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


1
投票

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

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

因此:

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

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

阅读更多内容

1
投票

您可以编写自己的 CommitLogReader 实现,或使用此 示例实现。

但是,请注意 CDC 日志不可靠(因为重复事件以及将数据刷新到 CDC 所需的时间)。在未来的版本中,它们的格式也可能会发生变化。

© www.soinside.com 2019 - 2024. All rights reserved.