DataWorks 如何设置调度依赖
DataWorks 新版本在配置任務依賴的時候,是根據本節點輸出名稱作為關聯項來給任務間設置依賴關系的,那我們應該如何配置任務的輸入輸出呢。
如何配置任務的本節點輸入
本節點輸入有兩種配法,一種是使用代碼自動解析功能,解析出任務的依賴;另一種是手動輸入任務依賴(手動輸入父節點的本節點輸出名稱)。
敲黑板:手動輸入上游節點時,輸入的是父節點本節點輸出名稱,如果父節點任務名稱和父節點的本節點輸出名稱不一致的話,一定不要輸錯了。
在配置上游節點的時候,經常會遇到一個問題:通過自動解析出來的上游節點,是一個無效的上游依賴。那如何識別一個依賴是否有效呢,可以查看解析出來的上游依賴,在父節點ID這一列是否有值。
任務依賴的配置,實質上是給兩個節點設置節點間的依賴關系,只有真實存在的節點,才能夠設置上有效的依賴關系,任務依賴才能設置成功。
無效的上游依賴
那遇到無效的上游依賴時,應該如何處理呢。
Case 1:
Case 2:
這個時候很明顯了,解析出來的父節點輸出名稱是不存在的,那有可能project_b_name.pm_table_b這個表,是沒有產出任務的,或者這個表產出任務的本節點輸出配置的不對,導致無法解析出來。
那解決方案有兩個:
敲黑板:手動輸入上游節點時,輸入的是父節點本節點輸出名稱,如果父節點任務名稱和父節點的本節點輸出名稱不一致的話,一定不要輸錯了。
舉個例子吧:有一個上游節點A,A的本節點輸出名稱是A1;有一個下游節點B需要依賴A,這個時候應該在依賴上游節點的輸入框中,輸入A1,并點擊右側的加號進行添加。
同步任務如何配置上游依賴
我的表是從源庫抽取過來的,沒有上游了,你告訴我咋辦吧。
那就點一下使用項目根節點吧。
如何配置任務的本節點輸出
配置本節點輸入好麻煩,有一點點不太想寫代碼,有啥好方法沒。
下面給大家講解一下,在阿里內部是如何高效配置本節點輸出的。
懶人法:本節點名稱、本節點輸出名稱、本節點輸出表名,三名合一,一招鮮,吃遍天。
這個三名合一有幾個好處:
自動解析
自動解析:通過代碼自動解析調度依賴關系。
底層實現原理:代碼中只能拿到表名,如何根據表名解析出對應的產出任務,如果表名和任務名一樣該有多好找啊。
如odps sql類型節點代碼如下:
INSERT OVERWRITE TABLE pm_table_a SELECT * FROM project_b_name.pm_table_b ;解析出來的依賴關系如下:
系統會判斷這個節點應該是要依賴project_b_name產出 pm_table_b 的節點,同時本節點最終產出 pm_table_a ,因此解析父節點輸出名稱為 project_b_name.pm_table_b,本節點的輸出名稱為本project_name.pm_table_a。(本項目名稱為test_pm_01)
- 如果不想用從代碼解析到的依賴,那么就選擇”否”。
- 如果代碼里有很多表是臨時表如t_開頭的表為臨時表,那么這個表是不會被解析為調度依賴。臨時表的定義可以通過項目配置來定義以什么開頭的表名為臨時表。
- 如果代碼里一個表名即是產出表又是被引用表(被依賴表)則解析時只解析為產出表。
- 如果代碼里一個表名被多次引用或者被多次產出,那么解析時只解析一個調度依賴關系。
注意:默認情況下,表名為t 開頭的會被當成臨時表,自動解析不解析臨時表。如果t開頭不是臨時表,請聯系自己的項目管理員到項目配置中進行修改,修改地址為項目配置。
如何刪除某表的輸入輸出
自在進行數據開發的時候,經常會使用到靜態表(數據通過本地文件上傳到表中),這部分靜態數據其實是沒有產出任務的,這時候在配置依賴的時候,就需要將靜態表給刪除輸入,若靜態表的表名又不滿足t開頭,不會被當成臨時表,那么應該如何處理呢。
實際上就是:自動依賴解析出了一堆不需要的依賴,怎么干掉它們...
這種情況,可以在代碼中選中表名,點擊刪除輸入。
另外再給一個小貼士:
大家使用DataWorks 2.0版本的時候,大部分都是從1.0版本遷移過來的,我們會將遷移過來的DataWorks任務的本節點輸出默認置為項目名.節點名。
一定要看
當任務依賴配置完成以后,提交的窗口會有一個選項,當輸入輸出和代碼血緣分析不匹配時,我確認繼續執行提交操作。
這個大前提是:我確認依賴關系是正確的,如果不能確認的時候,再按照上面的方法來確認一下依賴關系吧。
關于DataWorks V2.0版本還有啥使用上的疑惑,就加入我們的釘釘群吧,有專業的技術支持同學接客。
DataWorks數加交流0群
群號:11718465
也可以掃碼加群:
總結
以上是生活随笔為你收集整理的DataWorks 如何设置调度依赖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java入门系列-11-类和对象
- 下一篇: 阿里云人脸属性API,我已经成功了(高兴