原文地址: https://debezium.io/blog/2023/09/13/debezium-2-4-beta2-released/
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
Debezium 2.4.0.Beta2 Released
September 13, 2023 by Chris Cranford
releases mongodb mysql postgres sqlserver cassandra oracle db2 vitess outbox spanner
从我们上一次发布德贝佐姆2.4系列的预览版本到现在已经快两周了,我很高兴地宣布下一次安装该系列,德贝佐姆。 2.4.0.Beta2 .
虽然典型的β版本侧重于稳定性和错误,但是这个版本包含了相当多的值得注意的改进和新功能,包括甲骨文使用的新的吸收方法,一个新的单一消息转换来处理闹钟转换,对蒙戈数据库的自定义认证支持,蒙戈数据库聚合管道的可配置命令,以及最后对蒙戈数据库7的支持。
让我们花点时间,深入研究所有这些新功能、改进和更详细的变化。
神谕的摄取使用开放式润滑剂
用于甲骨文连接器的Debezum传统上由两个适配器运输,一个用于甲骨文X流,另一个用于与甲骨文日志程序直接集成。虽然每个适配器都有自己的好处,并且在功能和对大量数据类型和用例的支持方面相当成熟,但是我们想探索一种完全不同的捕获更改的方法。
2.4.0.Beta2介绍了一种基于 公开者 .适配器直接与开放式处理器进程集成,以便以类似的方式创建更改事件,而X流实现则充当甲骨文(甲骨文)的客户机。
开放程序是一个独立的过程,它要么必须在甲骨文数据库服务器上运行,要么可以独立于数据库服务器运行,但需要通过tml/IP与数据库直接通信,并具有对甲骨文重做和归档日志文件的直接读取访问。开放链接器也不使用任何预先构建的二进制文件来发送代码,因此必须直接从源文件中构建或部署在 集装箱图像 可以通过文件共享远程访问数据库及其文件。
一旦安装了开放式计算器,设置需要以下步骤:
配置开放式计算器的配置,OpenLogReplicator.json .
将甲骨文连接器配置为使用开放式润滑器适配器。
此时,甲骨文连接器的Debezum期望开放式配置使用非常特定的设置,以便使用正确的序列化将数据转移到连接器。… 示例配置 显示必须设置的关键配置参数,以便正确地吸收数据。
当配置了开放式润滑剂时,您应该看到以下开放式润滑剂开始:
OpenLogReplicator v1.2.1 © 2018-2023 by Adam Leszczynski (aleszczynski@bersler.com), see LICENSE file for licensing information, arch: x86_64, system: Linux, release: 6.4.11-200.fc38.x86_64, build: Debug, modules: OCI Probobuf
adding source: ORACLE
adding target: DBZ-NETWORK
writer is starting with Network:0.0.0.0:9000
源别名配置于OpenLogReplicator.json
所配置的目标别名OpenLogReplicator.json
主机和端口打开器正在监听。
最后,为配置连接器,设置以下连接器配置选项:
{
“database.connection.adapter”: “olr”,
“openlogreplicator.source”: “”,
“openlogreplicator.host”: “”,
“openlogreplicator.port”: “”
来源别名定义于OpenLogReplicator.json 使用的配置。
运行开环器的主机。
打开器正在监听端口。
当连接器启动并开始流时,它将连接到开放行进程的网络端点,与序列化进程谈判连接,然后开始接收重做日志条目。
在最终发布之前的几周里,我们将会有另一篇博文,更详细地介绍开放式的润滑剂,但在此期间,请自由尝试新的摄取方法,因为我们很乐意听到您的反馈。
由于该摄入方法是实验性的,有一些已知的限制,请回顾连接器 文件 关于细节。
新时差变换
我们经常听到的社区的一个共同要求是使用UTC以外的其他时差发出时序列。德贝兹通过使用CustomConverter 改变默认情况下发出时间列的方式,以编写您自己的单个消息转换;然而,这些方法可能不适合每个人。
德贝兹2.4现在的船上有一个全新的时区变换,使你能够控制颗粒级,在发射事件中的时间列将从UTC转换成你的管道所需要的任何希望的时区。要开始这个新的转换,请在连接器中添加以下基本配置:
{
“transforms”: “tz”,
“transforms.tz.type”: “io.debezium.transforms.TimezoneConverter”,
“transforms.tz.converted.timezone”: “America/New_York”
}
通过指定上述配置,UTC中发出的所有时间列将从UTC转换为美国/纽约时区。但是,您不限于仅仅改变所有时间域的时差,还可以使用include.fields 财产如下:
{
“transforms”: “tz”,
“transforms.tz.type”: “io.debezium.transforms.TimezoneConverter”,
“transforms.tz.converted.timezone”: “America/New_York”,
“transforms.tz.include.fields”: “source:customers:created_at,customers:updated_at”
}
在上面的示例中,第一项将转换created_at 在哪里 源表名称 是customers 而后者将把updated_at 在哪里 题目名称 是customers .此外,您还可以使用转换排除字段exclude.fields 将转换应用到除一个子集以外的所有子集:
{
“transforms”: “tz”,
“transforms.tz.type”: “io.debezium.transforms.TimezoneConverter”,
“transforms.tz.converted.timezone”: “America/New_York”,
“transforms.tz.exclude.fields”: “source:customers:updated_at”
}
在上面的例子中,所有的时域将被转换成美国/纽约时区 源表名称 是customers 场地是updated_at .
你可以在 文件 我们很乐意听取你的反馈。
蒙戈德改变
德贝兹2.4.0.Beta2也与几个蒙戈分贝连接器的更改,让我们单独看一下那些。
突破性变化
…mongodb.hosts 和mongodb.members.autodiscover 配置属性被删除,并且不影响蒙戈数据库连接器的行为。如果您以前依赖这些配置属性,那么现在就必须使用MOGODB 连接线 配置属性向前移动( DBZ-6892 ).
定制认证
在特定的环境中,例如aws,您需要使用awsiam基于身份验证来连接到蒙戈德集群;然而,这需要设置属性USAS。AWS_CREDENTIAL_PROVIDER .此提供程序负责创建会话并提供凭证。
为了在这样的环境中更无缝地集成一个新的配置属性,mongodb.authentication.class 添加了允许您直接在连接器配置中定义凭证提供者类的内容。如果需要使用这种提供者配置,现在可以将以下内容添加到连接器配置中:
{
“mongodb.authentication.class”: “”,
“mongodb.user”: “username”,
“mongodb.password”: “password”
}
另外,如果认证需要使用另一个数据库admin ,连接器的配置也可包括mongodb.authsource 属性来控制应该使用什么身份验证数据库。
详情请参阅 文件 .
聚合管道的可配置顺序
Debezr2.4现在提供了一种控制变更流管道聚合顺序的方法。在汇总特定文件时,这一点至关重要,可能会导致诸如大型文件等管道问题。
在默认情况下,连接器应用蒙戈德内部管道过滤器,然后使用任何用户构建的过滤器;然而,这可能导致大型文档将其输入管道,而蒙戈德文件如果超过内部16MB限制,可能会造成错误。在这种用例中,连接器现在可以配置为将用户阶段应用于首先定义的管道。cursor.pipeline 过滤掉这些用例,以避免管道因16MB限制而失效。
为此,只需将下列配置应用于连接器:
{
“cursor.pipeline.order”: “user_first”,
“cursor.pipeline”: “”
}
详情请参阅 文件 .
蒙戈德7支助
蒙戈德7.0是上个月发布的,在蒙戈德7支持下,德贝兹2.4船。
如果您希望为您的环境升级到蒙戈db7,那么您可以很容易地做到这一点,因为Debezum2.4+与新版本完全兼容。如果您遇到任何问题,请告诉我们。
其他修复和改进
在这个版本中有几个缺陷和稳定性变化,值得注意的是:
文件内容部分的德贝齐姆.io滚动到顶部头。 DBZ-5942
只发布三角洲而不是完整快照,以减小同步事件消息的大小 DBZ-6458
后缀-主键中的内径类型表上的增量快照失败 DBZ-6481
架构.历史.内部.商店.仅.捕获.数据库.在快照架构到历史主题时未考虑的ddl标记 DBZ-6712
当用重写处理删除事件时,蒙戈布的文件外存状态忽略了先前的文档状态 DBZ-6725
蒙戈德新文档状态提取:替换原件不起作用 DBZ-6773
传播源列名称错误 DBZ-6831
大柱的支持截断 DBZ-6844
当超过最大尺寸时,请始终重置流格里克通道 DBZ-6852
卡夫卡补偿存储失败的NPE DBZ-6853
JDBC偏移存储-表名配置无效 DBZ-6855
JDBC接收器插入由于分号导致甲骨文目标数据库失败 DBZ-6857
甲骨文测试应该继续进行,但不能用NPE改变失败。 DBZ-6860
墓碑事件导致JDBC连接器上的NPE DBZ-6862
没有过滤ADS的RDS内部事件 DBZ-6864
在执行到的方法时避免获得NPE DBZ-6865
重新尝试=0导致可检索错误被忽略 DBZ-6866
数据库滤波器和信号收集相结合的流聚合管道破裂 DBZ-6867
应排除的大型文档的变化流聚合管道失败 DBZ-6871
当级联索引时,甲骨文更改表降约束失败 DBZ-6876
总共, 36个问题 已经做好了准备。非常感谢所有参与这个版本的社区的贡献者: 安迪·皮克勒 , 阿尼莎 , 布雷诺·莫雷拉 , 克兰福德 , , 因德拉舒克拉 , 杰克布切切克 , 伊里·帕坎奇c , 马里奥菲奥尔维塔莱 , 徐南希 , 尼尔利维 , 翁德雷杰巴贝克 , 托马斯桑顿 ,以及 蒂森 !
下一步是什么?
随着我们的第二个Beta2预览版本(现在包括了开放式计算器支持),Debezum2.4的设计非常好。我们打算在剩下的几个星期里,随着我们走向一个2.4的稳定性和任何已确定的倒退的最后工作。我们鼓励你尝试一下德贝唑2.4.0.贝塔2。我预计下周将有一个BTA3可能会用开放式计算器解决任何缺点,希望在本月底前能有一场决赛。
别忘了德贝齐斯社区活动,我和你们一起在 邮寄清单 .这项活动将于9月21日星期四上午8时(协调世界时中午12时)举行,届时我们将讨论德贝齐姆2.4和未来。详情请参阅 郁金香聊天线 所以,如果你有能力,一定要加入,我们很高兴看到你在那里。
此外,如果你打算参加目前在加州圣何塞举行的2023年(前卡夫卡首脑会议),我将在星期三下午和我的好朋友卡勒斯阿尔纳尔在那里做关于德贝齐姆和数据管道的介绍。我的同事汉斯-彼得-格拉尔还将进行另一个演讲,内容驱动设计,你不应该错过。如果你想认识一下德贝齐姆,你的经历,甚至只是说声"嗨",我很愿意和你聊天。请随意联系祖利普(克里斯·克兰福德)或通过推特(@克兰克兰克兰科77)通知我。
一如既往,如果你有任何想法或建议,你也可以与我们联系。 邮寄清单 或我们的 聊天 .