我怀着极大的兴奋宣布Debezium的发布开云体育官方注册网址0.8.0.Beta1

这个版本带来了许多令人兴奋的新特性以及错误修复,例如,我们的新Oracle连接器的第一个drop,一个全新的MySQL连接器的DDL解析器,对MySQL默认值的支持以及对Apache Kafka 1.1的更新。

由于大量的更改(该版本包含完全42个问题总的来说),我们决定稍微改变我们的版本控制模式:在做最终版本之前,我们可能会做一个或多个Beta和CR(“候选版本”)版本。这将允许我们在早期从社区获得反馈,同时仍然完成和完善特定的功能。最终版(稳定版)将命名为0.8.0。最后等。

如果没有我们出色的社区,就不可能有这个版本;非常感谢以下为新版本做出贡献的开源爱好者:回声徐伊凡VucinaListman Gamboa奥马尔Al-Safi彼得Goransson罗马Kuchar(他在新的DDL解析器实现方面做了大量的工作!),Sagar饶Saulius ValatkaSairam Polavarapu战胜挑战者博伊斯斯蒂芬而且WenZe胡

非常感谢大家的帮助!

现在让我们仔细看看Debezium 0.8.0.Beta1中的一些新特性;开云体育官方注册网址与往常一样,您可以在更改日志.请特别查看突破性的更改和升级说明。

基于xstream的Oracle连接器(技术预览)

很长一段时间以来,对Debe开云体育官方注册网址zium Oracle连接器的支持一直是最需要的特性之一(它最初的发行号是DBZ-20!)因此,我们很高兴最终能够发布该连接器的第一个正在开发中的版本。在这一点上,这段代码仍然在不断发展,所以它应该被认为是第一个技术预览。这意味着它的功能还不完整(最值得注意的是,它还不支持初始快照),发出的消息格式仍然可能改变等等。因此,虽然我们还不建议在生产中使用它,但您绝对应该尝试一下,并反馈您的体验。

Oracle连接器面临的一个挑战是如何从数据库中获取实际的更改事件。开云体育电动老虎机与MySQL和Postgres不同,不幸的是,没有免费使用和易于使用的API可以为Oracle做同样的事情。经过一些探索,我们决定基于连接器的第一个版本甲骨文XStreamAPI。虽然这(有点)满足了“易于使用”的要求,但对于“免费使用”却不是这样:使用这个API需要你拥有Oracle单独的GoldenGate产品的许可证。我们充分意识到这并不理想,但我们仍然决定将这条路线作为第一步,使我们能够获得一些使用Oracle的经验,并将连接器交到那些拥有所需许可证的人手中。展望未来,我们将探索其他方法。关于这个问题,我们已经有了一些想法和讨论,所以请继续关注(要跟踪的问题是dbz - 137)。

Oracle连接器将在下一个0.8版本中进行改进。x版本。要了解更多,请查看其连接器文档页

基于antlr的MySQL DDL解析器

为了建立捕获数据库结构的内部元模型,Debezium MySQL连接器需要解析所有发出的DDL语句(开云体育官方注册网址开云体育电动老虎机创建表等等)。这过去是用手工编写的DDL解析器来完成的,它工作得相当好,但随着时间的推移,它也暴露出一些缺点;由于DDL语言非常广泛,我们多次看到由于某些特定的DDL结构不可解析而导致的错误报告。

因此,我们决定重新设计一个全新的解析器设计。多亏了Roman Kuchar的出色工作,我们现在有了一个全新的DDL解析器,它是基于经过验证的、非常成熟的DDL解析器Antlr解析器生成器(幸运的是,Antlr项目提供了完整的MySQL语法)。因此,今后与DDL解析相关的问题报告应该会少得多。

目前,旧的解析器仍然存在,并且仍然是Debezium 0.8.x的默认解析器。开云体育官方注册网址尽管如此,我们还是鼓励您通过设置连接器选项来测试新的实现ddl.parser.modeantlr如果在执行过程中遇到任何问题,请及时报告。我们计划在0.8版本中改进和优化Antlr解析器。(具体来说,我们将测量它的性能并根据需要进行优化),并从Debezium 0.9开始默认切换到它。开云体育官方注册网址最终,旧的解析器将在以后的版本中被删除。

MySQL连接器的进一步变化

MySQL连接器传播列默认值到对应的Kafka连接模式现在(dbz - 191)。当使用Avro作为序列化格式和启用兼容性检查的模式注册表时,这是有益的。

通过设置include.queryconnector选项设置为true,则可以将导致数据更改的原始查询添加到相应的CDC事件(dbz - 706)。虽然默认情况下是禁用的,但该特性可以成为分析和解释Debezium捕获的数据更改的有用工具。开云体育官方注册网址

MySQL连接器中的其他一些更改包括心跳主题名称的可配置性(dbz - 668),修复周围的时区处理时间戳dbz - 578),DATETIME列(dbz - 741)及正确处理数字没有显式缩放值的列(dbz - 727)。

Postgres连接器

Post开云体育官方注册网址gres的Debezium连接器已经看到了相当多的错误修复,包括以下几个:

MongoDB连接器

另外,对于MongoDB连接器,已经完成了一些小功能的实现和错误修复:

  • 在MongoDB 3.6上测试(dbz - 529

  • 嵌套文档现在可以使用提供的SMT进行平铺(dbz - 561),当将更改从MongoDB转移到关系数据库时非常有用开云体育电动老虎机

  • 打开SMT现在可以和Avro一起使用(dbz - 650

  • 展开SMT可以处理混合元素类型的数组(dbz - 649

  • 如果在完成之前的快照期间中断,连接器将在重新启动(dbz - 712

接下来是什么?

根据新的Beta/CR/最终版本计划,我们希望从社区(即您:)得到一些关于这个Beta版本的反馈。根据报告的问题数量,我们要么发布另一个Beta,要么使用下一个版本进入CR1。0.8.0。最终版本将在几周内发布。请注意,Oracle连接器在最终版本中仍然是一个“技术预览”组件。

在那之后,我们计划做一些0.8。x版本主要修复bug,而Debezium 0.9的工作将同时开始。开云体育官方注册网址为此,我们计划为SQL Server开发一个连接器(参见DBZ-40)。我们还想探索基于原始事务的id从多个表的CDC流创建一致的连接实体化的方法。此外,还有将Debezium更改事件作为响应性事件流公开的想法和第一个原型(开云体育官方注册网址dbz - 566),最终可能会上市。

请看一下路线图如果你想了解更多长远的想法,请联系我们。

贡纳Morling

Gunnar是Decodable的软件工程师,也是一名不折不扣的开源爱好者。多年来,他一直是Debezium的项目负责人。开云体育官方注册网址Gunnar创建了kcctl、JfrUnit和MapStruct等开源项目,并且是Bean验证2.0 (JSR 380)的规范负责人。他在德国汉堡工作。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源Apache许可证,版本2.0

参与

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

Baidu
map