在 0.6.0 发布不到一个月的时间里,我很高兴地宣布Debezium 0.6.1 发布!
此版本包含多个错误修复、依赖项升级以及一个控制如何传输 BIGINT UNSIGNED 列的新选项。我们还扩展了教程附带的 Docker 镜像和 Docker Compose 文件集,现在您可以针对我们支持的所有数据库运行它。
让我们仔细看看一些更改。
新增控制 BIGINT UNSIGNED 表示的新连接器选项
到目前为止,来自 MySQL 数据库的 BIGINT UNSIGNED 列一直使用 Kafka Connect 的 Decimal 类型来表示。此类型允许表示此类列的所有可能值,但它基于字节数组,因此消费者处理起来可能有些麻烦。因此,我们为 MySQL 连接器添加了一个名为 bigint.unsigned.handling.mode 的新选项,允许使用 long 来表示此类列。
在绝大多数情况下,这是首选选项,只有当你的列包含大于 2^63 的值时(MySQL 不推荐这样做,因为在执行计算时可能出现值丢失),你应该坚持使用 Decimal 表示。
从 Debezium 0.7 开始,将默认使用 long,对于 0.6.x 版本,为了向后兼容,我们决定保持之前的行为(即使用 Decimal)。
非常感谢 Ben Williams 贡献了此功能!
新的示例 Docker 镜像和 Docker Compose 文件
在 Debezium 示例存储库 中,我们现在提供 Docker Compose 文件,它允许你使用我们目前支持的所有三个数据库(MySQL、Postgres 和 MongoDB)来运行教程。
只需选择你喜欢的数据库的 Compose 文件,即可在几秒钟内运行所有必需的组件(ZooKeeper、Apache Kafka、Kafka Connect 和数据库)。
我们还将 Postgres 和 MongoDB 的 Docker 镜像部署到了 Docker Hub 上的 Debezium 组织,这样你就有了一些数据可以进行尝试。
版本升级
我们将镜像从 Kafka 0.11.0.0 升级到了 0.11.0.1。此外,MySQL 连接器使用的 binlog 客户端库也从 0.9.0 升级到了 0.13.0。
Bug 修复
下一步是什么?
Debezium 0.7 的开发已经开始,我们已经合并了第一批更改。你将能够看到支持将 wal2json 逻辑解码插件与 Postgres 连接器一起使用,这将最终允许它在 Amazon RDS 上的 Postgres 中使用 Debezium!我们还开始探索为 Oracle 提供连接器(DBZ-20),并希望很快能在此报告一些进展。
随着 Debezium 0.7 的开发继续进行,你可能会继续看到一个或多个 0.6.x 的错误修复版本。我们已尽可能自动化了发布流程,使得发布新版本并快速将修复程序交付给你变得轻而易举。
如果您想做出贡献,请告知我们。我们很乐意提供任何帮助,并将与您合作,帮助您快速入门。有关如何联系的详细信息,请参阅下文。
关于 Debezium
Debezium 是一个开源的分布式平台,可以将现有数据库转变为事件流,使应用程序能够几乎即时地看到并响应数据库中已提交的每个行级更改。Debezium 构建在 Kafka 之上,并提供了 Kafka Connect 兼容的连接器,用于监控特定的数据库管理系统。Debezium 将数据更改的历史记录在 Kafka 日志中,这样您的应用程序可以随时停止和重新启动,并可以轻松地消费在未运行时错过的所有事件,确保所有事件都被正确且完整地处理。Debezium 在 Apache 许可证 2.0 下是 开源 的。