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

配置do-while節點

DataWorks為您提供循環節點(do-while節點),您可以重新編排do-while節點內部的業務流程,將需要循環執行的邏輯寫在節點內,再編輯end循環判斷節點來控制是否退出循環。同時您也可以結合賦值節點來循環遍歷賦值節點傳遞的結果集。本文通過實現簡單和復雜場景的示例,為您介紹如何配置do-while節點。

前提條件

  • 已了解循環節點內部可根據業務需要自定義待循環的業務流程。節點組成與流程編排

  • 已了解循環節點內部可通過變量獲取循環相關參數。詳情請參見內置變量

  • 已了解循環節點的內部節點中Start節點代表循環開始,End節點用于自行定義循環退出邏輯。詳情請參見退出循環示例:End節點代碼樣例

  • 已了解循環節點測試與日志查看注意事項。詳情請參見注意事項

使用限制

  • 僅DataWorks標準版及以上版本支持使用do-while節點。詳情請參見DataWorks各版本詳解

  • do-while節點循環次數上限為1024次。

  • 不支持并發執行。即上次循環完成后才可進入下一次循環。

創建do-while節點

  1. 進入數據開發頁面。

    登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的數據開發與治理 > 數據開發,在下拉框中選擇對應工作空間后單擊進入數據開發

  2. 創建do-while節點。

    1. 數據開發頁面,鼠標懸停至新建圖標,單擊新建節點 > 通用 > do-while

      您也可以打開相應的業務流程,右鍵單擊通用,選擇新建節點 > do-while

    2. 新建節點對話框中,輸入節點名稱及路徑。

    3. 單擊確認

應用示例

本節為您介紹如何使用循環節點循環5次,并在每次循環中打印出當前的循環次數的端到端操作步驟。簡單示例

編輯節點業務代碼

說明

do-while節點默認包含StartShellEnd三個節點:

  • Start節點是一個循環開始的標記節點,并無業務作用,不可刪除。

  • Shell節點是DataWorks提供的一個業務處理節點示例。

  • End節點具有標記循環結束和判斷是否開啟下一次循環的功能,此處用于定義do-while節點的結束條件,不可刪除。

您也可根據業務背景自定義do-while節點內部業務流程,將中間的Shell節點替換為其他節點。

  1. 雙擊Shell節點,進入節點的編輯頁面。

  2. 輸入以下代碼。

    echo ${dag.loopTimes} ----打印循環的次數。
    • ${dag.loopTimes}變量是系統的保留變量,代表當前的循環次數,從1開始,do-while的內部節點可以直接引用該變量。更多內置變量請參見內置變量取值案例

    • Shell節點中的代碼修改后請務必保存,提交時不會進行提示。如果未保存,最新的代碼不能及時更新。

    打印循環次數

定義退出循環條件

定義當循環第5次時退出循環。

  1. 雙擊End節點,進入節點的編輯頁面。

  2. 請選擇賦值語言下拉列表中,選中Python

  3. 輸入以下代碼,定義do-while節點的結束條件。

    if ${dag.loopTimes}<5: 
     print True; 
    else: 
     print False;
    • ${dag.loopTimes}變量是系統的保留變量,代表當前的循環次數,從1開始,do-while的內部節點可以直接引用該變量。更多內置變量請參見內置變量取值案例

    • 代碼中把dag.loopTimes和5進行比較,可以限制整體的循環次數。第一次循環dag.loopTimes為1、第二次為2,以此類推,第五次為5。至此表達式${dag.loopTimes}<5結果為False,退出循環。

提交do-while節點

  1. 單擊工具欄中的保存圖標,保存節點。

  2. 單擊工具欄中的提交圖標,提交節點。

    提交時需在提交對話框中輸入變更描述,并根據需要選擇是否在節點提交后執行代碼評審。

    重要
    • 您需要設置節點的重跑屬性依賴的上游節點,才可以提交節點。

    • 代碼評審可對任務的代碼質量進行把控,防止由于任務代碼有誤,未經審核直接發布上線后出現任務報錯。如進行代碼評審,則提交的節點代碼必須通過評審人員的審核才可發布,詳情請參見代碼評審

    如您使用的是標準模式的工作空間,任務提交成功后,需單擊節點編輯頁面右上方的發布,將該任務發布至生產環境執行,操作請參見發布任務

測試并查看執行日志

do-while節點提交發布流程與普通節點一致,線上執行流程與普通節點一致,但不支持數據開發界面測試。

說明

DataWorks為標準模式時,不支持在DataStudio界面直接測試運行do-while節點。

如果您想測試驗證do-while節點的運行結果,您需要將包含do-while節點的任務發布提交到運維中心,在運維中心頁面運行do-while節點任務。如果您在do-while節點內使用了賦值節點傳遞的值,請在運維中心測試時,同時運行賦值節點和循環節點。

  1. 單擊頁面右上方的運維,進入運維中心

  2. 在左側導航欄,單擊周期任務運維 > 周期任務

  3. 選中相應節點,在右側的DAG圖中,右鍵單擊賦值節點,選中補數據 > 當前節點及下游節點

  4. 刷新補數據實例頁面,待補數據實例運行成功后,單擊實例后的DAG圖

  5. 查看循環節點執行日志。

    1. 右鍵單擊do-while節點,選中查看內部節點

      循環節點這類組合節點需要查看內部節點才能看到具體執行日志。內部循環體

      do-while節點的內部循環體分以下三部分:

      • 視圖左側為do-while節點的重跑歷史列表,只要do-while實例整體運行一次,歷史列表便會產生一條相應的記錄。

      • 視圖中部為循環記錄列表,會列出當前do-while節點共運行多少次循環,以及每次循環的狀態。

      • 視圖右側為每次循環的具體信息,單擊循環記錄列表中的某次循環,即可展示出該循環每個實例的運行情況。

    2. 在內部節點頁面,單擊左側的次數,并右鍵單擊相應節點,選中查看運行日志

    3. 查看第N次循環的詳細執行日志。

      在內部節點頁面,單擊左側的第5次,查看第5次循環Shell節點的日志。

      執行日志

      由該示例可見,do-while節點的工作流程如下:

      1. 從Start節點開始運行。

      2. 按照定義的任務依賴關系依次運行每個任務。

      3. 在End節點中定義循環的結束條件。

      4. 一組任務運行完畢之后,運行End的結束條件語句。

      5. 如果End的判斷語句在日志中打印True,則從1開始繼續下一個循環。

      6. 如果End的判斷語句在日志中打印False,則退出整個循環,do-while節點整體結束。

總結

  • do-while與while、for-each和do-while三種循環類型對比如下:

    • do-while能夠實現先循環再判斷的循環體,即do…while語句,能夠通過系統的變量dag.offset結合節點上下文間接實現foreach語句。

    • do-while不能實現先判斷再循環的方式,即while語句。

  • do-while運行流程:

    1. 從Start開始按任務依賴關系依次運行循環體中的任務。

    2. 運行用戶在End節點中定義的代碼。

      • 如果End節點輸出True,則繼續下一個循環。

      • 如果End節點輸出False,則終止循環。

  • 如何使用上下文依賴:do-while的內部節點可以通過${dag.上下文變量名}的方式引用到do-while節點定義的節點上下文。

  • 系統參數:DataWorks會為do-while內部節點自動下發兩個系統變量。

    • dag.loopTimes:從1開始標識這一次循環的次數。

    • dag.offset:從0開始標識該次循環相對于第一次循環的次數偏移量。