DataWorksData Integration支援在MySQL、MaxCompute、Hologres、Kafka等多種資料來源之間同步資料。Data Integration提供離線批處理同步、即時資料同步和整庫遷移方案,可用於T+1離線資料ETL、秒級即時資料複製和整庫遷移等情境。
同步方案說明
具體類型 | 源粒度 | 目標粒度 | 時效性 | 同步情境 |
單表離線 | 單張表 | 單張表/分區 | T+1 或周期性 | 周期性全量、周期性增量 |
分庫分表離線 | 多張結構一致的表 | 單張表/分區 | T+1 或周期性 | 周期性全量、周期性增量 |
單表即時 | 單張表 | 單張表/分區 | 秒級~分鐘級 | 即時增量 (CDC) |
整庫離線 | 整庫或多張表 | 對應多張表及其分區 | 一次性或周期性 | 一次性/周期性全量、一次性/周期性增量、一次性全量+周期性增量 |
整庫即時 | 整庫或多張表 | 對應多張表及其分區 | 秒級~分鐘級 | 全量+即時增量 (CDC) |
整庫全增量 | 整庫或多張表 | 對應多張表及其分區 | 首次全量:批處理 後續增量:T+1 | 全量+即時增量 (CDC) |
同步方案推薦
在選擇資料同步方案時,主要需要思考兩個核心問題:
時效性要求:業務需要資料多久同步一次,是每天一次(離線),還是需要秒級/分鐘級的即時更新(即時)。
同步規模與複雜度:需要同步多少張表,這些表的處理邏輯是否統一(單表 vs 整庫)。
基於此,我們將同步方案分為兩大類進行推薦:離線同步方案和即時同步方案。
一、 選擇離線同步方案 (T+1/周期性)
離線方案適用於對資料時效性要求不高(例如T+1)、需要進行周期性批量處理的情境。
核心前提:實現離線增量同步處理,源表必須包含可用於界定資料增量的欄位(如gmt_modified等時間戳記或自增ID)。若缺少此類欄位,只能退而求其次選擇周期性全量同步。
1. 選擇「單表離線」
當需要對少量、核心、異構的資料進行精細化處理時。
核心優勢:處理邏輯靈活。
精細化轉換:支援複雜的欄位對應、資料過濾、常量賦值及函數轉換甚至AI輔助處理。
異構源整合:是處理API、記錄檔等非標資料來源的最佳選擇。
核心限制:規模化成本高。
配置開銷大:同步大量表時,逐一配置和維護任務的工作量巨大。
資源消耗高:每個任務獨立調度,100個單表任務的資源消耗遠超1個整庫任務。
單表離線方案推薦:單表離線同步任務
2. 選擇「整庫離線」
當需要將大量、同構的資料表從一個地方高效“搬遷”到另一個地方時。
核心優勢:營運效率高、成本低。
高效率:一次性配置上百張表,自動匹配對象,極大提升開發效率。
成本效益:資源整體調度最佳化,成本極低(例如,1個整庫任務 vs 100個單表任務,資源消耗可能為2CU vs 100CU)。
典型情境:資料倉儲ODS層構建、資料庫周期性備份、資料上雲。
核心限制:處理邏輯單一。
主要為“複製”設計,不支援針對單表的複雜轉換邏輯。
整庫離線方案推薦:整庫離線同步任務。
二、 選擇即時同步方案(秒級~分鐘級)
即時方案適用於需要捕獲源端即時資料變更(增、刪、改),以支撐即時分析和業務響應的情境。
核心前提:源端必須支援變更資料擷取 (CDC) 或本身就是訊息佇列。例如,MySQL需開啟Binlog,或源端為Kafka執行個體。
選擇「單表即時」 or 「整庫即時」
選擇邏輯與離線方案類似:
單表即時:適用於對單張核心表的即時變更流進行複雜處理的情境。
整庫即時:是構建即時數倉、實現資料庫即時災備、打通即時資料湖的主流選擇,同樣具備高效率和成本效益的巨大優勢。
即時方案推薦:單表即時同步任務、整庫即時同步任務
三、 特殊情境:即時CDC資料寫入僅追加 (Append-Only) 目標表
問題背景:即時同步捕獲的CDC資料包含 Insert(插入)、Update(更新)和 Delete(刪除)三類操作。對於MaxCompute的非Delta Table類型表等原生不支援在物理層面執行Update/Delete的Append-Only(僅追加)儲存系統,直接寫入CDC流會導致資料狀態不一致(例如,刪除操作無法體現)。
DataWorks解決方案:Base + Log模式
此方案即整庫全增量任務,通過在目標端建立
Base表(全量快照)和Log表(增量日誌)來解決此問題。寫入方式:CDC資料流被即時寫入
Log表,然後在T+1日,系統自動調度任務將Log表中的變更合并(Merge)到Base表,產生最新的全量快照。此方案的時效性是“資料分鐘級寫入增量表,最終狀態T+1合并可見”。它兼顧了資料的即時捕獲和離線數倉的最終一致性。
同步方案推薦:整庫全增量任務配置。
資料來源讀寫能力
資料來源 | 單表離線 | 單表即時 | 整庫離線 | 整庫即時 | 整庫全增量 |
讀 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | 寫 | 讀 | 寫 | - | |
讀/寫 | - | 讀 | - | - | |
讀/寫 | - | - | 讀 | 讀 | |
讀 | - | - | - | - | |
讀 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀 | - | - | - | - | |
讀 | - | - | - | - | |
讀/寫 | 讀/寫 | - | 寫 | - | |
讀/寫 | 寫 | 寫 | 寫 | - | |
讀/寫 | - | 讀 | - | - | |
讀/寫 | 寫 | 讀 | - | - | |
讀/寫 | - | 讀 | - | - | |
讀/寫 | - | 讀 | - | - | |
Elasticsearch | 讀/寫 | 寫 | 寫 | 寫 | - |
讀/寫 | - | - | - | - | |
GBase8a | 讀/寫 | - | - | - | - |
HBase | hbase讀/寫 HBase 20xsql 讀 HBase 11xsql 寫 | - | - | - | - |
讀/寫 | - | - | - | - | |
Hive | 讀/寫 | - | 讀/寫 | - | - |
讀/寫 | 讀/寫 | 讀/寫 | 寫 | - | |
讀 | - | - | - | - | |
讀/寫 | 讀/寫 | - | 寫 | - | |
讀/寫 | - | - | - | - | |
讀/寫 | 寫 | - | 寫 | - | |
讀/寫 | 讀 | - | - | - | |
讀/寫 | 寫 | 寫 | 寫 | 寫 | |
讀/寫 | - | - | - | - | |
寫 | - | - | - | - | |
寫 | - | - | - | - | |
讀 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | - | - | 讀 | - | |
讀/寫 | 讀 | 讀 | 讀 | 讀 | |
寫 | - | - | - | - | |
讀/寫 | 讀 | 讀 | 讀 | 讀 | |
讀/寫 | - | 寫 | 寫 | - | |
讀/寫 | - | 寫 | 寫 | - | |
讀/寫 | 讀 | 讀 | 讀 | 讀 | |
讀/寫 | - | 讀 | 讀 | - | |
讀/寫 | - | 讀 | 讀 | - | |
寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | 寫 | 寫 | 寫 | - | |
讀/寫 | - | 讀 | - | - | |
讀/寫 | 寫 | - | - | - | |
讀/寫 | - | - | - | - | |
讀/寫 | - | - | - | - | |
寫 | - | - | - | - | |
Vertica | 讀/寫 | - | - | - | - |
讀 | - | - | - | - |
常見業務情境
相關文檔
下面精選了Data Integration樞紐文件,旨在協助使用者快速入門。
資料來源配置參見:資料來源管理。
同步任務配置參見:
資料同步常見問題參見:Data Integration常見問題。