全部產品
Search
文件中心

DataWorks:通過指令碼模式配置離線同步任務

更新時間:Oct 15, 2025

當需要實現更精細化的離線任務配置時,可以使用指令碼模式,通過編寫資料同步的JSON指令碼並結合DataWorks調度參數,將源端單表或分庫分表的全量或增量資料周期性同步至目標資料表。本文為您介紹指令碼模式配置離線同步任務的常見配置,各資料來源配置存在一定差異,請以資料來源列表中各資料來源配置詳情為準。

適用範圍

以下情境可使用指令碼模式配置同步任務:

  • 資料來源本身不支援使用嚮導模式配置任務。

    說明

    資料來源是否支援嚮導模式,以介面提示為準。

    image.png

  • 部分資料來源的配置參數僅支援使用指令碼模式配置任務。

  • 部分不支援在DataWorks建立的資料來源可以通過指令碼模式配置。

準備工作

步驟一:建立離線同步節點

新版資料開發

  1. 登入DataWorks控制台,切換至目標地區,單擊左側導覽列的資料開發與營運 > 資料開發,在下拉框中選擇對應工作空間後單擊進入Data Studio

  2. 建立工作流程。詳情請參見:工作流程編排

  3. 建立離線同步節點。可以通過以下兩種方式建立離線同步節點:

    • 方式一:單擊工作流程列表右上方的image,選擇建立節點 > Data Integration > 離線同步

    • 方式二:雙擊工作流程名稱,將Data Integration目錄下的離線同步節點直接拖拽至右側商務程序編輯面板。

  4. 配置節點基本資料和資料來源去向後,單擊確認,完成建立。

舊版資料開發

  1. 登入DataWorks控制台,切換至目標地區,單擊左側導覽列的資料開發與營運 > 資料開發,在下拉框中選擇對應工作空間後單擊進入資料開發

  2. 建立商務程序。詳情請參見:建立商務程序

  3. 建立離線同步節點。可以通過以下兩種方式建立離線同步節點:

    • 方式一:展開商務程序,按右鍵Data Integration > 建立節點 > 離線同步

    • 方式二:雙擊商務程序名稱,將Data Integration目錄下的離線同步節點直接拖拽至右側商務程序編輯面板。

  4. 根據介面提示建立離線同步節點。

步驟二:配置資料來源和資源群組

嚮導模式可在任意步驟切換為指令碼模式。為確保指令碼配置完整,我們推薦:

  1. 先在嚮導中通過介面選擇好資料來源和資源群組,並測試網路連通性

  2. 再切換到指令碼模式。

系統會自動將這些資訊填充到產生的JSON指令碼中。

或者,您也可以直接切換,然後在指令碼模式下手動設定:在JSON代碼中指定資料來源,並在右側的進階配置面板中設定資源群組和任務所需資源大小。

說明

步驟三:轉指令碼模式並匯入模板

單擊工具列中的轉換指令碼image表徵圖。

image

如果指令碼還未配置,您可以通過單擊工具列中的匯入模板表徵圖,根據介面提示快速匯入指令碼模板。

步驟四:編輯指令碼,配置同步任務

指令碼模式通用配置如下:

說明
  • type、version欄位為預設值,不可修改。

  • 您可忽略指令碼中Processor相關配置(不需要配置)。

