日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

賦值節(jié)點(diǎn)

更新時(shí)間:

當(dāng)您需要將上游節(jié)點(diǎn)任務(wù)的查詢或輸出結(jié)果提供給下游節(jié)點(diǎn)使用時(shí),可通過(guò)賦值節(jié)點(diǎn)實(shí)現(xiàn)。賦值節(jié)點(diǎn)支持ODPS SQL、SHELL和Python三種賦值語(yǔ)言,將節(jié)點(diǎn)最后一條查詢或輸出結(jié)果自動(dòng)賦值給節(jié)點(diǎn)自帶的輸出參數(shù)(outputs),便于賦值節(jié)點(diǎn)的下游節(jié)點(diǎn)引用。您可結(jié)合節(jié)點(diǎn)上下文配置,參考本文使用賦值節(jié)點(diǎn)。

注意事項(xiàng)

  • 賦值節(jié)點(diǎn)功能說(shuō)明

    • 賦值節(jié)點(diǎn)參數(shù)傳遞只支持傳遞給一層子節(jié)點(diǎn),不支持跨節(jié)點(diǎn)傳遞。

    • 賦值節(jié)點(diǎn)只能將最后一條查詢或輸出結(jié)果通過(guò)自帶輸出參數(shù)傳遞給下游。

    • 賦值節(jié)點(diǎn)的Python賦值語(yǔ)言使用的Python版本為Python 2.0。

    • 賦值節(jié)點(diǎn)代碼中不支持添加注釋,添加注釋可能導(dǎo)致運(yùn)行結(jié)果有誤。

  • 賦值節(jié)點(diǎn)版本及賦值參數(shù)說(shuō)明

    • 部分節(jié)點(diǎn)可通過(guò)節(jié)點(diǎn)上下文中的賦值參數(shù),達(dá)到與賦值節(jié)點(diǎn)相同的目的(例如,EMR Hive、EMR Spark SQL、ODPS Script、Hologres SQL、AnalyticDB for PostgreSQL和MySQL節(jié)點(diǎn)),賦值參數(shù)的使用與賦值節(jié)點(diǎn)一致,添加賦值參數(shù)的操作,詳情請(qǐng)參見配置節(jié)點(diǎn)上下文

    • 僅標(biāo)準(zhǔn)版及以上版本的DataWorks,才可使用賦值節(jié)點(diǎn),以及在上述節(jié)點(diǎn)中使用賦值參數(shù)功能。購(gòu)買DataWorks,請(qǐng)參見購(gòu)買指引

  • 為避免下游節(jié)點(diǎn)無(wú)法獲取賦值節(jié)點(diǎn)的結(jié)果集,賦值節(jié)點(diǎn)及其下游節(jié)點(diǎn)配置完成后,請(qǐng)統(tǒng)一運(yùn)行節(jié)點(diǎn)所在的業(yè)務(wù)流程。

    • 調(diào)試運(yùn)行任務(wù),請(qǐng)參見調(diào)試運(yùn)行任務(wù)

    • 下游節(jié)點(diǎn)引用賦值節(jié)點(diǎn)結(jié)果集后,您可提交下游節(jié)點(diǎn)及賦值節(jié)點(diǎn)至開發(fā)環(huán)境運(yùn)維中心,測(cè)試引用結(jié)果是否正確。詳情請(qǐng)參見測(cè)試賦值節(jié)點(diǎn)結(jié)果集

      說(shuō)明

      依賴賦值節(jié)點(diǎn)的下游節(jié)點(diǎn)均可獲取賦值節(jié)點(diǎn)的查詢結(jié)果(即結(jié)果集),無(wú)節(jié)點(diǎn)類型限制。本文主要以O(shè)DPS SQL 節(jié)點(diǎn)、以及Shell節(jié)點(diǎn)為例,為您介紹下游節(jié)點(diǎn)如何獲取賦值節(jié)點(diǎn)的輸出結(jié)果。

  • 本實(shí)驗(yàn)中的,您可通過(guò)ETL工作流模板快速體驗(yàn)本案例賦值節(jié)點(diǎn)參數(shù)的傳遞能力。

