天天看點

DataWorks功能實踐速覽 — 參數透傳

簡介: DataWorks功能實踐系列,幫助您解析業務實作過程中的痛點,提高業務功能使用效率!
DataWorks功能實踐速覽 — 參數透傳

往期回顧:

  • DataWorks 功能實踐速覽01期——資料同步解決方案:為您介紹不同場景下可選的資料同步方案。
  • DataWorks 功能實踐速覽02期——獨享資料內建資源組:為您介紹進行資料同步時,可使用的資源組與網絡連通方案、注意事項。
  • DataWorks 功能實踐速覽03期——生産開發環境隔離:為您介紹DataWorks通過标準模式提供開發環境與生産環境隔離及不同環境的權限要求。

通過往期的介紹,您已經了解到在DataWorks上進行任務運作的最關鍵的幾個知識點,接下來為您逐漸介紹如何通過DataWorks的任務節點實作最常見的資料開發場景。本期為您介紹如何在DataWorks上實作參數透傳,即把上遊任務的參數透傳到下遊任務。

功能推薦:指派節點與參數節點

在阿裡雲DataWorks中,一個資料開發任務最終是拆解為多個節點任務,并通過設定節點間上下遊關系最終形成一個完整的資料開發業務流程,如下圖所示。

DataWorks功能實踐速覽 — 參數透傳

以上為一個簡單的示例,在實際應用時,我們通常會碰到這樣的情況,拆解出來的上遊節點任務會生成一些參數,或上遊節點的運作結果,需要在下遊節點任務中應用到,這就需要資料開發任務能夠實作參數/節點運作結果在各個節點間的透傳,根據不同的透傳需求,DataWorks提供了兩種特殊節點可以實作:指派節點與參數節點。

Part1:指派節點 - 實作任務結果透傳

當您需要将上遊節點任務的結果提供給下遊節點使用時,您可使用指派節點,實作任務結果在節點間傳遞。指派節點支援ODPS SQL、SHELL和Python三種指派語言,且根據指派規則,自動為您添加指派參數(outputs參數),便于其他節點引用。

使用指派節點進行透傳參數時,需關注以下三個要點。

1.1指派節點與上下遊節點間的依賴關系

DataWorks功能實踐速覽 — 參數透傳

如上圖所示,使用指派節點透傳參數時:

  • 指派節點(fuzhi_python、fuzhi_sql、fuzhi_shell)需作為引用指派節點參數節點(down_compare)的上遊節點,下遊節點需要與指派節點設定直接依賴關系(指派節點為下遊節點的一層父節點)。
  • 指派節點作為上遊與其它節點配合使用時,請務必先送出指派節點,以便下遊節點在配置時可以解析出參數。

1.2指派節點與下遊節點的上下文參數透傳關系

如下圖所示,通過指派節點與引用節點的排程配置中的上下文參數配置,形成參數透傳引用關系:

DataWorks功能實踐速覽 — 參數透傳
  • 指派節點(fuzhi_python、fuzhi_sql、fuzhi_shell)需将待指派給下遊的參數添加為節點上下文中的本節點輸出參數。
  • 下遊引用指派參數的節點需将待引用的指派參數添加為節點上下文中的本節點輸入參數。

說明:

  • 指派節點參數傳遞隻支援傳遞給一層子節點,不支援跨節點傳遞。

1.3指派語言與指派結果

引用指派節點結果時,指派節點的參數輸出格式與下遊節點引用參數方式有關系,不同語言的指派參數(outputs參數)指派說明如下。

指派語言 outputs參數取值 outputs參數格式 outputs參數大小限制
ODPS SQL 最後一行SELECT語句的輸出作為指派參數,添加為指派節點的本節點輸出參數,供其他節點引用。 将輸出結果作為一個二維數組傳遞至下遊。 傳遞值最大為2 MB。如果指派語句的輸出結果超過該限制,指派節點會運作失敗。
SHELL 最後一行ECHO語句的資料,添加為指派節點的本節點輸出參數,供其他節點引用。 将輸出結果基于逗号(,)分割為一維數組。
Python 最後一行PRINT語句的輸出,添加為指派節點的本節點輸出參數,供其他節點引用。 将輸出結果基于逗号(,)分割為一維數組。

更多指派節點的介紹可進入幫助中心檢視文檔配置指派節點。

Part2:參數節點 - 實作參數透傳

參數節點是一種特殊的虛拟節點,用于管理業務流程中的參數和實作參數在任務節點中傳遞,支援常量參數、變量參數和透傳上遊節點的參數,需要引用參數的節點直接依賴參數節點即可。

參數節點本質上是一種虛拟節點,不會運作資料計算任務産生資料,主要用于跨節點傳參、參數管理的場景。

2.1跨節點傳參

當資料開發的業務流程中,某個下遊節點的任務需要擷取多個、多級上遊節點的輸出參數時,您可以使用參數節點,将下遊節點需要擷取的所有參數統一添加至參數節點中,後續下遊節點可直接挂在參數節點之下,即可擷取到所有所需參數。

DataWorks功能實踐速覽 — 參數透傳

以上圖為例,sql_7節點需要擷取sql_1、sql_3、sql_4節點的輸出參數,此時您可以新增一個參數節點,作為sql_1、sql_3、sql_4的下遊節點,并将所有sql_7所需參數添加至參數節點中,将sql_7的挂在此參數節點下遊,則sql_7可直接通過參數節點擷取到所有所需參數。

2.2參數管理

當資料開發的業務流程中,下遊節點的任務需要使用某些常量參數、變量參數時,您可以使用參數節點,将下遊節點需要使用的參數均添加至參數節點中,需使用參數的下遊節點直接挂在參數節點之下,即可擷取使用所需參數,便于整個業務流程中對所有使用的參數進行統一管理。

DataWorks功能實踐速覽 — 參數透傳

以上圖為例,sql_3、sql_4、sql_5、sql_7節點均需使用參數,此時您可以新增一個參數節點,将各個下遊節點使用的參數都添加至參數節點中,将需要使用參數的節點挂在此參數節點下遊。

更多參數節點的介紹可進入幫助中心檢視文檔建立參數節點。

Part3:指派節點與參數節點的對比

對比項 指派節點 參數節點
透傳場景 節點運作結果透傳 節點參數透傳
透傳限制 僅能透傳至一層子節點,不支援跨節點透傳 可跨節點透傳
節點屬性 一種任務節點,節點中運作指派任務,支援ODPS SQL、SHELL和Python三種指派語言 本質上是一種虛拟節點,不會運作任務産生資料
原文連結:

https://developer.aliyun.com/article/790764?

版權聲明: 本文内容由阿裡雲實名注冊使用者自發貢獻,版權歸原作者所有,阿裡雲開發者社群不擁有其著作權,亦不承擔相應法律責任。具體規則請檢視《阿裡雲開發者社群使用者服務協定》和《阿裡雲開發者社群知識産權保護指引》。如果您發現本社群中有涉嫌抄襲的内容,填寫侵權投訴表單進行舉報,一經查實,本社群将立刻删除涉嫌侵權内容。