Dataphin通過各個節點的調度依賴配置結果,有序的運行商務程序中各個節點,保障業務資料有效、適時地產出。本文為您介紹調度依賴實現流程與主要配置原則。
背景資訊
調度依賴就是節點間的上下遊依賴關係,在Dataphin中,上遊任務節點運行完成且運行成功,下遊任務節點才會開始運行。配置調度依賴後,可以保障調度任務在運行時能擷取到正確的資料(當前節點依賴的上遊節點成功運行後,Dataphin通過節點啟動並執行狀態識別到上遊表的最新資料已產生,下遊節點再去取數)。避免下遊節點取資料時,上遊表資料還未正常產出,導致下遊節點取數時出現問題。
操作步驟
在Dataphin首頁的頂部功能表列中,選擇研發 > 資料研發。
在開發頁面的頂部功能表列選擇專案(Dev-Prod模式需要選擇環境)。
在左側導覽列中選擇資料處理 > 計算任務。
在計算工作清單中,單擊目標計算任務,開啟對應計算任務頁簽。
單擊頁面右側邊欄的屬性,開啟屬性面板,並在調度依賴地區內配置以下參數。
上遊依賴
自動解析
當節點的任務類型為SQL時,您可以單擊自動解析,Dataphin將根據任務代碼自動解析擷取上遊任務和輸出表。解析後將在上遊依賴列表中添加解析出來的全部依賴表。您可查看解析出的依賴表詳情或進行編輯和刪除操作。更多資訊,請參見自動解析流程。
說明自動解析出的輸入表如果存在多個產出任務,預設將所有產出任務作為上遊依賴。
解析出的所有依賴表,依賴周期預設為本周期。
如果代碼中引用專案變數或不指定專案,則系統預設解析為生產專案名,以保證產生調度的穩定性。例如,開發專案名稱為
onedata_dev:如果代碼裡指定
select * from s_order,則調度解析依賴為onedata.s_order。如果代碼裡指定
select * from ${onedata}.s_order,則調度解析依賴為onedata.s_order。如果代碼裡指定
select * from onedata.s_order,則調度解析依賴為onedata.s_order。如果代碼裡指定
select * from onedata_dev.s_order,則調度解析依賴為onedata_dev.s_order。
添加根節點
若任務無對應上遊依賴時,您可單擊添加根節點作為當前任務的上遊依賴。
說明每個租戶或企業在初始化時都會有一個以virtual_root_node開頭的虛擬根節點。
添加本節點上周期
即該節點任務的調度需要依賴於本節點上一周期(前1天或前n小時)運行成功。
添加依賴
若自動解析無法解析出調度依賴關係或自動解析產生的上遊依賴配置與實際應用不符時,您可以手動單擊+添加依賴添加節點的上遊依賴。
重要添加依賴時,物理節點和邏輯表節點的依賴周期與依賴策略自動使用系統推薦的最佳設定。若您需要修改,您可以單擊依賴列表
編輯單個依賴的依賴周期和依賴策略。依賴周期:上遊任務執行個體的定時已耗用時間(起調時間)區間範圍。 一般情況下為當日,即區間範圍為當日[00:00~24:00)。
依賴策略:某些依賴周期內,可能存在多個執行個體,需要指定依賴策略。 只有一個執行個體時,依賴策略可以設定為任意選項。為了相容上遊任務可能的調度設定修改,僅支援相對路徑策略。
跨周期依賴的預設策略,請參見附錄2:跨周期依賴預設策略。
添加物理節點依賴
單擊添加依賴,選擇物理節點。

在添加依賴-物理節點對話方塊中,選擇一個或多個節點。可通過專案、節點類型、節點名稱或輸出表明來篩選目標節點。
單擊確定。
添加邏輯表節點
單擊添加依賴,選擇邏輯表節點。
在添加依賴-邏輯表節點對話方塊中,選擇一個或多個節點。可通過邏輯表類型、所屬的板塊、邏輯表名來篩選目標節點。
(可選)在節點列表中,單擊目標節點依賴欄位列的
表徵圖,可查看邏輯表所擁有的表欄位。單擊確定。
本節點輸出
系統將為您所建立的節點自動產生輸出名,若您需添加多個輸出名,您可單擊自動產生輸出名。
重要系統使用輸出名構建調度依賴圖,系統將自動產生輸出名,不建議人工幹預設定。
單擊確定,即可完成調度依賴配置。
依賴周期與依賴策略預覽
單擊目標離線計算任務的屬性,在屬性面板中定位至調度依賴地區。
在調度依賴地區的上遊依賴列表中,單擊目標依賴操作列的
表徵圖。在編輯依賴對話方塊中,查看依賴的節點名稱、依賴周期、依賴策略、節點依賴周期預覽等資訊。
依賴周期:上遊任務執行個體的定時已耗用時間(起調時間)區間範圍。一般情況下為當日,即區間範圍為當日[00:00~24:00)。
依賴策略:某些依賴周期內,可能存在多個執行個體,需要指定依賴策略。 只有一個執行個體時,依賴策略可以設定為任意選項。為了相容上遊任務可能的調度設定修改,僅支援相對路徑策略。
節點依賴周期預覽:查看指定業務日期的當前節點執行個體列表和所選上遊節點的執行個體列表。