原理介紹

在DataWorks中,節(jié)點(diǎn)上下文參數(shù)可實(shí)現(xiàn)節(jié)點(diǎn)參數(shù)的上下游傳遞,賦值節(jié)點(diǎn)在此基礎(chǔ)上,可將賦值節(jié)點(diǎn)最后一條查詢結(jié)果傳遞給自帶的輸出參數(shù)(outputs),若下游節(jié)點(diǎn)依賴了賦值節(jié)點(diǎn),則下游節(jié)點(diǎn)可通過(guò)添加輸入?yún)?shù)的方式,在節(jié)點(diǎn)代碼中獲取賦值節(jié)點(diǎn)輸出參數(shù)(outputs)的結(jié)果集(即上游賦值節(jié)點(diǎn)的查詢結(jié)果)。image.png

  • 賦值節(jié)點(diǎn)自帶的輸出參數(shù)(outputs)不可修改,outputs取值由賦值節(jié)點(diǎn)最后一條查詢或輸出結(jié)果決定。

  • 賦值節(jié)點(diǎn)下游獲取賦值節(jié)點(diǎn)結(jié)果集(outputs)時(shí),需要先直接依賴賦值節(jié)點(diǎn)(即賦值節(jié)點(diǎn)為下游節(jié)點(diǎn)的一層父節(jié)點(diǎn)),并在節(jié)點(diǎn)輸入?yún)?shù)處添加賦值節(jié)點(diǎn)結(jié)果集。您可自定義賦值節(jié)點(diǎn)結(jié)果集在下游節(jié)點(diǎn)的參數(shù)名稱,例如上圖中命名為sql_inputs。

  • 不同賦值語(yǔ)言的賦值節(jié)點(diǎn),其結(jié)果集格式存在差異。賦值節(jié)點(diǎn)下游獲取賦值節(jié)點(diǎn)結(jié)果集outputs時(shí),需要根據(jù)outputs具體情況,以${參數(shù)名}的格式,使用一維數(shù)組二維數(shù)組的方式在代碼中獲取賦值節(jié)點(diǎn)傳遞的結(jié)果集、或結(jié)果集中的指定數(shù)據(jù)。

賦值節(jié)點(diǎn)使用流程

  1. 配置賦值節(jié)點(diǎn):定義outputs結(jié)果集。此階段您需要選擇賦值語(yǔ)言,以及確定最后一條查詢或輸出結(jié)果。

  2. 配置上下游依賴:獲取賦值節(jié)點(diǎn)結(jié)果集的下游節(jié)點(diǎn)需提前依賴該賦值節(jié)點(diǎn)。

  3. 下游引用賦值節(jié)點(diǎn)結(jié)果集:下游節(jié)點(diǎn)可通過(guò)節(jié)點(diǎn)上下文 > 添加節(jié)點(diǎn)輸入?yún)?shù)方式獲取賦值節(jié)點(diǎn)結(jié)果集,并通過(guò)${參數(shù)名}的方式在代碼中獲取賦值節(jié)點(diǎn)結(jié)果集。若要獲取結(jié)果集中的指定數(shù)據(jù),您需根據(jù)賦值節(jié)點(diǎn)的賦值語(yǔ)言,通過(guò)一維數(shù)組或二維數(shù)組的方式獲取。

  4. 調(diào)試運(yùn)行任務(wù):您可運(yùn)行業(yè)務(wù)流程,查看引用結(jié)果是否符合預(yù)期。

  5. 測(cè)試獲取的賦值節(jié)點(diǎn)結(jié)果集:下游節(jié)點(diǎn)引用賦值節(jié)點(diǎn)結(jié)果集后,您可提交下游節(jié)點(diǎn)及賦值節(jié)點(diǎn)至開發(fā)環(huán)境運(yùn)維中心測(cè)試引用結(jié)果是否正確。

