全部產品
Search
文件中心

DataWorks:MySQL整庫離線同步至Hive

更新時間:Mar 07, 2026

本文以MySQL為源端,Hive為目標端情境為例,為您介紹如何把MySQL整個資料庫的資料離線同步到Hive。

準備工作

適用範圍

整庫離線同步任務支援在數據開發 (Data Studio) 與數據集成兩大模組中進行配置,兩者在功能上互連。

  • 配置一致:無論是資料開發還是在Data Integration模組中建立任務,其配置介面、參數設定和底層功能完全一致。

  • 雙向同步:在Data Integration模組中建立的任務,會自動同步並顯示在資料開發模組的data_integration_jobs目錄下。這些任務會按照源端類型-目的端類型的通道進行歸類,便於統一管理。

配置同步任務

步驟一:建立同步任務

  1. 進入Data Integration頁面。

    登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的Data Integration > Data Integration,在下拉框中選擇對應工作空間後單擊進入Data Integration

  2. 在左側導覽列單擊同步任務,然後在頁面頂部單擊新建同步任務,並配置任務資訊:

    • 數據來源類型MySQL

    • 數據去向類型Hive

    • 具体类型整庫離線

    • 同步步驟同步步驟與後續配置項全增量控制具有聯動關係,可組合後形成不同的同步方案。

      • 結構遷移:自動在目標端建立與源端匹配的資料庫物件(如表、欄位、資料類型等),但不包含資料。

      • 全量同步(可選):一次性將源端指定對象(如表)中的所有歷史資料完整地複製到目標端。通常用於首次資料移轉或資料初始化。

      • 增量同步(可選):在全量同步完成後,根據增量條件持續地捕獲源端新增的資料,並將其同步至目標端。

步驟二:配置資料來源與運行資源

  1. 來源數據源地區選取項目已添加至工作空間的MySQL資料來源,在去向數據源地區選取項目已添加的Hive資料來源。

  2. 運行資源地區,選擇同步任務所使用的資源組,並為該任務分配資源組CU。如果您的同步任務因資源不足出現OOM現象,請適當調整資源組CU佔用取值。

  3. 並確保來來源資料源與去向資料來源均通過連通性檢查

步驟三:同步方案配置

1. 配置資料來源

此步驟中,您可以在源端庫表地區選取項目源端資料來源下需要同步的表,並單擊image表徵圖,將其移動至右側已選庫表

image

若庫表數較多,可以使用庫過濾或者表過濾,通過配置Regex來選擇需要同步的表。

2. 資料去向

此操作會影響通過Data Integration建立表的表結構,已有表的表結構不受影響。

  • 新建表存儲方式:可以選擇內表外表,決定建立目標表格式是內表還是外表。

  • 新建表格式:可以選擇parquetorctxt,決定建立目標表的儲存格式。

  • 写入方式:決定任務在寫入時,是清空目標表還是保留歷史資料。同步時首先會將資料寫入HDFS檔案,再將檔案load至目標表中,通過該參數決定load時是否保留已有資料。

  • 分區初始化設置:決定建立表的分區初始化值,預設只有一級分區,您可以通過配置按鈕進行修改。

3. 方案配置(全增量控制)

  1. 配置任務的執行頻率

    • 若選擇“全量同步”或“增量同步處理”:您可以自由選擇任務的執行方式為一次性周期性

    • 若同時選擇“全量同步”和“增量同步處理”:系統將採用 “首次一次性全量,後續周期性增量” 的內建模式,此選項不可更改。

      同步步驟

      全增量控制

      資料寫入說明

      應用情境

      全量同步

      一次性

      任務啟動後,可以將源表所有資料一次性同步至目標表或指定分區。

      資料初始化、系統遷移

      周期性

      按設定的調度周期,將源表所有資料周期性地同步至目標表或指定分區。

      資料對賬、T+1全量快照

      增量同步處理

      一次性

      任務啟動後,根據您指定的增量條件,將增量資料一次性同步至指定分區。

      手動修複某批次資料

      周期性

      任務啟動後,按設定的調度周期增量條件,將增量資料周期性同步至指定分區。

      日常ETL、構建拉鏈表

      全量同步&增量同步處理

      (內建模式,不可選擇)

      首次運行:自動執行一次表結構初始化和歷史資料全量同步。

      後續運行:按設定的調度周期增量條件,將增量資料周期性同步至指定分區。

      一鍵式資料入倉/入湖

      說明
      • 整庫離線的周期調度執行個體產生方式等同發布後即時產生,詳情參見:執行個體產生方式:發布後即時產生

      • 分區產生方式可在後續的目標表字段賦值中定義,可使用常量,或使用系統預置變數周期調度參數動態產生。

      • 調度周期增量條件分區產生方式的配置存在聯動關係,詳情參見:6. 增量條件

  2. 配置周期調度參數。

    如果您的任務涉及周期性同步,則可單擊周期調度參數進行配置。此處的參數可在後續目標表映射中配置增量條件欄位賦值時使用。

