本文以MySQL為源端,Hive為目標端情境為例,為您介紹如何把MySQL整個資料庫的資料離線同步到Hive。
準備工作
-
資料來源準備
-
已建立MySQL資料來源和Hive資料來源,詳情請參見資料來源配置。
-
-
資源群組:已購買Serverless資源群組。
-
網路連通:資源群組與資料來源之間需完成網路連通方案概述。
適用範圍
整庫離線同步任務支援在數據開發 (Data Studio) 與數據集成兩大模組中進行配置,兩者在功能上互連。
-
配置一致:無論是資料開發還是在Data Integration模組中建立任務,其配置介面、參數設定和底層功能完全一致。
-
雙向同步:在Data Integration模組中建立的任務,會自動同步並顯示在資料開發模組的
data_integration_jobs目錄下。這些任務會按照源端類型-目的端類型的通道進行歸類,便於統一管理。
配置同步任務
步驟一:建立同步任務
進入Data Integration頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入Data Integration。
-
在左側導覽列單擊同步任務,然後在頁面頂部單擊新建同步任務,並配置任務資訊:
-
數據來源類型:
MySQL。 -
數據去向類型:
Hive。 -
具体类型:
整庫離線。 -
同步步驟:同步步驟與後續配置項全增量控制具有聯動關係,可組合後形成不同的同步方案。
-
結構遷移:自動在目標端建立與源端匹配的資料庫物件(如表、欄位、資料類型等),但不包含資料。
-
全量同步(可選):一次性將源端指定對象(如表)中的所有歷史資料完整地複製到目標端。通常用於首次資料移轉或資料初始化。
-
增量同步(可選):在全量同步完成後,根據增量條件持續地捕獲源端新增的資料,並將其同步至目標端。
-
-
步驟二:配置資料來源與運行資源
-
在來源數據源地區選取項目已添加至工作空間的
MySQL資料來源,在去向數據源地區選取項目已添加的Hive資料來源。 -
在運行資源地區,選擇同步任務所使用的資源組,並為該任務分配資源組CU。如果您的同步任務因資源不足出現OOM現象,請適當調整資源組CU佔用取值。
-
並確保來來源資料源與去向資料來源均通過連通性檢查。
步驟三:同步方案配置
1. 配置資料來源
此步驟中,您可以在源端庫表地區選取項目源端資料來源下需要同步的表,並單擊
表徵圖,將其移動至右側已選庫表。

若庫表數較多,可以使用庫過濾或者表過濾,通過配置Regex來選擇需要同步的表。
2. 資料去向
此操作會影響通過Data Integration建立表的表結構,已有表的表結構不受影響。
-
新建表存儲方式:可以選擇內表、外表,決定建立目標表格式是內表還是外表。
-
新建表格式:可以選擇parquet、orc、txt,決定建立目標表的儲存格式。
-
写入方式:決定任務在寫入時,是清空目標表還是保留歷史資料。同步時首先會將資料寫入HDFS檔案,再將檔案load至目標表中,通過該參數決定load時是否保留已有資料。
-
分區初始化設置:決定建立表的分區初始化值,預設只有一級分區,您可以通過配置按鈕進行修改。
3. 方案配置(全增量控制)
配置任務的執行頻率
若選擇“全量同步”或“增量同步處理”:您可以自由選擇任務的執行方式為一次性或周期性。
若同時選擇“全量同步”和“增量同步處理”:系統將採用 “首次一次性全量,後續周期性增量” 的內建模式,此選項不可更改。
同步步驟
全增量控制
資料寫入說明
應用情境
全量同步
一次性
任務啟動後,可以將源表所有資料一次性同步至目標表或指定分區。
資料初始化、系統遷移
周期性
按設定的調度周期,將源表所有資料周期性地同步至目標表或指定分區。
資料對賬、T+1全量快照
增量同步處理
一次性
任務啟動後,根據您指定的增量條件,將增量資料一次性同步至指定分區。
手動修複某批次資料
周期性
任務啟動後,按設定的調度周期與增量條件,將增量資料周期性同步至指定分區。
日常ETL、構建拉鏈表
全量同步&增量同步處理
(內建模式,不可選擇)
首次運行:自動執行一次表結構初始化和歷史資料全量同步。
後續運行:按設定的調度周期與增量條件,將增量資料周期性同步至指定分區。
一鍵式資料入倉/入湖
說明整庫離線的周期調度執行個體產生方式等同發布後即時產生,詳情參見:執行個體產生方式:發布後即時產生。
分區產生方式可在後續的目標表字段賦值中定義,可使用常量,或使用系統預置變數、周期調度參數動態產生。
調度周期、增量條件與分區產生方式的配置存在聯動關係,詳情參見:6. 增量條件。
配置周期調度參數。
如果您的任務涉及周期性同步,則可單擊周期調度參數進行配置。此處的參數可在後續目標表映射中配置增量條件及欄位賦值時使用。
4. 目標表映射
在此步驟,您需要定義源表與目標表的映射規則,並定義周期配置和增量條件來指定資料寫入方式。