賦值節(jié)點(diǎn)創(chuàng)建入口

  1. 進(jìn)入數(shù)據(jù)開發(fā)頁(yè)面。

    登錄DataWorks控制臺(tái),切換至目標(biāo)地域后,單擊左側(cè)導(dǎo)航欄的數(shù)據(jù)開發(fā)與治理 > 數(shù)據(jù)開發(fā),在下拉框中選擇對(duì)應(yīng)工作空間后單擊進(jìn)入數(shù)據(jù)開發(fā)

  2. 進(jìn)入節(jié)點(diǎn)創(chuàng)建入口。

    在數(shù)據(jù)開發(fā)頁(yè)面基于具體業(yè)務(wù)流程創(chuàng)建節(jié)點(diǎn),并根據(jù)界面指引配置節(jié)點(diǎn)的名稱、路徑等基本信息。創(chuàng)建入口如下圖。

    本示例中新建3個(gè)不同語(yǔ)言的賦值節(jié)點(diǎn)(Python、ODPS SQL和SHELL),節(jié)點(diǎn)名稱分別為fuzhi_python、fuzhi_sql、fuzhi_shell。

    image.png

    使用賦值節(jié)點(diǎn)時(shí),不同賦值語(yǔ)言,其賦值參數(shù)(outputs)輸出格式存在差異,詳情請(qǐng)參見賦值節(jié)點(diǎn)輸出格式

    此外,您可根據(jù)實(shí)際需要配置各節(jié)點(diǎn)調(diào)度配置中的基礎(chǔ)屬性、時(shí)間屬性、資源屬性,詳情可參見配置基礎(chǔ)屬性時(shí)間屬性配置說(shuō)明配置資源屬性

賦值節(jié)點(diǎn)輸出格式

賦值節(jié)點(diǎn)支持ODPS SQL、SHELL和Python三種賦值語(yǔ)言,使用不同賦值語(yǔ)言時(shí),賦值節(jié)點(diǎn)的參數(shù)(outputs)輸出格式不同,下游節(jié)點(diǎn)需要根據(jù)outputs的具體情況,以${參數(shù)名}的格式,使用一維數(shù)組二維數(shù)組的方式在代碼中獲取賦值節(jié)點(diǎn)傳遞的結(jié)果集、或結(jié)果集中的指定數(shù)據(jù)。

賦值語(yǔ)言

outputs參數(shù)取值

outputs參數(shù)格式

outputs參數(shù)大小限制

ODPS SQL

最后一行SELECT語(yǔ)句的輸出作為賦值參數(shù),添加為賦值節(jié)點(diǎn)的本節(jié)點(diǎn)輸出參數(shù),供其他節(jié)點(diǎn)引用。

將輸出結(jié)果作為一個(gè)二維數(shù)組傳遞至下游。

傳遞值最大為2MB。如果賦值語(yǔ)句的輸出結(jié)果超過(guò)該限制,賦值節(jié)點(diǎn)會(huì)運(yùn)行失敗。

SHELL

最后一行ECHO語(yǔ)句的數(shù)據(jù),添加為賦值節(jié)點(diǎn)的本節(jié)點(diǎn)輸出參數(shù),供其他節(jié)點(diǎn)引用。

將輸出結(jié)果基于逗號(hào)(,)分割為一維數(shù)組。

Python

最后一行PRINT語(yǔ)句的輸出,添加為賦值節(jié)點(diǎn)的本節(jié)點(diǎn)輸出參數(shù),供其他節(jié)點(diǎn)引用。

將輸出結(jié)果基于逗號(hào)(,)分割為一維數(shù)組。

下游獲取賦值節(jié)點(diǎn)結(jié)果集:應(yīng)用示例一

本示例中,直接通過(guò)拉線,將start節(jié)點(diǎn)作為所有賦值節(jié)點(diǎn)的上游節(jié)點(diǎn),down_compare節(jié)點(diǎn)作為所有賦值節(jié)點(diǎn)的下游節(jié)點(diǎn),其中down_compare節(jié)點(diǎn)為Shell節(jié)點(diǎn),以${參數(shù)名}的格式,使用一維數(shù)組二維數(shù)組的方式,通過(guò)Shell節(jié)點(diǎn)分別輸出上游賦值語(yǔ)言分別為ODPS SQL(fuzhi_sql)、Python(fuzhi_python)、SHELL(fuzhi_shell)的結(jié)果集與結(jié)果集中的指定數(shù)據(jù)。參數(shù)透?jìng)? placement=

  • 賦值節(jié)點(diǎn)(fuzhi_python、fuzhi_sql、fuzhi_shell):自帶輸出參數(shù)outputs。

  • 下游節(jié)點(diǎn)(down_compare):下游節(jié)點(diǎn)設(shè)置賦值節(jié)點(diǎn)依賴關(guān)系后,將待引用的賦值參數(shù)添加為節(jié)點(diǎn)上下文 > 本節(jié)點(diǎn)輸入?yún)?shù),參數(shù)名可自定義。

