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