DataWorks功能实践速览 — 参数透传
往期回顧:
- DataWorks 功能實踐速覽01期——數據同步解決方案:為您介紹不同場景下可選的數據同步方案。
- DataWorks 功能實踐速覽02期——獨享數據集成資源組:為您介紹進行數據同步時,可使用的資源組與網絡連通方案、注意事項。
- DataWorks 功能實踐速覽03期——生產開發環境隔離:為您介紹DataWorks通過標準模式提供開發環境與生產環境隔離及不同環境的權限要求。
通過往期的介紹,您已經了解到在DataWorks上進行任務運行的最關鍵的幾個知識點,接下來為您逐步介紹如何通過DataWorks的任務節點實現最常見的數據開發場景。本期為您介紹如何在DataWorks上實現參數透傳,即把上游任務的參數透傳到下游任務。
功能推薦:賦值節點與參數節點
在阿里云DataWorks中,一個數據開發任務最終是拆解為多個節點任務,并通過設置節點間上下游關系最終形成一個完整的數據開發業務流程,如下圖所示。
以上為一個簡單的示例,在實際應用時,我們通常會碰到這樣的情況,拆解出來的上游節點任務會生成一些參數,或上游節點的運行結果,需要在下游節點任務中應用到,這就需要數據開發任務能夠實現參數/節點運行結果在各個節點間的透傳,根據不同的透傳需求,DataWorks提供了兩種特殊節點可以實現:賦值節點與參數節點。
Part1:賦值節點 - 實現任務結果透傳
當您需要將上游節點任務的結果提供給下游節點使用時,您可使用賦值節點,實現任務結果在節點間傳遞。賦值節點支持ODPS SQL、SHELL和Python三種賦值語言,且根據賦值規則,自動為您添加賦值參數(outputs參數),便于其他節點引用。
使用賦值節點進行透傳參數時,需關注以下三個要點。
1.1賦值節點與上下游節點間的依賴關系
如上圖所示,使用賦值節點透傳參數時:
- 賦值節點(fuzhi_python、fuzhi_sql、fuzhi_shell)需作為引用賦值節點參數節點(down_compare)的上游節點,下游節點需要與賦值節點設置直接依賴關系(賦值節點為下游節點的一層父節點)。
- 賦值節點作為上游與其它節點配合使用時,請務必先提交賦值節點,以便下游節點在配置時可以解析出參數。
1.2賦值節點與下游節點的上下文參數透傳關系
如下圖所示,通過賦值節點與引用節點的調度配置中的上下文參數配置,形成參數透傳引用關系:
- 賦值節點(fuzhi_python、fuzhi_sql、fuzhi_shell)需將待賦值給下游的參數添加為節點上下文中的本節點輸出參數。
- 下游引用賦值參數的節點需將待引用的賦值參數添加為節點上下文中的本節點輸入參數。
說明:
- 賦值節點參數傳遞只支持傳遞給一層子節點,不支持跨節點傳遞。
1.3賦值語言與賦值結果
引用賦值節點結果時,賦值節點的參數輸出格式與下游節點引用參數方式有關系,不同語言的賦值參數(outputs參數)賦值說明如下。
賦值語言 | outputs參數取值 | outputs參數格式 | outputs參數大小限制 |
ODPS SQL | 最后一行SELECT語句的輸出作為賦值參數,添加為賦值節點的本節點輸出參數,供其他節點引用。 | 將輸出結果作為一個二維數組傳遞至下游。 | 傳遞值最大為2 MB。如果賦值語句的輸出結果超過該限制,賦值節點會運行失敗。 |
SHELL | 最后一行ECHO語句的數據,添加為賦值節點的本節點輸出參數,供其他節點引用。 | 將輸出結果基于逗號(,)分割為一維數組。 | |
Python | 最后一行PRINT語句的輸出,添加為賦值節點的本節點輸出參數,供其他節點引用。 | 將輸出結果基于逗號(,)分割為一維數組。 |
更多賦值節點的介紹可進入幫助中心查看文檔配置賦值節點。
Part2:參數節點 - 實現參數透傳
參數節點是一種特殊的虛擬節點,用于管理業務流程中的參數和實現參數在任務節點中傳遞,支持常量參數、變量參數和透傳上游節點的參數,需要引用參數的節點直接依賴參數節點即可。
參數節點本質上是一種虛擬節點,不會運行數據計算任務產生數據,主要用于跨節點傳參、參數管理的場景。
2.1跨節點傳參
當數據開發的業務流程中,某個下游節點的任務需要獲取多個、多級上游節點的輸出參數時,您可以使用參數節點,將下游節點需要獲取的所有參數統一添加至參數節點中,后續下游節點可直接掛在參數節點之下,即可獲取到所有所需參數。
以上圖為例,sql_7節點需要獲取sql_1、sql_3、sql_4節點的輸出參數,此時您可以新增一個參數節點,作為sql_1、sql_3、sql_4的下游節點,并將所有sql_7所需參數添加至參數節點中,將sql_7的掛在此參數節點下游,則sql_7可直接通過參數節點獲取到所有所需參數。
2.2參數管理
當數據開發的業務流程中,下游節點的任務需要使用某些常量參數、變量參數時,您可以使用參數節點,將下游節點需要使用的參數均添加至參數節點中,需使用參數的下游節點直接掛在參數節點之下,即可獲取使用所需參數,便于整個業務流程中對所有使用的參數進行統一管理。
以上圖為例,sql_3、sql_4、sql_5、sql_7節點均需使用參數,此時您可以新增一個參數節點,將各個下游節點使用的參數都添加至參數節點中,將需要使用參數的節點掛在此參數節點下游。
更多參數節點的介紹可進入幫助中心查看文檔創建參數節點。
Part3:賦值節點與參數節點的對比
對比項 | 賦值節點 | 參數節點 |
透傳場景 | 節點運行結果透傳 | 節點參數透傳 |
透傳限制 | 僅能透傳至一層子節點,不支持跨節點透傳 | 可跨節點透傳 |
節點屬性 | 一種任務節點,節點中運行賦值任務,支持ODPS SQL、SHELL和Python三種賦值語言 | 本質上是一種虛擬節點,不會運行任務產生數據 |
原文鏈接:https://developer.aliyun.com/article/790764?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的DataWorks功能实践速览 — 参数透传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dubbo 和 HSF 在阿里巴巴的实践
- 下一篇: 联邦家私:用宜搭一周上线售后管理系统,打