新聞中心
本文為您介紹 OceanBase 遷移服務(OceanBase Migration Service,OMS)包含的組件。

OMS 內部主要包含以下組件:
- 結構遷移核心組件
- 全量數據流和數據校驗組件
- 日志讀取組件
- 同步寫入組件
結構遷移核心組件
OMS 結構遷移的核心組件(DBCat)作為 OceanBase 原生的 Schema 轉換引擎,可以根據源端、目標端具體的數據源類型和字符編碼類型,進行精確的數據類型映射或轉換。OMS 的結構遷移組件支持轉換、遷移數據庫中的表、約束、索引和視圖等多種對象。
同時,DBCat 可以嚴格對齊和兼容 OceanBase 的租戶類型。例如,OceanBase 的某個版本暫時不支持源端數據庫中的部分數據源類型,DBCat 會選擇最接近且兼容度最高的數據類型進行轉換映射。
全量數據流和數據校驗組件
全量數據流模塊(Dataflow)負責源庫存量數據的遷移,以及遷移后的全字段校驗。為了擴展靈活性和充分復用組件,Dataflow 自下而上分別是 Reader 模塊、Writer 模塊、Broker 模塊和統一數據模型層:
-
Reader 模塊:負責從源端讀取數據,每一種數據庫類型都有對應的 Reader 插件。Reader 插件根據統一數據模型層轉換讀取的記錄后,將其放入 Broker 模塊中,由其它模塊消費。
-
Writer 模塊:從 Broker 模塊訂閱某張表的記錄,根據每個 Writer 插件的類型,將記錄按照統一數據模型層轉換為適配下游的插入語句后,寫入下游。
-
Broker 模塊:用于解耦 Reader、Writer 或其它模塊,以提升性能。解藕后,上下游模塊可以相互獨立,便于維護和擴展。
-
統一數據模型層:各組件間通過 Broker 要實現解藕,還需要有一層統一數據模型。數據從 Reader 寫入 Broker 時需要先按統一數據模型轉換,從 Broker 獲取數據記錄后,也需要由記錄的統一數據模型轉化為下游適配的對象或語句。
在上述底層模塊的基礎上,OMS 實現了數據的遷移、校驗和訂正。
遷移數據時,您需要在配置好源端、目標端、待遷移表和庫表映射等關鍵信息后,為每張遷移表創(chuàng)建一條 Reader > Broker > Writer 的通道,再由上層遷移程序對每張表的遷移進行調度。您可以并發(fā)遷移多張表,在 Reader 和 Writer 組件中可以并發(fā)執(zhí)行每張表的遷移。
進行數據校驗和訂正時,您需要在配置好源端、目標端、待遷移表和庫表映射等關鍵信息后,為每張校驗的表創(chuàng)建 SrcReader > Broker > DstReader 和 Broker > Verifier 的校驗通道。
日志讀取組件
不同類型數據庫的日志讀取模塊(Store)的實現方式不同,例如 OceanBase Store 模塊的實現方式是依賴于 OceanBase 的 Liboblog 工具。
Lliboblog 是 OceanBase 的增量數據同步工具,通過 RPC 方式拉取 OceanBase 各個分區(qū)的 Redo 日志后,結合各個表和列的 Schema 信息,轉換 Redo 日志為中間定義的數據格式,最后以事務的方式輸出修改的數據。
同步寫入組件
同步寫入模塊包括 JDBCWriter 和 Connector:
-
同步寫入模塊(JDBCWriter)是從日志讀取模塊(Store)拉取增量數據的同時,將其翻譯為
INSERT、UPDATE或DELETE等 SQL 語句寫入數據至目標端的組件。Store 組件記錄的是流式的增量數據,可以通過 Pipeline 保證數據的有序性。Writer 組件單線程順序執(zhí)行事務可以滿足基本要求,但不能擴展性能,所以 OMS 引入并發(fā)寫機制。
在提升同步性能的同時,還需要保證數據的一致性,所以 OMS 引入沖突矩陣機制實現亂序并發(fā)寫入,以確保每個事務的最終一致性。
為了避免循環(huán)復制問題,所有通過 OMS 的 JDBCWriter 模塊寫入的數據都會在 Store 組件中進行打標處理,以確保不會再次被其它模塊消費。
-
同步寫入模塊(Connector)是將 JDBCWriter 的功能插件化,包括源端(Source) 和目標端(Sink) 插件。以同步 OceanBase 數據至 Kafka 為例,在數據同步過程中,OB-Store-Source 為源端插件,Kafka-Sink 為目標端插件。
Connector 的優(yōu)勢如下:
-
可擴展性強,源端和目標端可以進行組合。
-
方便統一同步任務資源的管理、監(jiān)控和運維。
-
作為統一中間層,將不同源端的 Record 格式進行結構化,便于實現 Record 的 Filter 和 Transformer 等功能
-
當前文章:創(chuàng)新互聯OceanBase教程:OceanBase組件基本原理
當前路徑:http://www.5511xx.com/article/djiidhi.html


咨詢
建站咨詢