區塊
說明
①所選上遊節點的執行個體列表
業務日期:根據依賴周期和所選的當前節點業務日期決定。
依賴周期為本周期(當日):業務日期與所選的當前節點業務日期一致。
依賴周期為上周期(前1日):業務日期為所選的當前節點業務日期 - 1天。
依賴周期為前N日:業務日期為所選的當前節點業務日期 - N天。
依賴周期為最近24小時:如果包含的執行個體跨了兩個業務日期,則業務日期展示為
{yyyy-MM-dd ~ yyyy-MM-dd}。
執行個體列表:展示業務日期下,所選上遊節點的總執行個體數。
當業務日期下,總執行個體數小於等於5時,執行個體列表中展示所有執行個體。
當業務日期下,總執行個體數大於5時:可單擊展開全部查看全部執行個體。
如果當前左側(所選上遊節點執行個體列表)執行個體被右側列表(當前節點的執行個體列表)當前選中的執行個體所依賴,且在左側列表中為第一個執行個體或最後一個執行個體,則列表中展示第一個執行個體和最後一個執行個體。
如果當前左側(所選上遊節點執行個體列表)執行個體被右側列表(當前節點的執行個體列表)當前選中執行個體所依賴,但不是第一個執行個體或最後一個執行個體,則列表中展示第一個執行個體、被右側選中執行個體所依賴的執行個體和最後一個執行個體。
執行個體列表中按照
執行個體n ({執行個體定時調度時間})格式,依次展示執行個體,其中n從1開始遞增。
②當前節點的執行個體列表
所選業務日期下,當前節點的總執行個體數。
當所選業務日期下,總執行個體數小於等於5時,執行個體列表中展示所有執行個體;當總執行個體數大於5時,執行個體列表中僅展示第一個執行個體和最後一個執行個體,可單擊展開全部查看全部執行個體。列表中預設選中第一個執行個體(執行個體1),可單擊執行個體切換選中執行個體。
執行個體列表中按照
執行個體n ({執行個體定時調度時間})格式,依次展示執行個體,其中n從1開始遞增。③右側選中執行個體依賴左側執行個體的連線
當依賴策略為第一個執行個體、最後一個執行個體、向後最近一個執行個體或向前最近一個執行個體時,連線為左側(所選上遊節點執行個體列表)單個執行個體與右側(當前節點的執行個體列表)選中執行個體的單條連線。
當依賴策略為全部執行個體時,左側(所選上遊節點執行個體列表)執行個體將被全部選中,此時連線代表左側(所選上遊節點執行個體列表)所有執行個體為右側(當前節點的執行個體列表)選中執行個體的全部依賴。
附錄1:初始預設依賴周期和依賴策略
本節點調度周期 | 上遊節點調度周期 | 上遊節點是否自依賴 | 預設依賴周期 | 預設依賴策略 |
日/周/月 | 日 | 是/否 | 本周期(當日) | 最後一個執行個體 |
日/周/月 | 小時/分鐘 | 否 | 本周期(當日) | 全部執行個體 |
日/周/月 | 小時/分鐘 | 是 | 本周期(當日) | 最後一個執行個體 |
月/周/日/小時/分鐘 | 月/周 | 是 | 本周期(當日) | 最後一個執行個體 |
月/周/日/小時/分鐘 | 月/周 | 否 | 本周期(當日) | 最後一個執行個體 |
小時/分鐘 | 日 | 是/否 | 本周期(當日) | 最後一個執行個體 |
小時/分鐘 | 小時/分鐘 | 是/否 | 本周期(當日) | 最後一個執行個體 |
附錄2:跨周期依賴預設策略
下表中,-表示不涉及。
本節點調度周期 | 上遊節點 | 上遊節點調度周期 | 上遊節點是否自依賴 | 預設依賴周期 |
月 | 本節點(自依賴) | - | - | 上周期(前 1 日) |
周 | 本節點(自依賴) | - | - | 上周期(前 1 日) |
日 | 本節點(自依賴) | - | - | 上周期(前 1 日) |
小時 | 本節點(自依賴) | - | - | 最近 24 小時 |
分鐘 | 本節點(自依賴) | - | - | 最近 24 小時 |
日/周/月 | 非本節點 | 日 | - | 本周期(當日) |
日/周/月 | 非本節點 | 小時/分鐘 | 否 | 本周期(當日) |
日/周/月 | 非本節點 | 小時/分鐘 | 是 | 本周期(當日) |
月/周/日/小時/分鐘 | 非本節點 | 月/周 | 是 | 本周期(當日) |
月/周/日/小時/分鐘 | 非本節點 | 月 | 否 | 本周期(當日) |
月/周/日/小時/分鐘 | 非本節點 | 周 | 否 | 本周期(當日) |
小時/分鐘 | 非本節點 | 日 | - | 本周期(當日) |
小時/分鐘 | 非本節點 | 小時/分鐘 | - | 本周期(當日) |