指令碼

  1. 配置讀端與寫端的基礎資訊與欄位對應關係。

    重要

    各外掛程式配置存在一定差異,以下內容僅以常見配置為例進行說明,各外掛程式是否支援相關配置以及配置的具體實現,請以具體外掛程式配置文檔為準。詳情請參見資料來源列表中各個資料來源的Reader指令碼DemoWriter指令碼Demo

    通過配置參數您可以:

    • 讀取端(Reader)

      操作

      說明

      where(配置同步範圍)

      • 部分源端類型支援資料過濾。您可以指定一個條件(WHERE子句,但無需填寫where關鍵字)來篩選源端資料,任務運行時將僅同步滿足該條件的資料。詳情參見:情境:配置增量資料離線同步任務

      • 為了實現增量同步處理,您可以將此過濾條件與調度參數結合使用,使其動態變化。例如,通過gmt_create >= '${bizdate}',任務每天運行時都將只同步當天的新增資料。同時,在配置調度屬性時,需要為此處定義的變數賦值。詳情參見:調度參數支援的格式

        不同資料來源(外掛程式)的增量同步處理配置方法有所不同。
      • 當不配置資料過濾條件時,預設同步該表全量資料。

      splitPk(關係型資料庫配置切分鍵)

      定義將源端待同步資料基於源端哪一個欄位進行切分,同步任務執行時將根據該欄位切分為多個task,以便並發、分批讀取資料。

      • 推薦splitPk使用者使用表主鍵,因為表主鍵通常情況下比較均勻,因此切分出來的分區也不容易出現資料熱點。

      • 目前splitPk僅支援整型資料切分,不支援字串、浮點和日期等其他類型 。如果您指定其他非支援類型,將會忽略splitPk功能,使用單通道進行同步。

      • 如果不填寫splitPk,包括不提供splitPk或者splitPk值為空白,資料同步視作使用單通道同步該表資料 。

      • 並非所有外掛程式均支援指定切分鍵配置任務切分邏輯,以上僅為樣本,請以具體外掛程式說明為準。詳情請參見支援的資料來源及同步方案

      column(定義源端欄位)

      在column的數組中定義源端需要同步的欄位。支援將常量、變數及函數作為自訂欄位寫入目的端。例如,‘123’、'${變數名}'、'now()'等。

    • 寫入端(Writer)

      操作

      說明

      preSql&postSql(配置同步前後執行語句)

      部分資料來源支援在同步前(資料寫入目標端資料來源前)與同步完成後(資料寫入目標端後),在目標端執行相關資料庫SQL。

      樣本:MySQL Writer支援配置preSql與postSql,即在資料寫入MySQL前或後,可以執行一些MySQL命令。例如在MySQL Writer端匯入前準備語句(preSql)配置項中配置MySQL清空表命令truncate table tablename,實現同步前(寫入MySQL資料前)先清空表中的舊資料的操作。

      writeMode(定義衝突時的寫入模式)

      定義路徑或主鍵等情境衝突時以何種方式寫入目標端。該配置根據資料來源本身特性及writer外掛程式支援情況,此處配置不同。您需要參考具體writer外掛程式進行配置。

  2. 通道控制。

    您可以在setting域中進行效率配置,主要包括並發數設定、同步速率設定、同步髒資料設定等資訊。

    參數

    描述

    executeMode(分散式處理能力)

    用於控制是否開啟分布式模式來執行當前任務。

    • distribute:開啟分散式處理能力。分布式執行模式可以將您的任務切片分散到多台執行節點上並發執行,進而做到同步速度隨執行叢集規模水平擴充,突破單機執行瓶頸。

    • null:不開啟分散式處理能力。配置的並發資料僅僅是單機上的進程並發,無法利用多機聯合計算。

    重要
    • 如果使用獨享Data Integration資源群組,且只有1台機器,不建議使用分布式,因為無法利用多機資源能力。

    • 如果單機已經滿足速度需要,建議優選單機模式,簡化任務執行模式。

    • 並發數大於等於8個才能開啟分散式處理能力。

    • 部分資料與支援分布式模式執行任務,詳情請參見具體外掛程式配置文檔。

    • 開啟分散式處理開關會佔用更多資源,如運行時報錯記憶體溢出(OOM),可嘗試關閉此開關。

    concurrent(任務期望最大並發數)

    用於定義當前任務從源端並行讀取或並行寫入目標端的最大線程數。

    說明

    由於資源規格等原因,實際執行時並發數可能小於等於此處配置的並發數,調試資源群組收費將按照實際執行的並發數收費。詳情請參見:效能指標

    throttle(同步速率)

    用於控制同步速率。

    • true:限流。以保護讀取端資料庫,避免抽取速度過大,給源庫造成太大的壓力。限速最小配置為1MB/S。

      說明

      throttle設定為true時,您還需要設定mbps(同步速率)參數。

    • false:不限流。在不限流的情況下,任務將在所配置的並發數的限制基礎上,提供現有硬體環境下最大的傳輸效能。

    說明

    流量度量值是Data Integration本身的度量值,不代表實際網卡流量。通常,網卡流量是通道流量膨脹的1至2倍,實際流量膨脹取決於具體的資料存放區系統傳輸序列化情況。

    errorLimit(錯誤記錄數控制)

    用於定義髒資料閾值,及對任務的影響。

    重要

    當髒資料過多時,會影響同步任務的整體同步速度。

    • 不配置時預設允許髒資料,即任務產生髒資料時不影響任務執行。

    • 配置為0,表示不允許髒資料存在。如果同步過程中產生髒資料,任務將失敗退出。

    • 允許髒資料並設定其閾值時:

      • 若產生的髒資料在閾值範圍內,同步任務將忽略髒資料(即不會寫入目標端),並正常執行。

      • 若產生的髒資料超出閾值範圍,同步任務將失敗退出。

    說明

    髒資料認定標準:髒資料是對業務沒有意義,格式非法或者同步過程中出現問題的資料。單條資料寫入目標資料來源過程中發生了異常,則此條資料為髒資料。 因此只要是寫入失敗的資料均被歸類於髒資料。

    例如,源端是VARCHAR類型的資料寫入INT類型的目標列中,則會因為轉換不合理導致髒資料無法成功寫入目的端。您可以在同步任務配置時,控制同步過程中是否允許髒資料產生,並且支援控制髒資料條數,即當髒資料超過指定條數時,任務失敗退出。

    說明

    任務整體同步速度除受到上述配置影響外,還受源端資料來源效能,同步網路環境等多方面影響,關於同步速率說明與調優,詳情請參見離線同步任務調優

步驟五:配置調度屬性

周期性調度的離線同步任務需要配置任務自動調度時的相關屬性,進入離線同步節點的編輯頁面,單擊右側的調度配置,配置節點調度屬性。

您需為同步任務配置調度參數、調度策略、調度時間和調度依賴,配置方式與其他資料開發節點一樣。此處不再重複敘述。

調度參數使用說明請參見:調度參數在Data Integration的典型應用情境

步驟六:提交並發布任務

  • 配置調試參數。

    在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於測試回合同步任務使用。

    配置項

    配置說明

    資源群組

    選擇與資料來源連通的資源群組。

    指令碼參數

    為資料同步中的預留位置參數進行賦值。例如:若Data Integration中配置了${bizdate}參數,則需配置格式為yyyymmdd格式的日期參數。

  • 運行任務。

    單擊工具列的image運行按鈕,可以在資料開發中對任務進行運行調試。後續,您可以建立目標表類型對應的節點類型來查詢目標表資料,確認同步後的資料是否符合預期。

  • 發布任務。

    任務測試回合成功後,若任務需要進行周期性調度運行,您需要單擊節點編輯頁面上方的image按鈕,將任務發布至生產環境。關於任務發布,詳情請參見:發布任務

後續步驟

任務發布至生產環境後,您可進入生產環境營運中心查看該調度任務,關於離線同步任務的運行與管理、狀態監控、資源群組營運等操作詳情請參見:離線同步任務營運

相關文檔