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* FROMproject_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
也可以掃碼加群: