Data Integration提供嚮導式的開發引導,您無需編寫任何代碼,通過在介面勾選資料來源與去向,並結合DataWorks調度參數,實現將源端單表或分庫分表的全量或增量資料周期性同步至目標資料表。本文為您介紹嚮導模式配置離線同步任務的常規配置,各資料來源配置存在一定差異,請以具體資料來源配置文檔為準。
背景資訊
Data Integration離線同步,為您提供資料讀取(Reader)和寫入外掛程式(Writer)實現資料的讀取與寫入,您可通過嚮導模式和指令碼模式配置離線同步任務,實現源端單表同步至目標端單表、源端分庫分表同步至目標端單表兩類資料同步情境。詳情請參見離線同步能力說明。
使用說明
部分資料來源不支援使用嚮導模式配置離線同步任務,您可以選擇資料來源後,根據介面提示,若當前資料來源不支援嚮導模式編輯任務,則單擊工具列中的表徵圖切換至指令碼模式繼續配置任務。詳情請參見通過指令碼模式配置離線同步任務。
嚮導模式的學習成本低,但嚮導模式無法支援部分進階功能。如果您需要實現更精細化的組態管理,您可以單擊工具列中的轉換指令碼表徵圖,切換到指令碼模式配置離線同步任務。
前提條件
已完成資料來源配置。在設定Data Integration同步任務之前,請確保已在DataWorks的資料來源管理中配置好所需的來源資料庫和目標資料庫。資料來源配置詳情請參見資料來源列表。
說明離線同步支援的資料來源及其配置詳情請參見支援的資料來源與讀寫外掛程式。
資料來源相關能力介紹詳情請參見:資料來源概述。
已購買合適規格的獨享Data Integration資源群組。詳情請參見:新增和使用獨享Data Integration資源群組。
獨享Data Integration資源群組與資料來源網路已打通。詳情請參見:網路連通方案。
進入資料開發介面
進入資料開發頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
開發流程
步驟一:建立離線同步節點
建立商務程序。詳情請參見:建立商務程序。
建立離線同步節點。
你可以通過以下兩種方式建立離線同步節點:
方式一:展開商務程序,按右鍵
。方式二:雙擊商務程序名稱,將Data Integration目錄下的離線同步節點直接拖拽至右側商務程序編輯面板。
根據介面提示建立離線同步節點。
步驟二:配置同步網路連結
選擇離線同步任務的資料來源和資料去向,以及用於執行同步任務的資源群組,並測試連通性。
還支援同步源端分庫分表資料至目標單表,詳情請參見:情境:配置分庫分表離線同步任務。
若資料來源與資源群組網路不通,請參考介面提示或文檔進行網路連通配置。詳情請參見:網路連通方案。
步驟三:配置資料來源與去向
在選擇資料來源地區,配置任務讀取與寫入的表,及同步的資料範圍。
各外掛程式配置存在一定差異,以下內容僅以常見配置為例進行說明,各外掛程式是否支援相關配置以及配置的具體實現,請以具體外掛程式配置文檔為準。詳情請參見支援的資料來源與讀寫外掛程式。
讀取端
操作
說明
配置同步範圍
當您在資料過濾文字框配置過濾條件時,執行同步任務時將只同步滿足過濾條件的資料。同時,過濾條件可以結合調度參數使用,實現過濾條件隨任務調度時間的動態變化,進而實現增量資料的同步。不同外掛程式增量同步處理配置與實現方式不同,關於增量資料同步配置詳情請參見:情境:配置增量資料離線同步任務。
說明在資料過濾和目標表相關配置中定義的變數,當單擊下一步,配置調度屬性時,您可以為此處定義的變數賦值。實現增量或全量資料寫入目標表對應時間分區等功能,關於調度參數的使用詳情請參見:調度參數支援的格式。
增量同步處理過濾條件的文法與資料庫文法基本一致,同步時,離線同步將拼接為完整SQL向對應資料來源抽取資料。
當不配置資料過濾條件時,預設同步該表全量資料。
關係型資料庫配置切分鍵
定義將源端待同步資料基於源端哪一個欄位進行切分,同步任務執行時將根據該欄位切分為多個task,以便並發、分批讀取資料。
說明推薦splitPk使用者使用表主鍵,因為表主鍵通常情況下比較均勻,因此切分出來的分區也不容易出現資料熱點。
目前splitPk僅支援整型資料切分,不支援字串、浮點和日期等其他類型 。如果您指定其他非支援類型,忽略splitPk功能,使用單通道進行同步。
如果不填寫splitPk,包括不提供splitPk或者splitPk值為空白,資料同步視作使用單通道同步該表資料 。
並非所有外掛程式均支援指定切分鍵配置任務切分邏輯,以上僅為樣本,請以具體外掛程式說明為準。詳情請參見支援的資料來源與讀寫外掛程式。
寫入端
操作
說明
配置同步前後執行語句
部分資料來源支援在同步前(資料寫入目標端資料來源前)與同步完成後(資料寫入目標端後),在目標端執行相關資料庫SQL。
樣本:MySQL Writer支援配置preSql與postSql,即在資料寫入MySQL前或後,可以執行一些MySQL命令。例如在MySQL Writer端匯入前準備語句(preSql)配置項中配置MySQL清空表命令
truncate table tablename
,實現同步前(寫入MySQL資料前)先清空表中的舊資料的操作。定義衝突時的寫入模式
定義路徑或主鍵等情境衝突時以何種方式寫入目標端。該配置根據資料來源本身特性及writer外掛程式支援情況,此處配置不同。您需要參考具體writer外掛程式進行配置。
步驟四:配置欄位對應關係
選擇資料來源和資料去向後,需要指定讀取端和寫入端列的映射關係,配置欄位對應關係後,任務將根據欄位對應關係,將源端欄位寫入目標端對應類型的欄位中。
同步過程中可能存在源端與目標端欄位類型不符,產生髒資料,導致資料無法正常寫入目標端,同步過程中關於髒資料的容忍條數,請參考下一步通道控制進行配置。
當源端某欄位未與目標端欄位進行映射時,源端該欄位資料將不會同步到目標端。
支援同名映射、同行映射。在使用過程中,您還可以:
為目標欄位賦值:通過添加一行的方式,為目標表添加常量、調度參數、內建變數。例如,'123','${調度參數}', '#{內建變數}#' 。
說明當單擊下一步,配置調度時,可以為調度參數賦值。關於調度參數的使用詳情請參見:調度參數支援的格式。
您可以通過手動添加內建變數,映射到目標欄位,將內建變數輸出到下遊。
各個外掛程式可用內建變數如下:
內建變數
變數說明
支援外掛程式
'#{DATASOURCE_NAME_SRC}#'
來來源資料源名稱
MySQL Reader
MySQL(分庫分表) Reader
PolarDB Reader
PolarDB(分庫分表) Reader
PostgreSQL Reader
'#{DB_NAME_SRC}#'
來源表所在的資料庫名稱
MySQL Reader
MySQL(分庫分表) Reader
PolarDB Reader
PolarDB(分庫分表) Reader
PostgreSQL Reader
'#{SCHEMA_NAME_SRC}#'
來源表所在的模式名稱
PolarDB Reader
PolarDB(分庫分表) Reader
PostgreSQL Reader
'#{TABLE_NAME_SRC}#'
來源表名稱
MySQL Reader
MySQL(分庫分表) Reader
PolarDB Reader
PolarDB(分庫分表) Reader
PostgreSQL Reader
編輯源端欄位:您可以通過單擊類型右側的表徵圖實現如下功能:
使用源端資料庫支援的函數,對欄位進行函數處理,例如,通過Max(id)控制僅同步最大值。
在欄位對應未拉取全部欄位的情況下,手動編輯源端欄位。
說明MaxCompute Reader暫不支援使用函數。
步驟五:配置通道
您可通過通道配置,控制資料同步過程相關屬性。
參數 | 描述 |
任務期望最大並發數 | 用於定義當前任務從源端並行讀取或並行寫入目標端的最大線程數。 說明
|
同步速率 | 用於控制同步速率。
說明 流量度量值是Data Integration本身的度量值,不代表實際網卡流量。通常,網卡流量是通道流量膨脹的1至2倍,實際流量膨脹取決於具體的資料存放區系統傳輸序列化情況。 |
錯誤記錄數控制(髒資料控制) | 用於定義髒資料閾值,及對任務的影響。 重要 當髒資料過多時,會影響同步任務的整體同步速度。
說明 髒資料認定標準:髒資料是對業務沒有意義,格式非法或者同步過程中出現問題的資料。單條資料寫入目標資料來源過程中發生了異常,則此條資料為髒資料。 因此只要是寫入失敗的資料均被歸類於髒資料。 例如,源端是VARCHAR類型的資料寫到INT類型的目標列中,則會因為轉換不合理導致髒資料不會成功寫入目的端。您可以在同步任務配置時,控制同步過程中是否允許髒資料產生,並且支援控制髒資料條數,即當髒資料超過指定條數時,任務失敗退出。 |
分散式處理能力 | 用於控制是否開啟分布式模式來執行當前任務。
如果您對於同步效能有比較高的訴求可以使用分布式模式。 另外分布式模式也可以使用機器的片段資源,對資源使用率友好。 重要
|
任務整體同步速度除受到上述配置影響外,還受源端資料來源效能,同步網路環境等多方面影響,關於同步速率說明與調優,詳情請參見離線同步提速或限速。
步驟六:配置調度屬性
周期性調度的離線同步任務需要配置任務自動調度時的相關屬性,此步驟為您介紹如何配置調度相關屬性。您可以進入離線同步節點的編輯頁面,單擊右側的調度配置,下文將為您介紹如何在同步任務中配置節點調度屬性。調度參數使用說明請參見Data Integration使用調度參數的相關說明。
配置節點調度屬性:用於為任務設定階段使用的變數賦值調度參數,您在上述配置中定義的變數均可以在此處進行賦值,支援賦值常量與變數。
時間屬性配置說明:用於定義任務在生產環境的周期調度方式。您可以在調度配置的時間屬性地區,配置任務組建循環執行個體的方式、調度類型、調度周期等屬性。
配置資源屬性:用於定義調度情境下,將當前任務下發至Data Integration任務執行資源時所使用的調度資源群組,您可以在調度配置的資源屬性地區,選擇任務調度運行時需要使用的資源群組。
說明Data Integration離線任務通過調度資源群組下發至對應的Data Integration任務執行資源組上運行,會產生調度相關費用,關於任務下發機制說明,請參見DataWorks資源群組概述。
步驟七:提交並發布任務
若任務需要進行周期性調度運行,您需要將任務發布至生產環境。關於任務發布,詳情請參見:發布任務。
後續步驟
任務發布至生產環境後,您可進入生產環境營運中心查看該調度任務,關於離線同步任務的運行與管理、狀態監控、資源群組營運等操作詳情請參見:離線同步任務營運。