具體過(guò)程請(qǐng)參照下文。

ODPS SQL賦值語(yǔ)言

以下以配置賦值語(yǔ)言為ODPS_SQL的賦值節(jié)點(diǎn),并在down_compare節(jié)點(diǎn)中引用賦值參數(shù)為例,為您示意如何操作。

  1. 配置上游賦值節(jié)點(diǎn)。

    1. 在相應(yīng)的業(yè)務(wù)流程下,雙擊打開賦值語(yǔ)言為ODPS SQL的賦值節(jié)點(diǎn)fuzhi_sql

    2. 在代碼編輯頁(yè)面,選擇賦值語(yǔ)言為ODPS_SQL,寫入賦值代碼。

      示例如下。

      select * from xc_dpe_e2.xc_rpt_user_info_d  where dt='20191008' limit 10;  
    3. 單擊頁(yè)面右側(cè)的調(diào)度配置,查看節(jié)點(diǎn)上下文中的本節(jié)點(diǎn)輸出參數(shù)

      賦值節(jié)點(diǎn)將代碼的查詢結(jié)果作為節(jié)點(diǎn)輸出,賦值給賦值節(jié)點(diǎn)自帶的輸出參數(shù)outputs

      本示例賦值節(jié)點(diǎn)的查詢結(jié)果如下。查詢結(jié)果則此查詢結(jié)果作為一個(gè)二維數(shù)組,賦值給本節(jié)點(diǎn)輸出參數(shù)中的outputs參數(shù)。

      上游節(jié)點(diǎn)

  2. 配置下游節(jié)點(diǎn)。

    1. 雙擊打開下游Shell節(jié)點(diǎn)down_compare

    2. 在代碼開發(fā)頁(yè)面編寫代碼。

      示例如下。

      echo '${sql_inputs}';
      echo '取上游sql節(jié)點(diǎn)輸出第1行數(shù)據(jù)'${sql_inputs[0]};
      echo '取上游sql節(jié)點(diǎn)輸出第2行數(shù)據(jù)'${sql_inputs[1]};
      echo '取上游sql節(jié)點(diǎn)輸出第1行第2個(gè)字段'${sql_inputs[0][1]};
      echo '取上游sql節(jié)點(diǎn)輸出第2行第3個(gè)字段'${sql_inputs[1][2]};
    3. 單擊頁(yè)面右側(cè)的調(diào)度配置,配置節(jié)點(diǎn)上下文中的本節(jié)點(diǎn)輸入?yún)?shù)

      將fuzhi_sql節(jié)點(diǎn)的outputs參數(shù)添加為本節(jié)點(diǎn)輸入?yún)?shù),并命名為sql_inputs調(diào)度配置

  3. 調(diào)試運(yùn)行任務(wù)

    示例返回的引用結(jié)果如下。

    輸出結(jié)果

Python賦值語(yǔ)言

