团队一直很忙最近几个月准备凝结释放时间表Debezium 2.3,我兴奋地宣布,在下一篇文章中已经到来,Debezium开云体育官方注册网址2.3.0.Final现在可以了!
尽管一个浓缩的发布计划,这个版本是挤满了大量的新特性和改进。开云体育官方注册网址Debezium 2.3包括一个全新的通知子系统、信号子系统的重写以支持额外的方法来发送信号Debezium连接器,引入JDBC存储模块维护Debezium状态在关系数据库中,维塔斯碎片的并行化处理,PostgreSQL连接器复制品身份的改进,一个全新的Debezium Kubernetes服务器操作,支持只有一次语义PostgreSQL连接器,和改进Oracle连接器。开云体育电动老虎机
让我们花一些时间谈论任何破坏变化,所有这些改进和为什么他们如此重要!
你还可以找到Debezium 2.3变化的完整列表开云体育官方注册网址发布说明。
突发的变化
我们通常试图避免尽可能多的突发变化在小版本,但不幸的是,有时候这种变化是不可避免的,特别是如果一个功能可能被引入实验。开云体育官方注册网址Debezium 2.3引入了两个打破变化取决于你从一个预览版升级或早期稳定版本:
PostgreSQL / MySQL安全连接的变化
开云体育官方注册网址Debezium PostgreSQL和MySQL可以配置为使用一个安全的SSL连接。对于PostgreSQL,这可以通过配置完成开云体育电动老虎机database.sslmode
而对于MySQL可以做到这一点开云体育电动老虎机database.ssl.mode
。
使用Deb开云体育官方注册网址ezium 2.3,这种配置选项不再默认禁用
(PostgreSQL)或禁用
(MySQL),而是默认更喜欢
(PostgreSQL)和首选
(MySQL)。这意味着当试图连接使用一个加密,安全连接不可用,连接器将后备使用无担保连接在默认情况下,除非否则配置。
JDBC存储编码更改
开云体育官方注册网址Debezium tripwire。α1介绍了新实验JDBC存储模块。这个存储模块违约使用utf - 16,因为它的默认编码;然而,大多数喜欢utf - 开云体育电动老虎机8作为默认数据库。如果你从Debezium tripwire升级。开云体育官方注册网址α1,Debez开云体育官方注册网址ium tripwire。Beta1后来现在使用utf - 8当存储数据使用JDBC存储模块结合典型的数据库默认设置。开云体育电动老虎机
新特性和改进
开云体育官方注册网址Debezium 2.3包含大量的新功能改进,其中包括以下:
开云体育官方注册网址Kubernetes Debezium服务器运营商
这个版本引入了一个预览版本的新Debezium运营商提供部署开云体育官方注册网址和管理的能力在Kubernetes Debezium服务器实例。开云体育官方注册网址Debezium服务器允许您改变事件流数据来源各种各样的消息传递基础设施。我们的目标是提供一个Kafka-less替代Debezium社区的那些希望利用Kubernetes可伸缩性和高可开云体育官方注册网址用性部署。
我们不建议此时该组件的生产部署;然而,我们鼓励用户提供社区的反馈。将有价值的信息反馈在评估如果组件特性好,或者仍然有改进的领域来满足每个人的需求。
新的通知子系统
开云体育官方注册网址Debezium 2.3引入了一个全新的功能叫做通知,允许Debezium发出事件可以被任何外部系统知道Debezium的生命周期的不同阶段的状态。
通知事件表示为一系列键/值的元组,用一个结构,包含数个开箱即用的字段。下面是一个简单的通知事件的一个例子。
{”id”:”c485ccc3-16ff-47cc-b4e8-b56a57c3bad2”,”aggregate_type”:”快照”,”类型”:”开始”,”additional_data”:{。。。}}
每个包含一个通知事件id
场,一个UUID来确定通知aggregate_type
通知相关的领域基于领域驱动设计的概念,类型
领域,意味着得到更多细节关于聚合类型本身,和一个可选的additional_data
字段由一个基于字符串的键/值对地图关于事件的附加信息。
在这个时候,有两个通知Debezium支持的事件类型:开云体育官方注册网址
状态的初始快照
监测增量快照
初始快照通知
最初是一致的快照捕获的现有数据连接器刚开始。一个初始快照事件将一个聚合类型的值“初始快照”
和类型的事件将包括三个逻辑值之一:
-
跳过
-
代表了最初的快照是跳过。
-
流产
-
代表了最初的快照是中止。
-
完成
-
代表了初始快照已经成功结束。
下面是一个示例的一个通知完成初始快照:
{”id”:”5563 ae14 - 49 - f8 - 4579 - 9641 - c1bbc2d76f99”,”aggregate_type”:”初始快照”,”类型”:”完成”}
增量快照通知
增量快照是一个获取现有的数据从一个配置组表在连接器积极流的变化。增量快照事件将一个聚合类型的值“增量快照”
和类型将包括几个逻辑值之一:
-
开始
-
表明增量快照已经开始。
-
停顿了一下
-
表明增量快照已经暂时停了下来。
-
恢复
-
表明增量快照已经暂停已经恢复。
-
停止
-
表明增量快照已经停止。
-
IN_PROGRESS
-
表明增量快照是正在进行的。
-
TABLE_SCAN_COMPLETED
-
表示给定表的增量快照已告结束。
-
完成
-
显示所有表的增量快照已告结束。
配置通知
开云体育官方注册网址Debezium通知通过连接器的配置进行配置。下面的例子展示如何配置开箱即用的卡夫卡主题或基于日志的渠道。
{”notification.enable.channels”:”水槽”,”notification.sink.topic.name”:”开云体育官方注册网址debezium_notifications”,。。。}
{”notification.enable.channels”:”日志”}
新的可扩展信号子系统
开云体育官方注册网址Debezium以来支持一个信号的概念的引入增量快照功能在Debezium 1. x。信号是非常重要的,因为它允许您提供元数据来指导Debezium来执行一个给定的任务,这个任务是编写一个条目是否连接器日志或执行一个临时增量快照开云体育官方注册网址。
在De开云体育官方注册网址bezium 2.3中,信号子系统是概念的引入通道代表一个中等的Debezium手表或倾听和对信号的反应。开云体育官方注册网址在以前的版本中,有一个通道在连接器支持普遍,这是数据库表的信号。开云体育电动老虎机在本版本中,这些通道已经统一,以下是可用的:
开云体育电动老虎机数据库信号表
卡夫卡信号的话题
文件系统
JMX
但这还不是全部,信号通道合同是可扩展的,允许您编写一个定制的实现和提供,轻松你的连接器。
JMX集成信号和通知
开云体育官方注册网址Debezium 2.3之前引入一个新的信号通道和通知功能。这个特性允许外部应用程序轻松地集成Debezium,发送信号来执行各种任务,如临时增量快照,并接收通知这样的任务的进展。开云体育官方注册网址这个版本构建的功能允许发送信号和接收能力通过JMX通知。
发送信号
在本版本中,信号通道子系统已经过了改进,以支持通过JMX发送信号。从jconsole
窗口中,您可以看到有两个新的连接器部分,通知和信号部分如下所示:
新信号
部分允许您调用一个操作JMX bean Debezium为了传输信号。开云体育官方注册网址这个信号类似于逻辑信号表结构,它接受三个参数,一个独特的标识符,信号类型,最后信号有效载荷。下面的说明这是什么样子的jconsole
:
接收通知
新通知
部分允许您接收和反应从Debezium通知被JMX bean。开云体育官方注册网址Debe开云体育官方注册网址zium JMX bean将缓冲所有通知,确保不遗漏通知。下面的说明这是什么样子的jconsole
:
JMX bean不会自动清除通知队列。为了避免内存问题,一定要调用 |
我们期待你的反馈在这个新方法与Debezium JMX集成信号和通知。开云体育官方注册网址
新的JDBC存储子系统
开云体育官方注册网址Debezium 2.3引入了一个新的存储模块实现支持模式的历史和抵消的持久性数据存储中的数据通过JDBC。对环境中你可能没有持久的文件系统,这提供了另一个选择通过远程存储,持久性存储平台。
为了利用这个新的模块,下面的依赖必须添加到您的项目或应用程序:
<依赖>< groupId >io.开云体育官方注册网址debezium< / groupId >< artifactId >开云体育官方注册网址debezium-storage-jdbc< / artifactId ><版本>2.3.0.Final> < /版本< / >的依赖
下面的例子展示如何配置抵消或模式历史存储通过JDBC存储模块:
{”offset.storage.jdbc.url”:”< jdbc-connection-url >”,”offset.storage.jdbc.user”:”dbus”,”offset.storage.jdbc.password”:”秘密”,”offset.storage.jdbc.offset_table_name”:”开云体育官方注册网址debezium_offset_storage”}
{”schema.history.internal.jdbc.url”:”< jdbc-connection-url >”,”schema.history.internal.jdbc.user”:”dbus”,”schema.history.internal.jdbc.password”:”秘密”,”schema.history.internal.jdbc.schema.history.table.name”:”开云体育官方注册网开云体育电动老虎机址debezium_database_history”}
曾经为PostgreSQL流交付
开云体育官方注册网址Debezium历来是一个至少一次交付解决方案,保证没有任何变化是错过了。只有一次是一个Apache卡夫卡提议的社区的一部分kip - 618。这项提案旨在解决常见的问题与制片人(源连接器)生产商重试时,它可能转发到卡夫卡代理一批事件即使这批已经犯下的代理。这意味着有重复的事件可能被发送的情况下,并不是每一个消费者(水槽连接器)可能是轻易能够处理这种情况。
开云体育官方注册网址Debezium计划在分阶段推出仅一次传递语义的风格。有特定的角落情况下快照和流媒体,这些可以通过连接器各不相同。,Debezium 2.3开始开云体育官方注册网址专门为仅一次只有添加支持PostgreSQL在其语义流阶段只有!
为了利用只有一次交货,不需要连接器配置更改;然而,卡夫卡连接工人配置需要调整,以启用这个特性。你可以找到一个新的配置属性的引用kip - 618。
如果你是混合连接器在同一集群连接,和不支持完全交付后,您将无法设置 |
PostgreSQL复制品身份变化
开云体育官方注册网址Debezium 2.3引入了一个新的PostgreSQL连接器称为“Autoset副本身份”的特性。
副本身份PostgreSQL的捕获方法识别哪些列数据库事务日志插入、更新和删除操作。开云体育电动老虎机这个新功能允许配置表的复制品的身份通过连接器配置和授权的责任设置此配置在启动连接器。
新的配置选项,replica.identity.autoset.values
指定一个以逗号分隔的表元组和副本的身份。如果表已经给定的复制品的身份,身份将被重写以匹配这个配置如果表中指定的是包括在内。PostgreSQL支持多个副本的身份类型,这些中可以找到更多信息文档。
当指定replica.identity.autoset.values
值是一个以逗号分隔的值,每个元素使用的格式< fully-qualified-table-name >: < replica-identity >
。一个示例如下所示两个表在哪里配置的完整副本的身份:
{”replica.identity.autoset.values”:”public.table1:满,public.table2:完全”}
Oracle RAC的改进
当连接到一个Oracle RAC安装,您必须指定一个rac.nodes
配置属性的最小主机或跨集群所有单个节点的IP地址。旧版本的连接器也支持多种格式,允许为每个节点包含一个港口不是每个节点上的集群可能使用相同的端口。
开云体育官方注册网址Debezium 2.3提高Oracle RAC支持也承认,不一定每个节点使用相同的Oracle网站标识符(SID),因此,SID现在也可以包含在rac.nodes
配置属性来支持这样的设施。
下面的例子说明了连接两个Oracle RAC节点,每一个使用不同的港口和SID参数:
{”connector.class”:”io.开云体育官方注册网址debezium.connector.oracle.OracleConnector”,”rac.nodes”:”host1.domain.com: 1521 / ORCLSID1 host2.domain.com: 1522 / ORCLSID2”,。。。}
其他修复
有相当多的错误修正和稳定性变化在本版本中,一些值得注意的是:
开云体育官方注册网址Debezium服务器停止发送事件到谷歌云Pub / Subdbz - 5175
烤不同字符数组和数组日期不正确的处理dbz - 6122
Infinispan 14.0.11升级。最终解决cve - 2022 - 45047dbz - 6193
介绍LogMiner查询过滤模式dbz - 6254
锁争用LOG_MINING_FLUSH表当多个连接器部署dbz - 6256
确保连接器可以从一个过期时间戳开始一个多小时过去dbz - 6307
rs_id字段为空在Oracle更改事件源信息块dbz - 6329
JWT验证添加到HTTP客户端dbz - 6348
使用PostgreSQL10 pg_replication_slot_advance这是不支持的。dbz - 6353
log.mining.transaction.retention。小时应该参考去年抵消而不是sysdatedbz - 6355
当流切分列表支持多个任务dbz - 6365
代码改进skip.messages.without.changedbz - 6366
运动水槽,AWS凭据提供程序dbz - 6372
烤hstore没有正确处理dbz - 6379
甲骨文DDL缩小表分区的空间不能被解析dbz - 6386
__source_ts_ms r(读)操作日期设置为SQL Server的未来dbz - 6388
PostgreSQL连接器任务失败恢复流因为复制槽是活跃的dbz - 6396
没有时区的日期和时间值基于database.time_zone坚持正确开云体育电动老虎机dbz - 6399
MongoDB连接器崩溃无效简历上令牌dbz - 6402
快照捕获步骤5 -阅读结构表的时间太长了dbz - 6439
肺水肿在只读启动MySQL连接器dbz - 6440
甲骨文平行快照不正确设置当使用多租户PDB上下文dbz - 6457
[MariaDB]添加对userstat插件的支持关键字dbz - 6459
开云体育官方注册网址Debezium服务器不能从谷歌Pub / Sub错误中恢复过来dbz - 6461
“忽略无效任务提供抵消”dbz - 6463
Oracle snapshot.include.collection。应与数据库名前缀列表文档。开云体育电动老虎机dbz - 6474
Db2 connector可以在通知发送失败和肺水肿dbz - 6485
ExtractNewRecordState SMT结合HeaderToValue SMT导致意想不到的字段名例外dbz - 6486
BigDecimal失败当队列内存大小限制dbz - 6490
允许模式中指定Debezium水槽连接器配置开云体育官方注册网址dbz - 6491
ORACLE表不能被捕获,runtime.NoViableAltExceptiondbz - 6492
信号轮询间隔不正确的默认值dbz - 6496
Oracle JDBC驱动程序23。x抛出ora - 18716没有任何时区dbz - 6502
高山postgres图像应该使用llvm / 15明确的叮当声dbz - 6506
FileSignalChannel不加载dbz - 6509
利用event.processing.failure.handling。在维塔斯模式复制连接dbz - 6510
初始化期间MySqlReadOnlyIncrementalSnapshotChangeEventSource执行卡夫卡的依赖dbz - 6511
开云体育官方注册网址Debezium增量快照块大小文档不清楚或不正确的dbz - 6512
错误的价值convertOracleIntervalDaySecond -秒dbz - 6513
开云体育官方注册网址Debezium增量快照块大小文档不清楚或不正确的dbz - 6515
只使用错误处理模式在某些错误dbz - 6523
(PostgreSQL) LTree数据没有被捕捉到流dbz - 6524
甲骨文连接器:快照不能与特定的组合dbz - 6528
使用更好的PartitionRouting哈希函数dbz - 6529
表的顺序是错误的快照dbz - 6533
开始出版夜间图像Debezium算子开云体育官方注册网址dbz - 6541
开始为Debezium运营商发布图片开云体育官方注册网址dbz - 6542
未处理的NullPointerException PartitionRouting将整个连接插件崩溃dbz - 6543
Bug field.name.adjustment.mode地产dbz - 6559
操作员设置不正确的值的转换。当没有指定谓词谓词dbz - 6560
升级MySQL 8.0.33 JDBC驱动程序dbz - 6563
谷歌云BOM 26.17.0升级dbz - 6570
Kubernetes-Config扩展干扰由于k8 devservice启动SSL测试dbz - 6574
MySQL只读连接器启用了卡夫卡信号启动失败dbz - 6579
复述,模式历史可以启动时失败dbz - 6580
总而言之,138年问题固定了这个版本。大感谢所有的贡献者社区从事这个版本:安德烈直接督导下,Angshuman戴伊,Anil Dasari,莫汉蒂Anisha,伯特兰Paquet,鲍勃Roldan称,Breno Moreira,克里斯克兰福德,基督教雅各Mencias,大卫·贝克,弗雷德里克·劳伦,龚昌华,哈维曰,Hidetomi Umaki,侯赛因安萨里,因陀罗舒克拉,伊斯梅尔•西姆西可,Jakub Cechacek,杰西Ehrenzweig,雅罗西克Pechanec,Jochen Schalanda,Kanthi萨勃拉曼尼亚,(Katerina Galieva,马里奥·菲奥雷Vitale,马丁Medek,Miguel Angel索托马约尔,南希徐,近红外光谱征税,Ondrej Babec,奥伦伊莱亚斯,RJ Nowling,雷内·肯纳,罗伯特Roldan称,Ronak耆那教徒的,谢尔盖Eizner,Shuran张,斯蒂芬·克拉克森,托马斯·桑顿,汤米Karlsson,托尼·约瑟夫,Vojtech Juranek,蔡灿材!
接下来是什么?
Debez开云体育官方注册网址ium 2.3,我们的主要焦点在于将协调修正报告Debezium 2.3,但主要在即将到来的新的Debezium 2.4预览版。
开云体育官方注册网址Debezium 2.4吨的计划改变,我们打算斗的方式应对这些变化,与每个桶被分配一个优先级。对于任何安排,优先受到改变,但是以下的大纲会发生什么:
- 优先级1
-
(核心)TimescaleDB单一消息转换的支持
(核心)时区单一消息转换缓解与Debezium时间类型的用法开云体育官方注册网址
(核心)初始快照通知
MongoDB数据库开云体育电动老虎机范围内变化流支持
(MongoDB)支持多任务部署指标
(Oracle) OpenLogReplicator适配器支持
(Oracle) XML、长、原料和长原始数据类型的支持
(通用)仅一次语义支持其他连接器
Apache 3.5卡夫卡(依赖性)。x的支持
- 优先级2
-
(运营商)的下一步Debezium算子开云体育官方注册网址
(核心)临时阻断快照
使用OpenTelemetry(依赖性)
- 优先级3
-
(嵌入式引擎)并行化支持
(MongoDB)平行增量快照支持
(MySQL)并行模式快照支持
这不是一个详尽的清单及其非常雄心勃勃的,但是考虑到缩短时间和Debezium 2.3,我们希望额外的几周Debezium 2.4将下一个小版本可能与所有这些特性等等。开云体育官方注册网址路线图本周将被更新,结合上述Debezium 2.4和未来,所以请务必与我们联系开云体育官方注册网址邮件列表或者我们的聊天如果你有任何想法或建议。
否则,我期望与夏季全面展开对我们这些在北方,假期和应得的补假接下来的几个月将是正常的。那些旅行或打算花些时间为自己和家人,享受,是安全的!
直到下次…
关于Debe开云体育官方注册网址zium
开云体育官方注册网址Debezium是一个开源的分布式平台,把你现有的数据库事件流,这样应用程序就可以看到,几乎立刻回应每个提交的行级的变化数据库。开云体育电动老虎机开云体育官方注册网址Debezium之上卡夫卡并提供卡夫卡连接兼容的连接器监控特定的数据库管理系统。开云体育电动老虎机开云体育官方注册网址Debezium卡夫卡日志记录的历史数据变化,所以可以在任何时候停止并重新启动您的应用程序,可以很容易地使用它错过了所有的事件而不运行,确保所有事件处理完全正确。开云体育官方注册网址Debezium是开源下Apache许可,2.0版本。
参与
我们希望你发现Debezium有趣开云体育官方注册网址的和有用的,想试一试。在Twitter上关注我们@开云体育官方注册网址debezium,与我们Zulip聊天,或者加入我们的邮件列表跟社区。所有的代码是开源的GitHub上,所以在本地构建代码,帮助我们改进我们现有的连接器和添加更多的连接器。如果你发现问题或有想法如何提高Debezium,请让我们知道开云体育官方注册网址日志一个问题。