4. 目標表映射

在此步驟,您需要定義源表與目標表的映射規則,並定義周期配置增量條件來指定資料寫入方式。

image

操作

說明

重新整理映射

系統會自動列出您選擇的源端表,但目標表的具體屬性需要您重新整理確認後才會生效。

  • 批量選中需要同步的表,單擊批量重新整理映射。

  • 目標表名:目標表名將根據目標表名映射自定義規則自動產生。預設為 ${源端庫名}_${表名},如果目標端不存在此同名表,系統將自動為您建立。

編輯欄位類型映射(可選)

系統存在預設的源端欄位類型與目標端欄位類型映射,您可以單擊表格右上方的編輯字段類型映射,自訂來源端表與目標端表欄位類型映射關係,配置完後單擊應用並刷新映射

編輯欄位類型映射時,需要注意欄位類型轉換規則是否正確,否則會導致類型轉換失敗而產生髒資料,影響任務運行。

目標表名映射自訂(可選)

系統存在預設的表名建置規則:${源端庫名}_${表名}。您也可以在目標表名映射自定義列,單擊編輯按鈕可以新增自訂目標表名規則。

  • 規則名稱:定義規則名稱,建議為規則配置一個具有明確業務意義的名稱。

  • 目標表名:目標表名可以通過單擊image按鈕,選擇手動輸入內建變數進行拼接,產生目標表名。其中變數支援源端資料來源名,源端資料庫名和源端表名。

  • 編輯內建變數:內建變數可以在原有的基礎上進行字串轉換。

可實現如下情境:

  1. 名稱添加前尾碼:通過設定常量在源端表名的基礎上,添加首碼或者尾碼。

    規則配置

    應用效果

    image

    image

  2. 字串統一替換:將源端表名的字串dev_,統一替換為prd_

    規則配置

    應用效果

    image

    image

  3. 多張表寫入一張表。

    規則配置

    應用效果

    image

    image

目標庫名映射自訂(可選)

部分目標資料來源如Hologres,支援對目標庫進行映射規則定義,配置方式可參考目標表名映射自訂的方式。

目標Schema名映射自訂(可選)

部分目標資料來源如Hologres,支援對目標端的Schema進行映射規則定義,配置方式可參考目標表名映射自訂的方式。

編輯目標表結構(可選)

系統將基於源端表結構自動產生目標表結構,常規情境下無需人工幹預。若需特殊處理,可通過以下方式自訂

  • 單表新增欄位:單擊目標表名列的image.png按鈕添加欄位。

  • 批量新增欄位:選中待同步的所有表,在表格底部選擇批核修改 > 批量修改目標表結構

  • 不支援重新命名列名。

目標表欄位賦值

普通欄位會根據源端表和目標表的同名欄位進行自動對應,分區欄位和上述步驟中的新增欄位需要手動賦值。操作如下:

  • 單表賦值:單擊目標表字段賦值列的配置按鈕,為目標表欄位賦值。

  • 批量賦值:在列表底部選擇批核修改 > 目標表字段賦值,對目標表中相同的欄位進行批量賦值。

在賦值時支援賦值常量與變數,可在表欄位分區欄位賦值方式中進行切換類型,支援方式如下:

  • 手動賦值:直接輸入常量值或調度參數,如:abc,或者使用${xxx}形式輸入調度參數名稱,比如${bizdate}

  • 選擇變數:下拉選擇系統支援的變數,可在介面的image提示中查看變數的具體含義。

變數周期調度參數均會在任務調度時,自動根據日期替換代碼中的參數。

設定源端切分列

您可以在源端切分列中下拉選擇源端表中的欄位或選擇不切分。同步任務執行時將根據該欄位切分為多個task,以便並發、分批讀取資料。

推薦使用表主鍵作為源端切分列,不支援字串、浮點和日期等其他類型。

目前僅源端為MySQL時支援源端切分列。

自訂進階參數

支援為子任務單獨設定運行時配置,請在完全明白對應參數的含義情況下再進行修改,避免產生任務延時、資源佔用過大導致阻塞其他任務、資料丟失等不可預料的問題。

5. 周期配置

若增量同步處理配置為周期性,需要在目標表完成周期配置。包括調度週期調度時間調度資源組等。當前同步的調度配置與資料開發中節點的調度配置一致,參數詳情可參見節點調度配置

說明

如果一次性同步的表數量過多,建議配置調度時間時分批執行,防止任務堆積,造成資源擠兌。