以下以配置賦值語(yǔ)言為Python的賦值節(jié)點(diǎn),并在down_compare節(jié)點(diǎn)中引用賦值參數(shù)為例,為您示意如何操作。

  1. 配置上游賦值節(jié)點(diǎn)。

    1. 在相應(yīng)的業(yè)務(wù)流程下,雙擊打開賦值語(yǔ)言為Python的上游節(jié)點(diǎn)fuzhi_python

    2. 在代碼編輯頁(yè)面,選擇賦值語(yǔ)言為Python,寫入賦值代碼。

      例如:

      print "a,b,c";
    3. 單擊頁(yè)面右側(cè)的調(diào)度配置,查看節(jié)點(diǎn)上下文中的本節(jié)點(diǎn)輸出參數(shù)

      賦值節(jié)點(diǎn)將代碼的查詢結(jié)果作為節(jié)點(diǎn)輸出,賦值給賦值節(jié)點(diǎn)自帶的輸出參數(shù)outputs。本示例的查詢結(jié)果為a,b,cPython

      賦值語(yǔ)言為Python時(shí),查詢結(jié)果將基于逗號(hào)(,)分割為一維數(shù)組,賦值給本節(jié)點(diǎn)輸出參數(shù)中的outputs參數(shù)。

  2. 配置下游節(jié)點(diǎn)。

    1. 雙擊打開下游Shell節(jié)點(diǎn)down_compare

    2. 在代碼開發(fā)頁(yè)面編寫代碼。

      例如:

      echo '這是上游python節(jié)點(diǎn)的輸出'${python_inputs};
      echo '取上游python節(jié)點(diǎn)輸出的第1個(gè)數(shù)據(jù)'${python_inputs[0]};
      echo '取上游python節(jié)點(diǎn)輸出的第2個(gè)數(shù)據(jù)'${python_inputs[1]};
    3. 單擊頁(yè)面右側(cè)的調(diào)度配置,配置節(jié)點(diǎn)上下文中的本節(jié)點(diǎn)輸入?yún)?shù)

      將fuzhi_python節(jié)點(diǎn)的outputs參數(shù)添加為本節(jié)點(diǎn)輸入?yún)?shù),并命名為python_inputsPython

  3. 調(diào)試運(yùn)行任務(wù)

    示例返回的引用結(jié)果如下。

    查看結(jié)果

SHELL賦值語(yǔ)言

以下以配置賦值語(yǔ)言為SHELL的賦值節(jié)點(diǎn),并在down_compare節(jié)點(diǎn)中引用賦值參數(shù)為例,為您示意如何操作。

  1. 配置上游賦值節(jié)點(diǎn)。

    1. 在相應(yīng)的業(yè)務(wù)流程下,雙擊打開賦值語(yǔ)言為SHELL的上游節(jié)點(diǎn)fuzhi_shell

    2. 在代碼編輯頁(yè)面,選擇賦值語(yǔ)言為SHELL,寫入賦值代碼。

      例如:

      echo "hello,world";
    3. 單擊頁(yè)面右側(cè)的調(diào)度配置,查看節(jié)點(diǎn)上下文中的本節(jié)點(diǎn)輸出參數(shù)

      賦值節(jié)點(diǎn)將代碼的查詢結(jié)果作為節(jié)點(diǎn)輸出,賦值給賦值節(jié)點(diǎn)自帶的輸出參數(shù)outputs。本示例的查詢結(jié)果為hello,worldSHELL

      賦值語(yǔ)言為SHELL時(shí),查詢結(jié)果將基于逗號(hào)(,)分割為一維數(shù)組,賦值給本節(jié)點(diǎn)輸出參數(shù)中的outputs參數(shù)。

  2. 配置下游節(jié)點(diǎn)。

    1. 雙擊打開下游Shell節(jié)點(diǎn)down_compare

    2. 在代碼開發(fā)頁(yè)面編寫代碼。

      例如:

      echo '這是上游shell節(jié)點(diǎn)的輸出'${shell_inputs};
      echo '取上游shell節(jié)點(diǎn)輸出的第1個(gè)數(shù)據(jù)'${shell_inputs[0]};
      echo '取上游shell節(jié)點(diǎn)輸出的第2個(gè)數(shù)據(jù)'${shell_inputs[1]};
    3. 單擊頁(yè)面右側(cè)的調(diào)度配置,配置節(jié)點(diǎn)上下文中的本節(jié)點(diǎn)輸入?yún)?shù)

      將fuzhi_shell節(jié)點(diǎn)的outputs參數(shù)添加為本節(jié)點(diǎn)輸入?yún)?shù),并命名為shell_inputsSHELL

  3. 調(diào)試運(yùn)行任務(wù)

    示例返回的引用結(jié)果如下。

    結(jié)果

