ChunJun&OceanBase聯合方案首次釋出:構建一體化資料整合方案

數棧DTinsight發表於2022-09-16

8 月 27 日,ChunJun 社群與 OceanBase 社群聯合組織的開源線下 Meetup 成功舉辦,會上重磅釋出了「OceanBase&ChunJun:構建一體化資料整合方案」。

這是 OceanBase&ChunJun 聯合解決方案的首次釋出,將針對分庫分表的實時資料整合、跨叢集 / 租戶的資料整合、不同資料來源的實時資料整合、日誌型別資料的全增量一體化處理等諸多場景,提供高可靠資料整合解決方案。

下面為大家帶來具體介紹,歡迎分享給更多的開發者和愛好者共同學習、探討。

課件獲取:

關注公眾號 “ChunJun”,後臺私信 “Meetup” 獲得分享課件

影片回看:

ChunJun&OceanBase 是什麼

ChunJun:一款穩定、高效、易用的資料整合框架

ChunJun 是一款高效、穩定、易用的資料整合框架,目前基於 Apache Flink 實時計算引擎實現批流一體的資料讀取和寫入。

file

ChunJun 的核心能力

・多資料來源:目前已支援 30 + 資料來源,涵蓋了各類資料庫、檔案系統等

・靈活的任務執行模式:支援開箱即用的 local 模式執行,也支援 flink standalone、yarn、k8s 等模式;支援 Taier、DolphinScheduler、Dlinky 等大資料排程平臺

・資料還原:支援 DML 和 DDL 同步,可以最大程度保證源端和目標端的資料和結構統一

・斷點續傳:依託 Flink 的 Checkpoint 機制,可以從失敗的位點重試

・速率控制:支援多種分片方式,使用者可根據自身業務調整分片邏輯;支援調整讀取和寫入的併發度,控制每秒讀取的資料量

・髒資料管理:支援多種方式儲存髒資料,控制髒資料生命週期,並提供統計資料

OceanBase:企業級開源分散式 HTAP 資料庫

企業級開源分散式 HTAP(Hybrid Transaction/Analytical Processing)資料庫,具有原生分散式架構,支援金融級高可用、透明水平擴充套件、分散式事務、多租戶和語法相容等企業級特性。

OceanBase 的核心能力

・高可用:基於 Paxos 協議,強一致性;少數副本故障,資料不丟,服務不停;RPO=0; RTO<30s

・高擴充套件:線上進行水平擴、縮容;自動實現負載均衡

・低成本:不依賴高階硬體,降低成本;極致的壓縮比,節省成本

・HTAP:一套計算引擎同時支援混合負載;一套資料庫,讀寫分離

・高相容:相容 MySQL 協議與語法;降低業務改造遷移成本

・多租戶:一套環境獨立執行多套業務;保證租戶資料安全

ChunJun OceanBase Connector 實現

OceanBase CDC

OceanBase 作為分散式資料庫,日誌資訊分佈在叢集當中不同的機器上,需要有一個工具把這些日誌資訊進行彙總,拿到正確、完整的日誌資訊。

OceanBase 社群版利用 CDC 元件架構進行這項工作,它主要是透過 oblogproxy 來提供日誌拉取的服務,如果想整合 OceanBase 增量資料的處理,可以在自己的業務應用中去整合 oblogclient 來進行處理,目前已對接了 ChunJun、Flink CDC、Cloud Canal 等資料整合框架。

file OceanBase 社群版 CDC 元件架構

ChunJun Connectors 的工作模式

ChunJun 中的讀取和寫入主要是透過 Connector 中的一些結構和模組來實現的,包含 RDB、CDC 、NoSQL、MQ、File 等。

・RDB Connectors:基於 JDBC Connector,透過輪詢支援了源表包含自增列且增量資料只有 insert 操作時的全增量一體化讀取及寫入。

・CDC Connectors:基於資料庫的 Binlog 或 Redolog,實現增量資料的讀取。

file

Flink 流資料與動態表

ChunJun 上的這些資料最終會在 Flink 進行處理,在 Flink 當中透過定義動態表的結構,可以將流資料在執行 SQL 前先轉換為可以操作的表,然後透過連續查詢來獲取一個不斷更新的執行結果。

下圖就是資料從資料流轉成動態表,在流資料上定義一張標,透過執行連續查詢來獲取不斷更新的結果。

file

ChunJun OceanBase Connector 的實現

在 ChunJun 中主要是透過 Chunjun Core 模組來滿足將資料讀取到 Flink 及從 Flink 中寫出去,其中 DynamicTableSourceFactory 及 DynamicTableSinkFactory 支援 SQL 型別的任務,SourceFactory 及 SinkFactory 用來支援 Json 型別的任務。

如下圖所示,ChunJun OceanBase Connector 的實現主要透過兩種方式:一種是從 Chunjun Core 到 JDBC Connector 再到 OceanBase Connector;另外一種是從 Chunjun Core 直接到 OceanBase CDC Connector。

file

ChunJun & OceanBase 應用

場景 1:針對分庫分表的實時資料整合

使用 Oceanbase CDC Connector,庫表名利用 Fnmatch 通配,實現分庫分表資料來源的實時資料整合。這個場景可以做增量同步,也可以做單資料流的 ETL 操作。

file

場景 2:跨叢集 / 租戶的資料整合

目前,不同租戶的資料在一個連線當中獲取不到,如果想對 OB 當中不同租戶的資料做一個統一處理,需透過多個資料庫的連線來實現分別讀取,這時可以利用 ChunJun 中與 OceanBase 相關的 connector,讀取不同叢集、租戶資料到 Flink。

file

場景 3:不同資料來源的實時資料整合

可以對不同種類資料來源進行資料匯聚,使用不同型別資料庫的 connector,讀取不同資料來源的資料到 Flink。

file

場景 4:日誌型別資料的全增量一體化處理

對於只有 insert 增量變動的資料來源,基於自增列進行全增量一體化的處理。

file

ChunJun&OceanBase 未來展望

● 提高程式碼質量

・增加測試 case,覆蓋所有的啟動方式和常見的業務場景

・完全適配 MySQL 5.1.4x 和 8.0 驅動

● 20 + 種豐富的任務型別

・增加非 transformer 模式 sync 任務的支援

・增加 OceanBase 企業版 Oracle 模式的支援

● 提高方案可靠性

・增加資料讀取的事務性支援

・簡化 oblogproxy 的部署,支援 Docker 部署

・增加詳細的使用文件


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69995740/viewspace-2914958/,如需轉載,請註明出處,否則將追究法律責任。

相關文章