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

do-while節(jié)點(diǎn)最佳實(shí)踐

更新時(shí)間:

本文為您介紹通過循環(huán)的方式依次處理一組數(shù)據(jù)的每一行的復(fù)雜場(chǎng)景。

前提條件

請(qǐng)?jiān)诓僮髑埃攘私鈊o-while節(jié)點(diǎn)邏輯,詳情請(qǐng)參見do-while節(jié)點(diǎn)邏輯原理介紹

背景信息

循環(huán)節(jié)點(diǎn)循環(huán)輸出賦值節(jié)點(diǎn)結(jié)果集。

  • 需要部署一個(gè)上游節(jié)點(diǎn),能夠把查詢出的數(shù)據(jù)輸出給下游節(jié)點(diǎn)使用,您可以使用賦值節(jié)點(diǎn)實(shí)現(xiàn)該條件。

  • 循環(huán)節(jié)點(diǎn)需要能夠獲取上游賦值節(jié)點(diǎn)的輸出,您可以通過配置上下文依賴來實(shí)現(xiàn)該條件。

  • 循環(huán)節(jié)點(diǎn)的內(nèi)部節(jié)點(diǎn)需要能夠引用到每一行的數(shù)據(jù),增強(qiáng)已有的節(jié)點(diǎn)上下文,并額外下發(fā)了系統(tǒng)變量${dag.offset},可以幫您快速引用循環(huán)節(jié)點(diǎn)的上下文。

以下以一個(gè)具體的案例,為您示例復(fù)雜場(chǎng)景的配置步驟。 復(fù)雜案例如上圖所示:

  • 賦值節(jié)點(diǎn)輸出一個(gè)二維數(shù)組,將此二維數(shù)組傳遞給do-while循環(huán)節(jié)點(diǎn)。

    二維數(shù)組的示例值為:

    +----------------------------------------------+
    | uid            | region | age_range | zodiac |
    +----------------------------------------------+
    | 0016359810821  | 湖北省 | 30~40歲   | 巨蟹座 |
    | 0016359814159  | 未知   | 30~40歲   | 巨蟹座 |
    +----------------------------------------------+
  • do-while節(jié)點(diǎn)的內(nèi)部節(jié)點(diǎn)通過變量來獲取并打印當(dāng)前循環(huán)參數(shù)、偏移量、上游賦值節(jié)點(diǎn)輸入的參數(shù)值等。

配置流程

循環(huán)節(jié)點(diǎn)

  1. 配置節(jié)點(diǎn)依賴

    do-while節(jié)點(diǎn)需要依賴賦值節(jié)點(diǎn)。

  2. 賦值結(jié)果集

    賦值節(jié)點(diǎn)自帶的節(jié)點(diǎn)上下文輸出參數(shù)outputs,需作為do-while循環(huán)節(jié)點(diǎn)的節(jié)點(diǎn)上下文輸入?yún)?shù)。

  3. do-while循環(huán)節(jié)點(diǎn)的內(nèi)部節(jié)點(diǎn)獲取參數(shù)

    根據(jù)業(yè)務(wù)需求自定義do-while循環(huán)節(jié)點(diǎn)的內(nèi)部業(yè)務(wù)流程,并在內(nèi)部流程的節(jié)點(diǎn)中通過變量來獲取所需參數(shù)值。

創(chuàng)建并配置賦值節(jié)點(diǎn)

核心操作要點(diǎn)為:

  • 賦值代碼與上下文參數(shù):選擇賦值節(jié)點(diǎn)的賦值語言,并通過命令定義好賦值節(jié)點(diǎn)最終輸出的結(jié)果集,賦值節(jié)點(diǎn)會(huì)將本節(jié)點(diǎn)最后一條輸出語句賦值給賦值節(jié)點(diǎn)自帶的outputs輸出參數(shù)。

    說明

    賦值節(jié)點(diǎn)的輸出后續(xù)需要作為do-while節(jié)點(diǎn)本節(jié)點(diǎn)輸入。以下代碼僅為測(cè)試使用,您無法直接訪問圖上代碼中使用的表,您可在了解循環(huán)節(jié)點(diǎn)基本使用后,將代碼中的表替換為您空間下已有的表。

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

  • 上下游依賴關(guān)系:您可以在業(yè)務(wù)流程中新建一個(gè)賦值節(jié)點(diǎn),并通過連線,配置賦值節(jié)點(diǎn)為do-while節(jié)點(diǎn)的上游節(jié)點(diǎn)。