6. 增量條件

若任務需要同步增量資料,必須配置增量條件。該條件決定了每個調度周期批次的執行個體具體同步哪些資料。

  1. 作用與文法

    • 作用:增量條件本質上是對源端資料進行篩選的 WHERE 子句。

    • 文法:配置時,您只需填寫 WHERE 後面的條件運算式,無需寫入 WHERE 關鍵字。

  2. 配合調度參數實現增量同步處理

    為了實現周期性的增量同步處理,您可以在增量條件中使用調度參數。例如,配置為 STR_TO_DATE('${bizdate}', '%Y%m%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), INTERVAL 1 DAY) 即可同步前一天新產生的資料。

  3. 寫入指定分區

    通過將增量條件與目標表的分區欄位相結合,可以實現每個批次的增量資料精確寫入對應的分區。

    例如,在步驟2的增量條件下,您可以將分區欄位設為 ds=${bizdate},將目標表設為按天分區。這樣每天的執行個體只會同步源端對應日期的資料,並寫入目標表的同名分區。

重要
增量條件指定的時間區間,與分區產生的時間間隔,配合周期配置的調度周期,三者組合成合理配置後,可實現一套自動化的、商務規則與物理分區嚴格對齊的T+n增量ETL管道。

步驟四:進階配置

同步任務提供部分參數可供修改,您可以按需對該參數值進行修改,例如通過最大串連數上限限制,避免當前同步方案對資料庫造成過大的壓力從而影響生產。

說明

請在完全瞭解對應參數含義的情況下再進行修改,以免產生不可預料的錯誤或者資料品質問題。

  1. 單擊介面右上方的進階參數配置,進入進階參數配置頁面。

  2. 進階參數配置頁面修改相關參數值。

步驟五:發布並執行任務

  1. 完成所有配置後,單擊頁面底部的保存,完成任務配置。

  2. 整庫同步任務不支援直接調試,需要發布至運維中心運行。因此建立或者編輯任務均需執行发布操作後方可生效。

  3. 發布時,若勾選发布后直接启动运行,則在發布時會同步啟動任務。否則,發布完成後,需要進入數據集成 > 同步任務介面,在目標任務的操作列,手動啟動任務。

  4. 單擊任務列表中對應任務的名稱/ID,查看任務的詳細執行過程。

步驟六:配置警示規則

整庫離線同步任務的警示規則需在營運中心找到對應的子任務配置。

  1. 數據集成 > 同步任務列,擷取目標任務ID

  2. 運維中心 > 周期任務列,根據整合任務的ID,找到對應的整庫離線子任務,如整合任務ID為34862,增量同步處理周期子任務名稱為offline_odps_cyc_sync_mysql_test_timetest_to_mysql_test_timetest_34862,單擊該任務的更多 > 添加規則監控,進入規則管理頁。

  3. 新建自定义规则,設定規則對象觸發方式报警行为等,更多資訊,請參見規則管理

    您可以在規則對象中搜尋已擷取的子任務ID,找到目標任務並為其設定警示。

管理同步任務

任務重跑

在某些特殊情況下,如果您需要增減表、修改目標表Schema資訊或者表名資訊時,您還可以單擊同步任務操作列的重跑,系統會將新增的表或有變更的表進行同步,之前同步過的表或者未修改的表將不會再進行同步。

  • 直接單擊重跑操作,重新運行一次性任務週期性任務

  • 編輯任務,進行增減表操作後,儲存任務並發布。這個時候任務的操作列會顯示應用程式更新,單擊應用程式更新會直接觸發修改後的任務重跑。新增或變更的表才會進行同步,之前同步過的表不會再同步。

查看任務

建立完成同步任務後,您可以在同步任務頁面查看當前已建立的同步工作清單及各個同步任務的基本資料。

image

  • 您可以在操作列启动停止同步任務,在更多中可以對同步任務進行編輯查看等操作。

  • 已啟動的任務您可以在執行概況中看到任務啟動並執行基本情況,也可以單擊對應的概況地區查看執行詳情。image

    MySQL到Hive的整庫離線同步任務中:

    • 如果您的任務同步步驟為全量同步,此處展示結構遷移以及全量同步。

    • 如果您的任務同步步驟為增量同步,此處展示結構遷移以及增量同步處理。

    • 如果您的任務同步步驟為全量同步+增量同步,此處展示結構遷移、全量同步以及增量同步處理。

資料開發相關情境

如果您有下遊資料依賴,需要進行資料開發操作的情境,可以參考節點調度配置,進行節點上下遊的設定,對應的周期任務節點資訊可以在此處周期配置列中查看。

image

後續步驟

任務啟動後,您可以點擊任務名稱,查看運行詳情,進行任務營運和調優