調度參數可以用於Data Integration任務配置的各個階段。本文為您介紹調度參數的典型應用情境。
背景資訊
DataWorksData Integration結合調度參數使用,可實現以下情境:
情境 | 說明 | 相關文檔 |
增量資料同步 | 部分Reader外掛程式可通過調度參數實現每次調度只同步指定時間範圍內的資料至目標端。同時,您可以結合補資料功能,實現將對應時間內的資料同步至目標端對應分區的功能。例如MySQL、Loghub、Kafka等。 | |
動態表名或檔案路徑 | 表名或檔案名稱使用調度參數,可實現每次同步不同表的目的。例如OSS、FTP,MySQL等外掛程式。部分外掛程式可能需要轉指令碼配置。 | |
在同步時為目標表某欄位賦值常量或時間變數 | 欄位對應時您可以手動編輯欄位並結合調度參數使用,為目標表某欄位賦值同步業務日期的常量值。具體外掛程式是否支援該操作請以各外掛程式的支援情況為準。 |
注意事項
在DataStudio介面單擊運行
或進階運行
時,僅支援手動為離線同步任務配置的變數賦值常量,由於Data Integration無法直接使用開發環境煙霧測試 (Smoke Test)功能,建議您通過以下方式驗證調度參數在調度情境下的替換情況。
SQL類型節點通過煙霧測試 (Smoke Test)驗證參數符合預期後,再將參數移入Data Integration任務使用。SQL類型節點調度參數測試,詳情請參見:配置並使用調度參數。
將離線同步節點提交至開發環境營運中心執行。
情境一:同步增量資料
Data Integration任務配置過程中,支援在資料過濾相關參數中使用調度參數,實現增量同步處理,同時您需要配置滿足資料庫的文法。增量同步處理詳情請參見:情境:配置增量資料離線同步任務。
樣本1:將LogHub每十分鐘內的增量資料同步至MaxCompute T-1分區。
平台將根據定時時間,每十分鐘產生一個調度執行個體,目標MaxCompute表分區名稱也以調度參數的方式指定,$bizdate表示業務日期,定時任務執行時,任務配置的分區運算式會替換為調度參數所表達的業務日期。調度參數運算式的詳細配置說明請參考文檔:配置並使用調度參數。
說明開始時間與結束時間為左閉右開區間。
任務配置要點:資料來源選擇LogHub,日誌開始時間填寫
${startTime},日誌結束時間填寫${endTime};資料去向選擇MaxCompute(ODPS),分區資訊填寫pt = ${bizdate},寫入模式選擇寫入前清理已有資料 (Insert Overwrite)。調度配置中定義以下參數:bizdate=$bizdatestartTime=${yyyymmddh24miss-10/24/60}endTime=${yyyymmddh24miss}
調度周期選擇日,定時調度時間設為00:05。
樣本2:每天0點將LogHub昨天的資料寫入MaxCompute T-1分區。
說明開始時間與結束時間為左閉右開區間。
在Data Integration離線同步任務中,按以下要求完成調度參數與資料來源的關聯配置:
在右側調度配置面板頂部添加三個調度參數:
startTime=${yyyymmdd}、endTime=${yyyymmdd}、bizdate=${yyyymmdd}。資料來源(Logstore):日誌開始時間填寫
${startTime}000000,日誌結束時間填寫${endTime}000000,批量條數設為256。資料去向(MaxCompute):分區資訊填寫
pt=${bizdate},清理規則選擇寫入前清理已有資料(Insert Overwrite)。調度配置:調度周期選擇日,定時調度時間設為
00:00,對應 cron 運算式00 00 00 * * ?,執行個體產生方式選擇T+1次日產生。
情境二:同步動態表名或檔案名稱中的資料
調度參數可以為Data Integration任務配置中定義的變數賦值。
樣本1:動態檔案名稱。
每日將OSS指定目錄下檔案名稱為時間日期結尾的檔案同步至MaxCompute對應分區中。
說明如果要實現同步動態表名或檔案名稱中的資料,部分外掛程式需要轉指令碼模式進行配置。同時,在使用變數的情況下,一般不支援資料預覽功能。
在資料同步任務的選擇資料來源步驟中,按如下方式配置:
資料來源:選擇 OSS 資料來源,文本類型為 CSV,檔案路徑設定為
/xx/user_log_${var1}.txt,資料行分隔符號為逗號,編碼 UTF-8。其中${var1}為調度參數,用於動態匹配檔案名稱中的日期。資料去向:選擇 MaxCompute(ODPS) 資料來源,目標表為
ods_raw_log_d,分區資訊設定為dt=${var1},寫入模式選擇寫入前清理已有資料(Insert Overwrite),Null 字元串轉為 Null 寫入選擇否。
在調度參數配置面板中,設定以下參數:
參數名
bizdate,參數值為$bizdate,來源為手動添加。參數名
var1,參數值為${yyyymmdd-1},來源為手動添加。
樣本2:動態表名。
MySQL 將源端具有時間格式規律的表通過調度參數實現動態表名配置,進而實現每天將 MySQL 對應業務表寫入 MaxCompute 表對應分區。如下代碼所示:
{ "version": "2.0", "steps": [ { "stepType": "mysql", "parameter": { "envType": 0, "useSpecialSecret": false, "column": [ "id" ], "tableComment": "", "connection": [ { "datasource": "xc_workshop_public", "table": [ "person_${var1}" ] } ], "where": "", "splitPk": "id", "encoding": "UTF-8" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "ds=${var1}", "truncate": true, "datasource": "odps_first", "isSupportThreeModel": false, "column": [ "id" ] } } ] }在參數配置地區,確認調度參數配置:參數
bizdate的參數值為$bizdate(手動添加),參數var1的參數值為${yyyymmdd-1}(代碼解析自動產生)。配置完成後,單擊調度參數預覽可預覽參數替換結果。
情境三:定義目標欄位
Data Integration任務配置過程中,支援您為目標表某欄位賦值同步業務日期的常量值。樣本:
在欄位對應地區,添加一行類型為常量的目標欄位,值設定為${bizdate}。在右側調度配置面板的參數地區,新增參數bizdate = $bizdate,使該調度參數在欄位對應中作為常量生效。
情境四:同步歷史資料
基於調度參數可根據業務時間將參數自動替換為對應的值這一特性,當您建立任務當天需要將歷史資料進行補齊時,您可使用補資料功能,補資料支援補歷史一段時間的資料或者未來一段時間的資料,調度參數將在任務調度時根據補資料選擇的業務時間自動替換為對應的值。補資料操作請參見:補資料執行個體營運。
離線同步任務中,bizdate調度參數需在以下三處聯動配置:
資料來源的資料過濾條件中引用
${bizdate},樣本:STR_TO_DATE('${bizdate}','%Y%m%d') <= gmt_modify_time AND gmt_modify_time < DATE_ADD(STR_TO_DATE('${bizdate}','%Y%m%d'), interval 1 day)資料去向的分區資訊中設定為
pt=${bizdate},清理規則選擇寫入前清理已有資料(Insert Overwrite)右側調度配置面板的參數中配置
bizdate=$bizdate,時間屬性中產生執行個體選擇T+1次日產生