下游獲取賦值節(jié)點(diǎn)結(jié)果集:應(yīng)用示例二

不同語(yǔ)言的賦值參數(shù)(output)使用示例如下。

賦值語(yǔ)言

outputs取值示例

賦值節(jié)點(diǎn)調(diào)度配置

下游節(jié)點(diǎn)調(diào)度配置

下游節(jié)點(diǎn)取值方式

下游節(jié)點(diǎn)返回結(jié)果

ODPS SQL

示例查看fuzhi_tb表。

  • 查詢代碼:SELECT * FROM fuzhi_tb;

  • 顯示結(jié)果。運(yùn)行結(jié)果

  1. 賦值節(jié)點(diǎn)的調(diào)度配置 > 節(jié)點(diǎn)上下文默認(rèn)生成一個(gè)本節(jié)點(diǎn)輸出參數(shù)ouputsoutput

  2. 在節(jié)點(diǎn)編輯頁(yè)面,單擊提交圖標(biāo)提交節(jié)點(diǎn)。

配置節(jié)點(diǎn)上下文,詳情請(qǐng)參見配置節(jié)點(diǎn)上下文

以上游賦值節(jié)點(diǎn)使用的賦值語(yǔ)言為ODPS SQL示例。

  1. 配置下游節(jié)點(diǎn)依賴上游賦值節(jié)點(diǎn)。調(diào)度依賴示例配置節(jié)點(diǎn)調(diào)度依賴,詳情請(qǐng)參見配置同周期調(diào)度依賴

  2. 節(jié)點(diǎn)上下文添加本節(jié)點(diǎn)輸入?yún)?shù),參數(shù)命名為inputs_odps_sql節(jié)點(diǎn)上下文示例配置節(jié)點(diǎn)上下文,詳情請(qǐng)參見配置節(jié)點(diǎn)上下文

不同類型的下游節(jié)點(diǎn)取值如下:

  • ODPS SQL:select '${inputs_odps_sql[0][0]}';

  • SHELL:echo '${inputs_shell[0]}';

  • Pyodps3:print ('${inputs_python[0]}');

Hello

SHELL

示例語(yǔ)句為:echo 'Data','我是賦值節(jié)點(diǎn)2賦值語(yǔ)言shell';

Data

Python

示例語(yǔ)句為:print "Works!,我是賦值節(jié)點(diǎn)3賦值語(yǔ)言是python";

Works!

調(diào)試運(yùn)行任務(wù)

下游獲取賦值節(jié)點(diǎn)結(jié)果集后,您可雙擊業(yè)務(wù)流程名稱,在業(yè)務(wù)流程編輯頁(yè)面單擊工具欄的image圖標(biāo),運(yùn)行業(yè)務(wù)流程,查看引用結(jié)果是否正確。

說(shuō)明
  • 若賦值節(jié)點(diǎn)的下游是遍歷節(jié)點(diǎn)(for-each節(jié)點(diǎn))或循環(huán)節(jié)點(diǎn)(do-while節(jié)點(diǎn)),則您需前往運(yùn)維中心執(zhí)行相應(yīng)任務(wù),查看引用結(jié)果。

  • 賦值節(jié)點(diǎn)結(jié)合遍歷節(jié)點(diǎn)或循環(huán)節(jié)點(diǎn)使用的最佳實(shí)踐,請(qǐng)參見配置使用for-each節(jié)點(diǎn)配置使用do-while節(jié)點(diǎn)

測(cè)試獲取的賦值節(jié)點(diǎn)結(jié)果集

下游節(jié)點(diǎn)引用賦值節(jié)點(diǎn)結(jié)果集后,您可將下游節(jié)點(diǎn)及賦值節(jié)點(diǎn)提交至開發(fā)環(huán)境,并進(jìn)入開發(fā)環(huán)境運(yùn)維中心執(zhí)行補(bǔ)數(shù)據(jù)操作,測(cè)試下游節(jié)點(diǎn)獲取的賦值節(jié)點(diǎn)結(jié)果集數(shù)據(jù)是否正確。