參數化工作
本文提供搭配工作和任務使用參數的概觀。
以下是了解工作參數的基本概念:
- 工作參數:在工作層級定義的索引鍵/值組,並向下推送至任務。 請參閱設定工作參數。
- 任務參數:在任務層級定義的索引鍵/值組或 JSON 陣列。 請參閱設定任務參數。
- 動態值參考:參考工作條件、中繼資料和參數的語法。 請參閱什麼是動態值參考?。
- 任務值:擷取和參考任務執行期間產生的值的語法。 請參閱使用任務值在任務之間傳遞資訊。
您可以使用參數做什麼?
將參數新增至進階使用案例的工作和任務,包括下列內容:
- 將可延伸的邏輯新增至程式碼資產。
- 條件化執行。
- 跨多個任務參考常見參數。
- 將一個任務中產生的資訊用於另一個任務。
- 參考工作執行中的中繼資料和狀態資訊。
工作和任務參數之間有何差異?
工作參數是在工作層級定義的索引鍵/值組。 當您使用 REST API [以不同參數立即執行] 或觸發工作執行時,您可以覆寫工作參數的預設設定。 工作參數會向下推送至使用索引鍵/值參數的任務。 其他任務可以使用動態值參考來參考工作參數。
任務參數是在任務層級定義的 JSON 陣列的索引鍵/值組。 每個任務類型都會以不同的方式將任務值傳遞至已設定的程式碼資產。 例如,筆記本任務會使用 dbutils.widgets
子模組,而 Python 指令會將值作為引數傳遞至指令,就像是從命令列呼叫它一樣。 下游任務可以使用動態值參考,從上游任務參考任務參數。
注意
某些任務沒有專用的 [參數] 欄位,但允許參考其他欄位內的任務值或動態值參考。 請參閱參數化 dbt 命令的範例和將分支邏輯新增至具有 If/else 任務的工作。
使用動態值建置工作流程
使用靜態值設定的任務參數只能藉由更新任務定義來覆寫。 設定工作參數的靜態值只是設定預設值,而您可以使用 REST API [以不同參數立即執行] 或觸發工作執行時進行覆寫。
定義任務參數以實作下列模式時,請使用動態值參考:
- 使用工作參數作為一個任務的
output_table
和另一個任務的input_table
。 - 擷取筆記本查詢的輸出作為清單,並在 "For each" 任務中對其執行迴圈。
- 根據使用 If/else 條件任務處理的記錄數目,建立派生邏輯。
- 請參閱其他任務的參數。
請參閱什麼是動態值參考?。