使用MRS CDL實現實時資料同步的極致效能

語言: CN / TW / HK
摘要:MRS CDL旨在實現最大的資料複製吞吐量和低複製延遲。

本文分享自華為雲社群《使用MRS CDL實現實時資料同步的極致效能》,作者:大資料修行者 。

MRS CDL提供從多個RDBMS捕獲CDC事件並複製到大資料生態系統的機制,以實現實時資料湖分析和實時DWH場景。解決效能問題是資料複製解決方案解決低延遲、高吞吐量使用情形的關鍵要求之一。實時資料複製效能通常使用以下兩個屬性來衡量

  • 吞吐量:在一個時間視窗中可以處理多少GB的事務日誌卷、行或事務?
  • 時延–將更改的資料從源系統複製到目標系統所需的時間

MRS CDL旨在實現最大的資料複製吞吐量和低複製延遲。MRS CDL提供以下多種競爭特性,以實現最佳效能:

過濾資料

MRS CDL提供配置白名單和黑名單模式的機制,以過濾資料複製的表。白名單是與要複製的表的完全限定表識別符號匹配的正則表示式列表;白名單中不包括的任何表都將從複製中排除。同樣,黑名單是一個逗號分隔的正則表示式列表,它與要從複製中排除的表的完全限定表識別符號匹配;將複製黑名單中不包括的任何表。此功能有助於僅從資料庫事務日誌中複製所需的資料,以提高整體吞吐量和效率。

任務並行化

MRS CDL為並行性和可擴充套件資料複製提供內建支援,只需很少的配置。它提供了將MRS CDL單個作業分解為許多配置數量的任務的機制。使用多個任務,MRS CDL提供了並行從多個數據庫中獲取CDC更改的機制。例如,如果架構中有30個表,則可以配置30個任務,這些任務將並行從每個表接收CDC資料,從而提高吞吐量。

在任務級別使用執行器多執行緒進行並行化

除了支援多個任務並行化之外,MRS CDL還支援任務內的並行化。它在任務中使用日誌複製按順序從RDBMS捕獲CDC事件。但是,一旦我們捕獲CDC事件,我們就會將其推送到內部記憶體佇列,並使用執行器執行緒池並行處理,如下所示。這些執行緒將從內部佇列中提取事件,處理它並推送到Kafka,從而提高效能。

分割槽表支援

RDBMS的分割槽功能通過允許您將非常大的表分解為分割槽,解決了支援這些表的關鍵問題。像Oracle這樣的RDBMS支援各種分割槽機制,如範圍分割槽、雜湊分割槽、列表分割槽和複合分割槽。MRS CDL提供了使用多工處理大型分割槽表的機制。這有助於我們使用日誌複製技術並行捕獲分割槽表的CDC事件,並推動並行分離kafka topic partition,如下所示,從而提高吞吐量。

與Schema Registry整合

MRS CDL與各種Schema Registry解決方案整合,該解決方案為元資料提供了服務層,併為儲存和檢索架構提供了RESTful介面。Schema Registry根據指定的主題名稱策略儲存所有架構的版本歷史記錄,提供多個相容性設定,並允許根據配置的相容性設定進化架構,並擴充套件對這些架構型別的支援。它提供了插入Apache Kafka客戶端的序列化器,這些序列化器處理以任何支援格式傳送的Kafka訊息的模式儲存和檢索。

使用整合的Schema Registry,MRS CDL不會在每個訊息中都發布schema到Apache Kafka,從而減少訊息大小,這提高了從Apache Kafka釋出和使用CDC訊息所涉及的效能。我們進一步利用Avro格式與Schema Registry來提高效能。Avro是一個開源資料序列化系統,速度非常快,它有助於在系統、程式語言和處理框架之間進行資料交換。

在未來,MRS CDL會持續在吞吐量和時延方向上持續發力,為實時資料湖的資料時效性和質量保駕護航!

 

點選關注,第一時間瞭解華為雲新鮮技術~