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

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

操作 | 說明 | ||||||||||||
重新整理映射 | 系統會自動列出您選擇的源端表,但目標表的具體屬性需要您重新整理確認後才會生效。
| ||||||||||||
編輯欄位類型映射(可選) | 系統存在預設的源端欄位類型與目標端欄位類型映射,您可以單擊表格右上方的編輯字段類型映射,自訂來源端表與目標端表欄位類型映射關係,配置完後單擊應用並刷新映射。 編輯欄位類型映射時,需要注意欄位類型轉換規則是否正確,否則會導致類型轉換失敗而產生髒資料,影響任務運行。 | ||||||||||||
目標表名映射自訂(可選) | 系統存在預設的表名建置規則:
可實現如下情境:
| ||||||||||||
編輯目標表結構(可選) | 系統將基於源端表結構自動產生目標表結構,常規情境下無需人工幹預。若需特殊處理,可通過以下方式自訂
| ||||||||||||
目標表欄位賦值 | 普通欄位會根據源端表和目標表的同名欄位進行自動對應,分區欄位和上述步驟中的新增欄位需要手動賦值。操作如下:
在賦值時支援賦值常量與變數,可在表欄位及分區欄位的賦值方式中進行切換類型,支援方式如下:
變數和周期調度參數均會在任務調度時,自動根據日期替換代碼中的參數。 | ||||||||||||
設定源端切分列 | 您可以在源端切分列中下拉選擇源端表中的欄位或選擇不切分。同步任務執行時將根據該欄位切分為多個task,以便並發、分批讀取資料。 推薦使用表主鍵作為源端切分列,不支援字串、浮點和日期等其他類型。 目前僅源端為MySQL時支援源端切分列。 | ||||||||||||
自訂進階參數 | 支援為子任務單獨設定寫端配置和運行時配置,請在完全明白對應參數的含義情況下再進行修改,避免產生任務延時、資源佔用過大導致阻塞其他任務、資料丟失等不可預料的問題。 | ||||||||||||
表類型 | 表類型:MaxCompute支援普通表、PK Delta Table、Append Delta Table。若目標表狀態為待建立,可在編輯目標表結構時選擇表類型,已有表無法更改類型。 Delta Table詳細介紹參見:Delta Table。 |
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管道。
步驟四:進階配置
進階參數配置
如果需要對任務做精細化配置,以滿足自訂同步需求,可以修改進階參數。
單擊介面右上方的進階配置,進入進階參數配置頁面。
根據參數提示,修改參數值,參數含義見參數名稱後的解釋。
也支援使用AI配置,輸入自然語言修改指令,如調整任務並發數,由大模型產生參數推薦值,您可以根據實際情況選擇是否接受AI產生的參數。

請在完全明白對應參數的含義情況下再進行修改,避免產生任務延時、資源佔用過大導致阻塞其他任務、資料丟失等不可預料的問題。
引擎參數
引擎參數在正常情況下無需配置,如有需要請在專業內部人員指導下使用,請聯絡支援人員。
步驟五:發布並執行任務
完成所有配置後,單擊頁面底部的保存,完成任務配置。
整庫同步任務不支援直接調試,需要發布至運維中心運行。因此建立或者編輯任務均需執行发布操作後方可生效。
發布時,若勾選发布后直接启动运行,則在發布時會同步啟動任務。否則,發布完成後,需要進入介面,在目標任務的操作列,手動啟動任務。
單擊任務列表中對應任務的名稱/ID,查看任務的詳細執行過程。
步驟六:配置警示規則
整庫離線同步任務的警示規則需在營運中心找到對應的子任務配置。
在列,擷取目標任務ID。
在列,根據整合任務的ID,找到對應的整庫離線子任務,如整合任務ID為
34862,增量同步處理周期子任務名稱為offline_odps_cyc_sync_mysql_test_timetest_to_mysql_test_timetest_34862,單擊該任務的,進入規則管理頁。在新建自定义规则,設定規則對象、觸發方式和报警行为等,更多資訊,請參見規則管理。
您可以在規則對象中搜尋已擷取的子任務ID,找到目標任務並為其設定警示。
管理同步任務
編輯任務
在介面,找到已建立的同步任務,單擊操作列的更多,單擊編輯,可以修改任務資訊,操作步驟同任務配置。
對於非運行狀態的任務,可以直接修改配置並儲存,發布後即可生效。
對於運行中的任務,編輯任務並發布時,若未選擇发布后直接启动运行,原有的操作按鈕將變為應用更新。您須單擊此按鈕,變更才會線上上環境中生效。
單擊應用程式更新後,系統會對變更內容執行停止,發布,重啟三個步驟。
若變更方式為新增表:
點擊更新後,新增該表的同步子任務,並立刻開始這個任務的結構遷移和一次性全量同步,隨後根據調度時間進行增量同步處理。
若變更方式為切換目標表,等同刪除舊錶後新增表:
點擊更新後,刪除舊錶子任務,產生新表子任務,並立刻開始新表任務的結構遷移和一次性全量同步,隨後新任務根據調度時間進行增量同步處理。
若修改其他資訊:
該表的結構遷移和一次性全量同步保持原樣,增量同步處理新產生的執行個體根據變更後配置,已產生的執行個體不受影響。
未修改的表均不受影響,不會重新運行。
查看任務
建立完成同步任務後,您可以在同步任務頁面查看當前已建立的同步工作清單及各個同步任務的基本資料。

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

配額與限制
調試限制:整庫同步任務不支援直接在Data Integration或資料開發介面調試,必須發布至營運中心運行。
切分列限制:設定源端切分列功能目前僅在源端為MySQL時支援。切分欄欄位類型必須為數字類型,不支援字串、浮點或日期類型。
結構變更限制:在編輯目標表結構時,不支援重新命名列名。對於已存在的目標表,無法更改其表類型。
後續步驟
任務啟動後,您可以點擊任務名稱,查看運行詳情,進行任務營運和調優。
常見問題
離線整庫同步任務常見問題請參見全增量同步處理任務常見問題。
按鈕,選擇手動輸入和內建變數進行拼接,產生目標表名。其中變數支援源端資料來源名,源端資料庫名和源端表名。





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