詳細(xì)操作步驟請(qǐng)參見賦值節(jié)點(diǎn)

do-while節(jié)點(diǎn)獲取結(jié)果集

單擊do-while節(jié)點(diǎn)編輯頁面右側(cè)的調(diào)度配置,在do-while節(jié)點(diǎn)的節(jié)點(diǎn)上下文區(qū)域,單擊添加。設(shè)置參數(shù)名input取值來源為上游賦值節(jié)點(diǎn)的輸出。

說明

這里的上下文關(guān)系為賦值節(jié)點(diǎn)與do-while節(jié)點(diǎn)的上下文參數(shù)配置,不是內(nèi)部節(jié)點(diǎn)的上下文參數(shù)配置。

調(diào)度配置

定義循環(huán)體

雙擊do-while節(jié)點(diǎn)名稱,打開節(jié)點(diǎn)的編輯頁面,定義循環(huán)體。

do-while節(jié)點(diǎn)默認(rèn)有startshellend三個(gè)節(jié)點(diǎn),通過編譯Shell節(jié)點(diǎn)的代碼,打印循環(huán)參數(shù)。操作核心要點(diǎn)如下。

  • 上下游依賴:通過連線將內(nèi)部節(jié)點(diǎn)的上下游關(guān)系建立好。復(fù)雜案例-內(nèi)部

  • 循環(huán)任務(wù)代碼:內(nèi)部的Shell節(jié)點(diǎn)的代碼編譯時(shí),可以聯(lián)合內(nèi)置變量來打印各種循環(huán)參數(shù)。do-while節(jié)點(diǎn)可用的內(nèi)置變量可參見內(nèi)置變量,Shell節(jié)點(diǎn)的參考代碼如下。

    echo '${dag.input}';
    echo '獲取當(dāng)前循環(huán)的行數(shù)據(jù):'${dag.input[${dag.offset}]};
    
    echo '獲取偏移量:'${dag.offset};
    
    echo '獲取循環(huán)次數(shù):'${dag.loopTimes};
    
    echo '獲取上游賦值節(jié)點(diǎn)_odpssql傳遞的數(shù)據(jù)集長(zhǎng)度:'${dag.input.length};
    
    echo '如果您要取賦值節(jié)點(diǎn)傳遞的數(shù)據(jù)集中某行某列數(shù)據(jù),需要按照二維數(shù)組方式取值:'${dag.input[0][1]};

定義end節(jié)點(diǎn)的循環(huán)結(jié)束條件

可使用do-while節(jié)點(diǎn)支持的內(nèi)置變量來進(jìn)行循環(huán)控制。例如,比較變量dag.loopTimes(循環(huán)次數(shù))和dag.input.length(取值長(zhǎng)度)。如果dag.loopTimes小于dag.input.length,輸出True并繼續(xù)循環(huán)。如果不小于,則輸出False并退出循環(huán)。樣例代碼如下。

if ${dag.loopTimes}<${dag.input.length}:
    print True;
else:
    print False;

運(yùn)行節(jié)點(diǎn)并查看結(jié)果

進(jìn)入運(yùn)維中心后,右鍵節(jié)點(diǎn)選擇補(bǔ)數(shù)據(jù) > 當(dāng)前節(jié)點(diǎn)及下游節(jié)點(diǎn),選擇賦值節(jié)點(diǎn)和循環(huán)節(jié)點(diǎn),運(yùn)行完成后在運(yùn)行日志中查看運(yùn)行結(jié)果。

說明
  • 如果您在do-while節(jié)點(diǎn)內(nèi)使用了賦值節(jié)點(diǎn)傳遞的值,請(qǐng)?jiān)谶\(yùn)維中心測(cè)試時(shí),同時(shí)運(yùn)行賦值節(jié)點(diǎn)和循環(huán)節(jié)點(diǎn)。

  • 在運(yùn)維中心查看do-while節(jié)點(diǎn)的執(zhí)行日志時(shí),您需要右鍵實(shí)例,單擊查看內(nèi)部節(jié)點(diǎn)來查看內(nèi)部節(jié)點(diǎn)的執(zhí)行日志。

  • 賦值節(jié)點(diǎn)的輸出結(jié)果。賦值節(jié)點(diǎn)結(jié)果

  • 第1次end節(jié)點(diǎn)的運(yùn)行結(jié)果。第一次end

  • 第2次end節(jié)點(diǎn)的運(yùn)行結(jié)果。第二次end