|
操作 |
說明 |
||||||||||||
|
重新整理映射 |
系統會自動列出您選擇的源端表,但目標表的具體屬性需要您重新整理確認後才會生效。
|
||||||||||||
|
編輯欄位類型映射(可選) |
系統存在預設的源端欄位類型與目標端欄位類型映射,您可以單擊表格右上方的編輯字段類型映射,自訂來源端表與目標端表欄位類型映射關係,配置完後單擊應用並刷新映射。 編輯欄位類型映射時,需要注意欄位類型轉換規則是否正確,否則會導致類型轉換失敗而產生髒資料,影響任務運行。 |
||||||||||||
|
目標表名映射自訂(可選) |
系統存在預設的表名建置規則:
可實現如下情境:
|
||||||||||||
|
目標庫名映射自訂(可選) |
部分目標資料來源如Hologres,支援對目標庫進行映射規則定義,配置方式可參考目標表名映射自訂的方式。 |
||||||||||||
|
目標Schema名映射自訂(可選) |
部分目標資料來源如Hologres,支援對目標端的Schema進行映射規則定義,配置方式可參考目標表名映射自訂的方式。 |
||||||||||||
|
編輯目標表結構(可選) |
系統將基於源端表結構自動產生目標表結構,常規情境下無需人工幹預。若需特殊處理,可通過以下方式自訂
|
||||||||||||
|
目標表欄位賦值 |
普通欄位會根據源端表和目標表的同名欄位進行自動對應,分區欄位和上述步驟中的新增欄位需要手動賦值。操作如下:
在賦值時支援賦值常量與變數,可在表欄位及分區欄位的賦值方式中進行切換類型,支援方式如下:
變數和周期調度參數均會在任務調度時,自動根據日期替換代碼中的參數。 |
||||||||||||
|
設定源端切分列 |
您可以在源端切分列中下拉選擇源端表中的欄位或選擇不切分。同步任務執行時將根據該欄位切分為多個task,以便並發、分批讀取資料。 推薦使用表主鍵作為源端切分列,不支援字串、浮點和日期等其他類型。 目前僅源端為MySQL時支援源端切分列。 |
||||||||||||
|
自訂進階參數 |
支援為子任務單獨設定運行時配置,請在完全明白對應參數的含義情況下再進行修改,避免產生任務延時、資源佔用過大導致阻塞其他任務、資料丟失等不可預料的問題。 |
5. 周期配置
若增量同步處理配置為周期性,需要在目標表完成周期配置。包括調度週期、調度時間、調度資源組等。當前同步的調度配置與資料開發中節點的調度配置一致,參數詳情可參見節點調度配置。
如果一次性同步的表數量過多,建議配置調度時間時分批執行,防止任務堆積,造成資源擠兌。
6. 增量條件
若任務需要同步增量資料,必須配置增量條件。該條件決定了每個調度周期批次的執行個體具體同步哪些資料。
-
作用與文法
-
作用:增量條件本質上是對源端資料進行篩選的
WHERE子句。 -
文法:配置時,您只需填寫
WHERE後面的條件運算式,無需寫入WHERE關鍵字。
-
-
配合調度參數實現增量同步處理
為了實現周期性的增量同步處理,您可以在增量條件中使用調度參數。例如,配置為
STR_TO_DATE('${bizdate}', '%Y%m%d') <= columnName AND columnName < DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), INTERVAL 1 DAY)即可同步前一天新產生的資料。 -
寫入指定分區
通過將增量條件與目標表的分區欄位相結合,可以實現每個批次的增量資料精確寫入對應的分區。
例如,在步驟2的增量條件下,您可以將分區欄位設為
ds=${bizdate},將目標表設為按天分區。這樣每天的執行個體只會同步源端對應日期的資料,並寫入目標表的同名分區。
增量條件指定的時間區間,與分區產生的時間間隔,配合周期配置的調度周期,三者組合成合理配置後,可實現一套自動化的、商務規則與物理分區嚴格對齊的T+n增量ETL管道。
步驟四:進階配置
同步任務提供部分參數可供修改,您可以按需對該參數值進行修改,例如通過最大串連數上限限制,避免當前同步方案對資料庫造成過大的壓力從而影響生產。
請在完全瞭解對應參數含義的情況下再進行修改,以免產生不可預料的錯誤或者資料品質問題。
單擊介面右上方的進階參數配置,進入進階參數配置頁面。
在進階參數配置頁面修改相關參數值。
步驟五:發布並執行任務
完成所有配置後,單擊頁面底部的保存,完成任務配置。
整庫同步任務不支援直接調試,需要發布至運維中心運行。因此建立或者編輯任務均需執行发布操作後方可生效。
發布時,若勾選发布后直接启动运行,則在發布時會同步啟動任務。否則,發布完成後,需要進入介面,在目標任務的操作列,手動啟動任務。
單擊任務列表中對應任務的名稱/ID,查看任務的詳細執行過程。
步驟六:配置警示規則
整庫離線同步任務的警示規則需在營運中心找到對應的子任務配置。
在列,擷取目標任務ID。
在列,根據整合任務的ID,找到對應的整庫離線子任務,如整合任務ID為
34862,增量同步處理周期子任務名稱為offline_odps_cyc_sync_mysql_test_timetest_to_mysql_test_timetest_34862,單擊該任務的,進入規則管理頁。在新建自定义规则,設定規則對象、觸發方式和报警行为等,更多資訊,請參見規則管理。
您可以在規則對象中搜尋已擷取的子任務ID,找到目標任務並為其設定警示。
管理同步任務
任務重跑
在某些特殊情況下,如果您需要增減表、修改目標表Schema資訊或者表名資訊時,您還可以單擊同步任務操作列的重跑,系統會將新增的表或有變更的表進行同步,之前同步過的表或者未修改的表將不會再進行同步。
直接單擊重跑操作,重新運行一次性任務和週期性任務。
編輯任務,進行增減表操作後,儲存任務並發布。這個時候任務的操作列會顯示應用程式更新,單擊應用程式更新會直接觸發修改後的任務重跑。新增或變更的表才會進行同步,之前同步過的表不會再同步。
查看任務
建立完成同步任務後,您可以在同步任務頁面查看當前已建立的同步工作清單及各個同步任務的基本資料。

-
您可以在操作列启动或停止同步任務,在更多中可以對同步任務進行編輯、查看等操作。
-
已啟動的任務您可以在執行概況中看到任務啟動並執行基本情況,也可以單擊對應的概況地區查看執行詳情。

MySQL到Hive的整庫離線同步任務中:
-
如果您的任務同步步驟為全量同步,此處展示結構遷移以及全量同步。
-
如果您的任務同步步驟為增量同步,此處展示結構遷移以及增量同步處理。
-
如果您的任務同步步驟為全量同步+增量同步,此處展示結構遷移、全量同步以及增量同步處理。
-
資料開發相關情境
如果您有下遊資料依賴,需要進行資料開發操作的情境,可以參考節點調度配置,進行節點上下遊的設定,對應的周期任務節點資訊可以在此處周期配置列中查看。

後續步驟
任務啟動後,您可以點擊任務名稱,查看運行詳情,進行任務營運和調優。
按鈕,選擇手動輸入和內建變數進行拼接,產生目標表名。其中變數支援源端資料來源名,源端資料庫名和源端表名。





按鈕添加欄位。
提示中查看變數的具體含義。