我很荣幸地宣布 Debezium 1.6 系列的第一个版本,1.6.0.Alpha1

此版本为 MySQL 和 PostgreSQL 连接器带来了全新的增量快照功能,为 Debezium Server 带来了 Kafka sink,以及一系列广泛的错误修复和其他小功能添加。

增量快照

运行 Debezium 时存在一些痛点

  • 在新的连接器重新启动后,流式传输开始之前必须执行一致性快照

  • 在连接器运行一段时间后,无法触发完整或部分快照

从这个版本开始,我们正在为这两个潜在的陷阱部署解决方案。

更简单的解决方案——在运行时触发快照的能力,是通过 **临时快照** 来实现的。用户可以通过向 Debezium 发送一个 `execute-snapshot` 信号 来随时触发快照,并在信号中指定要快照的表以及要使用的快照类型(目前只支持 `incremental`,详见下文)。当 Debezium 收到信号后,它将执行请求表的快照。

与临时快照相辅相成的更复杂的部分是 **增量快照**。此功能允许用户在流式传输阶段执行一组表的快照,而无需中断流式传输。此外,与初始快照不同,快照将在连接器重新启动时恢复,而无需从头开始。

此功能的实现基于 DBLog Framework 最初发明的一种新颖的快照方法。Debezium 的实现将在 设计文档 中进行更详细的描述。

如果您想亲自尝试此功能,则需要

  • 提供一个 信号表

  • 使用类似 SQL 命令触发临时增量快照

INSERT INTO myschema.debezium_signal VALUES('ad-hoc-1', 'execute-snapshot', '{"data-collections": ["schema1.table1", "schema1.table2"]}')

Debezium Server 的 Kafka Sink

Debezium 连接器可以运行在 Kafka Connect 中,也可以使用 Debezium Server 进行部署,后者提供不同的目标 Sink。从本版本开始,如果 Sink 是 Apache Kafka,则不再需要使用 Kafka Connect,而是可以使用 Debezium Server 和 Apache Kafka Sink 来代替,这可能会简化某些部署的操作要求。在这种情况下,将使用常规的 Apache Kafka 客户端 API。

总共为本次发布修复了 47 个问题。非常感谢所有为此做出贡献的社区成员:Alfusainey JallowBingqin ZhouHossein TorabiKyley JexMartín PérezPatrick ChuRaphael AuvTommy KarlssonWenChao Keyangsanity

对于即将发布的 1.6 预览版本,我们计划专注于完成增量快照的后续任务,并支持 SQL Server 和 Db2 连接器,进一步改进基于 LogMiner 的 Oracle 连接器实现,主要涉及模式演进和 LOB 支持。

Jiri Pechanec

Jiri 是 Red Hat 的一名软件开发人员(也是前质量工程师)。他的职业生涯大部分时间都投入在 Java 和系统集成项目和任务中。他居住在捷克共和国布尔诺附近。

   


关于 Debezium

Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。

参与进来

我们希望您觉得 Debezium 有趣且有用,并希望尝试一下。在 Twitter @debezium 上关注我们,在 Zulip 上与我们聊天,或加入我们的 邮件列表 与社区交流。所有代码都在 GitHub 上开源,因此请在本地构建代码,帮助我们改进现有连接器并添加更多连接器。如果您发现问题或有改进 Debezium 的想法,请告诉我们或 记录一个问题

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