ジョブのパラメーター化
この記事では、ジョブとタスクでのパラメーターの使用の概要を説明し、UI でのジョブとタスクの構成の詳細に焦点を当てます。また、タスクとして構成するソースコード資産も、パラメーターを参照するように更新する必要があります。パラメーター参照は、言語とタスクの種類によって異なります。タスクからのパラメーター値へのアクセスを参照してください。
以下は、ジョブのパラメーターを理解するための基本的な概念です。
- ジョブ パラメーター : ジョブ レベルで定義され、タスクにプッシュダウンされたキーと値のペア。 ジョブ・パラメーターの構成を参照してください。
- タスク パラメーター : タスク レベルで定義されたキーと値のペアまたは JSON 配列。 タスク パラメーターの設定を参照してください。
- 動的値参照 : タスクを構成するときに、ジョブ条件、メタデータ、およびパラメーターを参照するための構文。動的値参照とはを参照してください。
- タスク値 : タスクの実行中に生成された値をキャプチャして参照するための構文。 「タスク値を使用してタスク間で情報を渡す」を参照してください。
パラメーターで何ができますか?
ジョブとタスクにパラメーターを追加すると、次のような高度なユースケースに対応できます。
- コード資産に拡張可能なロジックを追加します。
- 実行を条件付けします。
- 複数のタスク間で共通のパラメーターを参照します。
- あるタスクで生成された情報を別のタスクで使用します。
- ジョブ実行でメタデータと状態情報を参照します。
ジョブ パラメーターとタスク パラメーターの違いは何ですか?
ジョブ パラメーターは、ジョブ レベルで定義されたキーと値のペアです。 別のパラメーターを使用して今すぐ実行 するとき、または REST APIを用いてジョブの実行を起動する時に、ジョブ パラメーターのデフォルト設定を上書きすることができます。ジョブ・パラメーターは、キーと値のパラメーターを使用するタスクにプッシュダウンされます。 他のタスクは、動的値参照を使用してジョブ・パラメーターを参照できます。
タスク パラメーターは、タスク レベルで定義された JSON 配列のキーと値のペアです。 各タスクタイプは、タスク値を設定されたコードアセットに異なる方法で渡します。たとえば、ノートブック タスクは dbutils.widgets
サブモジュールを使用しますが、Python スクリプトは、コマンド ラインから呼び出された場合と同様に、引数として値をスクリプトに渡します。ダウンストリーム タスクは、動的値参照を使用してアップストリーム タスクからタスク パラメーターを参照できます。 タスクからのパラメーター値へのアクセスを参照してください。
一部のタスクには専用の パラメーター フィールドがありませんが、タスク値への参照や他のフィールド内の動的値参照は許可されます。 パラメータ化された dbt コマンドの例と If/else タスクを使用したジョブへの分岐ロジックの追加を参照してください。
動的な値を使用したワークフローの構築
静的な値で設定されたタスク パラメーターは、タスク定義を更新することによってのみオーバーライドできます。 ジョブ パラメーターの静的な値の設定は、単にデフォルト値を構成するだけであり、 別のパラメーターを使用して今すぐ実行 したり、 REST APIを使用してジョブの実行をトリガーしたりするときに、デフォルト値をオーバーライドできます。
タスク・パラメーターを定義するときに動的値参照を使用して、次のようなパターンを実装します。
- ジョブ・パラメーターを 1 つのタスクの
output_table
として使用し、別のタスクのinput_table
として使用します。 - ノートブック クエリの出力をリストとしてキャプチャし、 For each タスクでループします。
- If/else 条件 タスクを使用して処理されたレコードの数に基づいて分岐ロジックを作成します。
- 他のタスクのパラメーターを参照してください。