Debezium 博客

昨天,我有机会向 达姆施塔特 Java 用户组 介绍了 Debezium 和变更数据捕获 (CDC) 的理念。这是一个很棒的夜晚,有很多有趣的讨论和问题。其中一个问题是:使用像 Debezium 这样的基于日志的变更数据捕获工具,相比于仅仅轮询更新记录,有什么优势?

那么,这两种方法有什么区别呢?通过轮询(或查询)的 CDC,您会反复运行查询(例如通过 JDBC)来检索要捕获的表中的任何新插入或更新的行。相反,基于日志的 CDC 通过响应数据库日志文件(例如 MySQL 的 binlog 或 MongoDB 的 op log)中的任何更改来工作。

由于这个问题已经不是第一次出现了,我决定在这里的博客上提供一个更详尽的回答。这样,如果将来再次出现这个问题,我就可以引用这篇帖子了 :)

那么,废话不多说,以下是我列出的基于日志的 CDC 相对于基于轮询的方法的五大优势。

我非常高兴地宣布 Debezium 0.8.0.Final 发布!

Debezium 0.8 的主要功能是我们 Oracle 连接器的第一个工作版本(基于 XStream API)以及一个全新的 MySQL DDL 语句解析器。此外,还有许多小型新功能(例如,将默认值传播到相应的 Connect schema,可选地将源查询传播到 CDC 消息,以及一个大大改进的 SMT,用于将 MongoDB 的更改同步到 RDBMS)以及大量的错误修复(例如,关于时间和数字列类型,以及 PostgreSQL 的大型事务)。

请参阅之前的公告(Beta 1CR 1)以更深入地了解所有更改。Final 版本在很大程度上与 CR1 相似;除了进一步改进 Oracle 连接器(DBZ-792)之外,Peter Goransson(Peter Goransson) 对 MySQL 连接器做了一个很棒的补充:在进行快照时,它现在将通过 JMX(DBZ-789) 暴露已处理行的信息,这在快照大型表时非常方便。

请查看更改日志以获取 0.8.0.Final 的完整更改列表和通用升级说明。

祝愿所有美国的 Debezium 用户节日快乐!但这并不是唯一的庆祝理由:我同样非常高兴地宣布 Debezium 0.8.0.CR1 发布!

遵循我们新的发布计划,本次 Debezium 0.8 的候选版本主要关注修复上周 Beta 版本报告的错误,并附带少量新实现的功能。

非常感谢所有测试 MySQL 连接器新的基于 Antlr 的 DDL 解析器的人;根据你们报告的问题,我们修复了其中的一些错误。如最近宣布的,对于 0.8 版本,旧解析器将继续是默认实现,但强烈建议您测试新解析器(通过将连接器选项 ddl.parser.mode 设置为 antlr),并报告任何发现。我们计划在 Debezium 0.9 中默认切换到新实现。

我非常激动地宣布 Debezium 0.8.0.Beta1 发布!

此版本带来了许多令人兴奋的新功能以及错误修复,例如:我们新的 Oracle 连接器的第一个版本,MySQL 连接器的一个全新 DDL 解析器,对 MySQL 默认值的支持,以及升级到 Apache Kafka 1.1。

由于更改数量庞大(总共42 个问题),我们决定稍微调整版本方案:今后,我们可能会进行一个或多个 Beta 和 CR(“候选发布”)版本,然后再发布最终版本。这将使我们能够及早获得社区的反馈,同时仍能完成和完善特定功能。最终(稳定)版本将命名为 0.8.0.Final 等。

最后更新于 2018年11月21日 (已更新至新的 KSQL Docker 镜像).

去年,我们见证了一个新的开源项目在 Apache Kafka 生态系统中诞生,那就是 KSQL,它是一个构建在 Kafka Streams 之上的流式 SQL 引擎。在这篇文章中,我们将尝试使用 Debezium 从 MySQL 数据库生成的数据更改事件来查询 KSQL。

我们将使用 教程 中的数据库和设置作为数据源。这次练习的结果应该与最近关于将事件聚合为 领域驱动聚合文章 类似。

版权所有 © Debezium 及其作者。保留所有权利。有关我们的商标详情,请访问我们的 商标政策商标列表。第三方商标属于其各自所有者,在此提及并不表示任何认可或关联。
×