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