日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
創(chuàng)新互聯OceanBase教程:OceanBase組件基本原理

本文為您介紹 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)拉取增量數據的同時,將其翻譯為 INSERTUPDATE 或 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