原文地址: 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)通知我。
一如既往,如果你有任何想法或建議,你也可以與我們聯系。 郵寄清單 或我們的 聊天 .