このページでは、Databricks アセット バンドルでジョブ タスクを定義する方法について説明します。 ジョブ タスクの詳細については、「 Lakeflow ジョブのタスクの構成と編集」を参照してください。
重要
ローカル相対パスが Git リポジトリ内の同じコンテンツを指していない可能性があるため、git_sourceに設定されたジョブ source フィールドとタスク GIT フィールドはバンドルには推奨されません。 バンドルでは、デプロイされたジョブのファイルが、デプロイ元のローカル コピーと同じであることを想定しています。
代わりに、リポジトリをローカルに複製し、タスクのソースがワークスペースになるように、このリポジトリ内にバンドル プロジェクトを設定します。
タスクの構成
ジョブ定義の tasks キーで、バンドル内のジョブのタスクを定義します。 使用可能なタスクの種類のタスク構成の例は、[ タスクの設定 ] セクションにあります。 バンドル内のジョブの定義については、 ジョブを参照してください。
ヒント
Databricks CLI を使用して既存のジョブのリソース構成をすばやく生成するには、bundle generate job コマンドを使用できます。
バンドル コマンドを参照してください。
タスク値を設定するために、ほとんどのジョブ タスクの種類にはタスク固有のパラメーターがありますが、タスクに渡される ジョブ パラメーター を定義することもできます。 動的値参照 は、ジョブ パラメーターでサポートされており、タスク間でのジョブ実行に固有の値を渡すことができます。 タスクの種類別にタスク値を渡す方法の詳細については、「タスクの種類 別の詳細」を参照してください。
また、一般的なジョブ タスクの設定をターゲット ワークスペースの設定でオーバーライドすることもできます。 ターゲット設定でのオーバーライドを参照してください。
次の構成例では、2 つのノートブック タスクを含むジョブを定義し、最初のタスクから 2 番目のタスクにタスク値を渡します。
resources:
jobs:
pass_task_values_job:
name: pass_task_values_job
tasks:
# Output task
- task_key: output_value
notebook_task:
notebook_path: ../src/output_notebook.ipynb
# Input task
- task_key: input_value
depends_on:
- task_key: output_value
notebook_task:
notebook_path: ../src/input_notebook.ipynb
base_parameters:
received_message: '{{tasks.output_value.values.message}}'
output_notebook.ipynbには、message キーのタスク値を設定する次のコードが含まれています。
# Databricks notebook source
# This first task sets a simple output value.
message = "Hello from the first task"
# Set the message to be used by other tasks
dbutils.jobs.taskValues.set(key="message", value=message)
print(f"Produced message: {message}")
input_notebook.ipynbは、タスクの構成で設定されたパラメーター received_messageの値を取得します。
# This notebook receives the message as a parameter.
dbutils.widgets.text("received_message", "")
received_message = dbutils.widgets.get("received_message")
print(f"Received message: {received_message}")
タスクの設定
このセクションには、各ジョブ タスクの種類の設定と例が含まれています。
クリーン ルーム ノートブック タスク
clean_rooms_notebook_task フィールドが存在する場合、クリーン ルーム ノートブック タスクはクリーン ルーム ノートブックを実行します。 クリーン ルームの詳細については、「 Azure Databricks Clean Rooms とは」を参照してください。
クリーン ルーム ノートブック タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 clean_rooms_notebook_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
clean_room_name |
糸 | 必須。 ノートブックが属するクリーン ルーム。 |
etag |
糸 | ノートブック リソースの鮮度を検証するためのチェックサム。 これは、クリーンルーム資産取得操作を呼び出すことによって取得することができます。 |
object |
Map | クリーン ルーム ノートブック ジョブに使用する基本パラメーター。 |
notebook_name |
糸 | 必須。 実行されているノートブックの名前。 |
条件タスク
condition_task を使用すると、if/else 条件付きロジックを持つタスクをジョブに追加できます。 タスクは、他のタスクの実行を制御するために使用できる条件を評価します。 条件タスクは、クラスターの実行を必要とせず、再試行や通知をサポートしません。 if/else 条件タスクの詳細については、「 If/else タスクを使用してジョブに分岐ロジックを追加する」を参照してください。
条件タスクには、次のキーを使用できます。 対応する REST API オブジェクト定義については、 condition_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
left |
糸 | 必須。 条件の左被演算子。 文字列値、ジョブの状態、または {{job.repair_count}} や {{tasks.task_key.values.output}}などの動的な値参照を指定できます。 |
op |
糸 | 必須。 比較に使用する演算子。 有効な値は、 EQUAL_TO、 NOT_EQUAL、 GREATER_THAN、 GREATER_THAN_OR_EQUAL、 LESS_THAN、 LESS_THAN_OR_EQUALです。 |
right |
糸 | 必須。 条件の右オペランド。 文字列値、ジョブ状態、動的値参照を指定できます。 |
例示
次の例には、条件タスクとノートブック タスクが含まれています。ノートブック タスクは、ジョブの修復の数が 5 未満の場合にのみ実行されます。
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: condition_task
condition_task:
op: LESS_THAN
left: '{{job.repair_count}}'
right: '5'
- task_key: notebook_task
depends_on:
- task_key: condition_task
outcome: 'true'
notebook_task:
notebook_path: ../src/notebook.ipynb
ダッシュボード タスク
このタスクを使用して、ダッシュボードを更新し、スナップショットをサブスクライバーに送信します。 バンドル内のダッシュボードの詳細については、 ダッシュボードを参照してください。
ダッシュボード タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 dashboard_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
dashboard_id |
糸 | 必須。 更新するダッシュボードの識別子。 ダッシュボードは既に存在している必要があります。 |
subscription |
Map | ダッシュボード スナップショットを送信するためのサブスクリプション構成。 各サブスクリプション オブジェクトは、ダッシュボードの更新が完了した後にスナップショットを送信する場所の宛先設定を指定できます。 サブスクリプションを参照 してください。 |
warehouse_id |
糸 | スケジュールに対してダッシュボードを実行する倉庫 ID。 指定しない場合は、ダッシュボードの既定のウェアハウスが使用されます。 |
例示
次の例では、ダッシュボード タスクをジョブに追加します。 ジョブが実行されると、指定した ID のダッシュボードが更新されます。
resources:
jobs:
my-dashboard-job:
name: my-dashboard-job
tasks:
- task_key: my-dashboard-task
dashboard_task:
dashboard_id: 11111111-1111-1111-1111-111111111111
dbt タスク
このタスクを使用して、1 つ以上の dbt コマンドを実行します。 dbt の詳細については、「 dbt Cloud への接続」を参照してください。
dbt タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 dbt_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
catalog |
糸 | 使用するカタログの名前。 カタログ値は、 warehouse_id が指定されている場合にのみ指定できます。 このフィールドには、dbt-databricks >= 1.1.1 が必要です。 |
commands |
Sequence | 必須。 順番に実行する dbt コマンドの一覧。 各コマンドは、完全な dbt コマンドである必要があります (例: dbt deps、 dbt seed、 dbt run、 dbt test)。 最大 10 個のコマンドを指定できます。 |
profiles_directory |
糸 | dbt profiles.yml ファイルを含むディレクトリへのパス。
warehouse_idが指定されていない場合にのみ指定できます。
warehouse_idが指定されておらず、このフォルダーが設定されていない場合は、ルート ディレクトリが使用されます。 |
project_directory |
糸 | dbt プロジェクトを含むディレクトリへのパス。 指定しない場合、既定ではリポジトリまたはワークスペース ディレクトリのルートが使用されます。 Databricks ワークスペースに格納されているプロジェクトの場合、パスは絶対パスで、スラッシュで始まる必要があります。 リモート リポジトリ内のプロジェクトの場合、パスは相対パスである必要があります。 |
schema |
糸 | 書き込むスキーマ。 このパラメーターは、 warehouse_id も指定されている場合にのみ使用されます。 指定しない場合は、既定のスキーマが使用されます。 |
source |
糸 | dbt プロジェクトの場所の種類。 有効値は WORKSPACE または GIT です。
WORKSPACEに設定すると、プロジェクトは Databricks ワークスペースから取得されます。
GITに設定すると、プロジェクトはgit_sourceで定義されている Git リポジトリから取得されます。 空の場合、タスクはGITが定義されている場合はgit_sourceを使用し、それ以外の場合はWORKSPACE。 |
warehouse_id |
糸 | dbt コマンドの実行に使用する SQL ウェアハウスの ID。 指定しない場合は、既定の倉庫が使用されます。 |
例示
次の例では、dbt タスクをジョブに追加します。 この dbt タスクは、指定した SQL ウェアハウスを使用して、指定した dbt コマンドを実行します。
SQL ウェアハウスの ID を取得するには、SQL ウェアハウスの設定ページを開き、[概要] タブの [名前] フィールドで、倉庫の名前の後にかっこで囲まれた ID をコピーします。
ヒント
Databricks アセット バンドルには、dbt タスクを使用してジョブを定義する dbt-sql プロジェクト テンプレートと、デプロイされた dbt ジョブの dbt プロファイルも含まれています。 Databricks アセット バンドル テンプレートの詳細については、「既定のバンドル テンプレート 」を参照してください。
resources:
jobs:
my-dbt-job:
name: my-dbt-job
tasks:
- task_key: my-dbt-task
dbt_task:
commands:
- 'dbt deps'
- 'dbt seed'
- 'dbt run'
project_directory: /Users/someone@example.com/Testing
warehouse_id: 1a111111a1111aa1
libraries:
- pypi:
package: 'dbt-databricks>=1.0.0,<2.0.0'
タスクごとに
for_each_task を使用すると、for each ループを使用したタスクをジョブに追加できます。 このタスクは、指定されたすべての入力に対して入れ子になったタスクを実行します。
for_each_taskの詳細については、「For each タスクを使用して別のタスクをループで実行する」を参照してください。
for_each_taskでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 for_each_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
concurrency |
整数 | 同時に実行できるタスクイテレーションの最大数。 指定しない場合、クラスターとワークスペースの制限に従って、すべてのイテレーションが並列で実行される可能性があります。 |
inputs |
糸 | 必須。 ループの入力データ。 JSON 文字列または配列パラメーターへの参照を指定できます。 配列内の各要素は、入れ子になったタスクの 1 つのイテレーションに渡されます。 |
task |
Map | 必須。 各入力に対して実行する入れ子になったタスク定義。 このオブジェクトには、 task_key とタスクの種類 ( notebook_task、 python_wheel_taskなど) を含む完全なタスク指定が含まれています。 |
例示
次の例では、ジョブに for_each_task を追加します。ジョブは、別のタスクの値を順番にループし、それらを処理します。
resources:
jobs:
my_job:
name: my_job
tasks:
- task_key: generate_countries_list
notebook_task:
notebook_path: ../src/generate_countries_list.ipnyb
- task_key: process_countries
depends_on:
- task_key: generate_countries_list
for_each_task:
inputs: '{{tasks.generate_countries_list.values.countries}}'
task:
task_key: process_countries_iteration
notebook_task:
notebook_path: ../src/process_countries_notebook.ipnyb
JAR タスク
このタスクを使用して JAR を実行します。 ローカル JAR ライブラリ、またはワークスペース内のライブラリ、Unity カタログ ボリューム、または外部クラウド ストレージの場所を参照できます。 JAR ファイル (Java または Scala) を参照してください。
標準アクセス モードで Unity カタログ対応クラスターに Scala JAR ファイルをコンパイルしてデプロイする方法の詳細については、「 チュートリアル: サーバーレス コンピューティングで Scala コードを実行する」を参照してください。
JAR タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 jar_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
jar_uri |
糸 | Deprecated. 実行する JAR の URI。 DBFS とクラウド ストレージ パスがサポートされています。 このフィールドは非推奨であり、使用しないでください。 代わりに、 libraries フィールドを使用して JAR 依存関係を指定します。 |
main_class_name |
糸 | 必須。 実行される main メソッドを含むクラスのフル ネーム。 このクラスは、ライブラリとして提供される JAR に含まれている必要があります。 コードでは、Spark コンテキストを取得するために SparkContext.getOrCreate を使用する必要があります。それ以外の場合は、ジョブの実行が失敗します。 |
parameters |
Sequence | main メソッドに渡されるパラメーター。 タスク パラメーター変数を使用して、ジョブの実行に関する情報を含むパラメーターを設定します。 |
例示
次の例では、JAR タスクをジョブに追加します。 JAR のパスはボリュームの位置にあります。
resources:
jobs:
my-jar-job:
name: my-jar-job
tasks:
- task_key: my-jar-task
spark_jar_task:
main_class_name: org.example.com.Main
libraries:
- jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar
ノートブック タスク
このタスクを使用してノートブックを実行します。 「ジョブのノートブック タスク」を参照してください。
ノートブック タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 notebook_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
base_parameters |
Map | このジョブの実行ごとに使用する基本パラメーター。
|
notebook_path |
糸 | 必須。 Databricks ワークスペースまたはリモート リポジトリ内のノートブックのパス ( /Users/user.name@databricks.com/notebook_to_runなど)。 Databricks ワークスペースに格納されているノートブックの場合、パスは絶対パスで、スラッシュで始まる必要があります。 リモート リポジトリに格納されているノートブックの場合、パスは相対パスである必要があります。 |
source |
糸 | ノートブックの場所の種類。 有効値は WORKSPACE または GIT です。
WORKSPACEに設定すると、ローカルの Databricks ワークスペースからノートブックが取得されます。
GITに設定すると、ノートブックはgit_sourceで定義されている Git リポジトリから取得されます。 値が空の場合、タスクはGITが定義されている場合はgit_sourceを使用し、それ以外の場合はWORKSPACE。 |
warehouse_id |
糸 | ノートブックを実行するウェアハウスの ID。 従来の SQL ウェアハウスはサポートされていません。 代わりに、サーバーレスまたはプロの SQL ウェアハウスを使用してください。 SQL ウェアハウスでは SQL セルのみがサポートされることに注意してください。 ノートブックに SQL 以外のセルが含まれている場合、実行は失敗するため、セルで Python (またはその他) を使用する必要がある場合は、サーバーレスを使用します。 |
例示
次の例では、ノートブック タスクをジョブに追加し、my_job_run_id という名前のジョブ パラメーターを設定します。 デプロイするノートブックのパスは、このタスクが宣言されている構成ファイルに対する相対パスです。 このタスクは、Azure Databricks ワークスペース内のデプロイされた場所からノートブックを取得します。
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
parameters:
- name: my_job_run_id
default: '{{job.run_id}}'
パイプラインのタスク
このタスクを使用してパイプラインを実行します。 「Lakeflow Spark 宣言型パイプライン」を参照してください。
パイプライン タスクには、次のキーを使用できます。 対応する REST API オブジェクト定義については、 pipeline_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
full_refresh |
ブール値 | true の場合、パイプラインの完全な更新がトリガーされ、パイプライン内のすべてのデータセットが完全に再計算されます。 false または省略すると、増分データのみが処理されます。 詳細については、「 パイプライン更新セマンティクス」を参照してください。 |
pipeline_id |
糸 | 必須。 実行対象のパイプラインのID。 パイプラインは既に存在している必要があります。 |
例示
次の例では、パイプライン タスクをジョブに追加します。 このタスクは、指定されたパイプラインを実行します。
ヒント
パイプラインの ID を取得するには、ワークスペースでパイプラインを開き、パイプラインの設定ページの [ パイプライン の詳細] タブで パイプライン ID の値をコピーします。
resources:
jobs:
my-pipeline-job:
name: my-pipeline-job
tasks:
- task_key: my-pipeline-task
pipeline_task:
pipeline_id: 11111111-1111-1111-1111-111111111111
Power BI タスク
重要
Power BI タスクの種類は パブリック プレビュー段階です。
このタスクを使用して、Power BI セマンティック モデル (旧称データセット) の更新をトリガーします。
Power BI タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 power_bi_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
connection_resource_name |
糸 | 必須。 Databricks から Power BI への認証を行う Unity カタログ接続の名前。 |
power_bi_model |
糸 | 必須。 更新する Power BI セマンティック モデル (データセット) の名前。 |
refresh_after_update |
ブール値 | 更新の完了後に Power BI セマンティック モデルを更新するかどうか。 既定値は false です。 |
tables |
Sequence | Power BI にエクスポートするテーブルの一覧 (各テーブルをマップとして)。 表を参照してください。 |
warehouse_id |
糸 | Power BI データソースとして使用する SQL ウェアハウスの ID。 |
例示
次の例では、接続、更新する Power BI モデル、エクスポートする Databricks テーブルを指定する Power BI タスクを定義します。
resources:
jobs:
my_job:
name: my_job
tasks:
- task_key: power_bi_task
power_bi_task:
connection_resource_name: 'connection_name'
power_bi_model:
workspace_name: 'workspace_name'
model_name: 'model_name'
storage_mode: 'DIRECT_QUERY'
authentication_method: 'OAUTH'
overwrite_existing: false
refresh_after_update: false
tables:
- catalog: 'main'
schema: 'tpch'
name: 'customers'
storage_mode: 'DIRECT_QUERY'
warehouse_id: '1a111111a1111aa1'
Python スクリプト タスク
このタスクを使用して、Python ファイルを実行します。
Python スクリプト タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 python_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
parameters |
Sequence | Python ファイルに渡すパラメーター。 タスク パラメーター変数を使用して、ジョブの実行に関する情報を含むパラメーターを設定します。 |
python_file |
糸 | 必須。 実行する Python ファイルの URI (たとえば、 /Users/someone@example.com/my-script.py)。 Databricks ワークスペースに格納されている Python ファイルの場合、パスは絶対パスで始まる必要があります。 リモート リポジトリに格納されているファイルの場合、パスは相対パスである必要があります。 このフィールドは、変数などの動的値参照をサポートしていません。 |
source |
糸 | Python ファイルの場所の種類。 有効値は WORKSPACE または GIT です。
WORKSPACEに設定すると、ローカルの Databricks ワークスペースからファイルが取得されます。
GITに設定すると、git_sourceで定義されている Git リポジトリからファイルが取得されます。 値が空の場合、タスクはGITが定義されている場合はgit_sourceを使用し、それ以外の場合はWORKSPACE。 |
例示
次の例では、Python スクリプト タスクをジョブに追加します。 デプロイする Python ファイルのパスは、このタスクが宣言されている構成ファイルに対する相対パスです。 このタスクは、Azure Databricks ワークスペース内のデプロイされた場所から Python ファイルを取得します。
resources:
jobs:
my-python-script-job:
name: my-python-script-job
tasks:
- task_key: my-python-script-task
spark_python_task:
python_file: ./my-script.py
Python ホイール タスク
このタスクを使用して、Python ホイールを実行します。 Databricks アセット バンドルを使用した Python ホイール ファイルの作成を参照してください。
Python ホイール タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 python_wheel_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
entry_point |
糸 | 必須。 実行する名前付きエントリ ポイント: 関数またはクラス。 パッケージのメタデータに存在しない場合は、 $packageName.$entryPoint()を使用してパッケージから直接関数を実行します。 |
named_parameters |
Map | Python ホイール タスクに渡す名前付きパラメーター 。 キーワード引数とも呼ばれます。 名前付きパラメーターは、文字列キーと文字列値を持つキーと値のペアです。
parametersとnamed_parametersの両方を指定できません。
named_parametersを指定すると、parametersはキーワード引数としてエントリ ポイント関数に渡されます。 |
package_name |
糸 | 必須。 実行する Python パッケージの名前。 すべての依存関係を環境にインストールする必要があります。 これにより、パッケージの依存関係がチェックまたはインストールされることはありません。 |
parameters |
Sequence | Python ホイール タスクに渡すパラメーター ( 位置引数とも呼ばれます)。 各パラメーターは文字列です。 指定する場合は、 named_parameters を指定しないでください。 |
例示
次の例では、Python ホイール タスクをジョブに追加します。 デプロイする Python ホイール ファイルのパスは、このタスクが宣言されている構成ファイルに対する相対パスです。 Databricks アセット バンドル ライブラリの依存関係を参照してください。
resources:
jobs:
my-python-wheel-job:
name: my-python-wheel-job
tasks:
- task_key: my-python-wheel-task
python_wheel_task:
entry_point: run
package_name: my_package
libraries:
- whl: ./my_package/dist/my_package-*.whl
ジョブタスクを実行する
このタスクを使って、別のジョブを実行します。
実行ジョブ タスクには、次のキーを使用できます。 対応する REST API オブジェクト定義については、 run_job_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
job_id |
整数 | 必須。 実行するジョブのIDです。 ジョブはワークスペースに既に存在している必要があります。 |
job_parameters |
Map | 実行中のジョブに渡すジョブ レベルのパラメーター。 これらのパラメーターには、ジョブのタスク内でアクセスできます。 |
pipeline_params |
Map | パイプライン タスクのパラメーター。 実行中のジョブにパイプライン タスクが含まれている場合にのみ使用されます。 パイプラインの完全な更新をトリガーする full_refresh を含めることができます。 |
例示
次の例では、最初のジョブを実行する実行ジョブ タスクが、2 つめのジョブに含まれています。
この例では、 置換 を使用して、実行するジョブの ID を取得します。 UI からジョブの ID を取得するには、ワークスペースでジョブを開き、ジョブの設定ページの [ジョブ の詳細] タブの [ジョブ ID] の値から ID をコピーします。
resources:
jobs:
my-first-job:
name: my-first-job
tasks:
- task_key: my-first-job-task
new_cluster:
spark_version: '13.3.x-scala2.12'
node_type_id: 'i3.xlarge'
num_workers: 2
notebook_task:
notebook_path: ./src/test.py
my_second_job:
name: my-second-job
tasks:
- task_key: my-second-job-task
run_job_task:
job_id: ${resources.jobs.my-first-job.id}
SQL タスク
このタスクを使用して、SQL ファイル、クエリ、またはアラートを実行します。
SQL タスクでは、次のキーを使用できます。 対応する REST API オブジェクト定義については、 sql_taskを参照してください。
| Key | タイプ | Description |
|---|---|---|
alert |
Map | SQL アラートを実行するための構成。 含む:
|
dashboard |
Map | SQL ダッシュボードを更新するための構成。 含む:
|
file |
Map | SQL ファイルを実行するための構成。 含む:
|
parameters |
Map | このタスクの各実行に使用するパラメーター。 SQL クエリとファイルでは、これらのパラメーターを構文 {{parameter_key}}で参照することで使用できます。 タスク パラメーター変数を使用して、ジョブの実行に関する情報を含むパラメーターを設定します。 |
query |
Map | SQL クエリを実行するための構成。 含む:
|
warehouse_id |
糸 | 必須。 SQL タスクの実行に使用する SQL ウェアハウスの ID。 SQL ウェアハウスは既に存在している必要があります。 |
例示
ヒント
SQL ウェアハウスの ID を取得するには、SQL ウェアハウスの設定ページを開き、[概要] タブの [名前] フィールドで、倉庫の名前の後にかっこで囲まれた ID をコピーします。
次の例では、SQL ファイル タスクをジョブに追加します。 この SQL ファイル タスクは、指定した SQL ウェアハウスを使用して、指定した SQL ファイルを実行します。
resources:
jobs:
my-sql-file-job:
name: my-sql-file-job
tasks:
- task_key: my-sql-file-task
sql_task:
file:
path: /Users/someone@example.com/hello-world.sql
source: WORKSPACE
warehouse_id: 1a111111a1111aa1
次の例では、SQL アラート タスクをジョブに追加します。 この SQL アラート タスクでは、指定した SQL ウェアハウスを使用して、指定した SQL アラートを更新します。
resources:
jobs:
my-sql-file-job:
name: my-sql-alert-job
tasks:
- task_key: my-sql-alert-task
sql_task:
warehouse_id: 1a111111a1111aa1
alert:
alert_id: 11111111-1111-1111-1111-111111111111
次の例では、SQL クエリ タスクをジョブに追加します。 この SQL クエリ タスクは、指定した SQL ウェアハウスを使用して、指定された SQL クエリを実行します。
resources:
jobs:
my-sql-query-job:
name: my-sql-query-job
tasks:
- task_key: my-sql-query-task
sql_task:
warehouse_id: 1a111111a1111aa1
query:
query_id: 11111111-1111-1111-1111-111111111111
その他のタスク設定
次のタスク設定を使用すると、すべてのタスクの動作を構成できます。 対応する REST API オブジェクト定義については、 タスクを参照してください。
| Key | タイプ | Description |
|---|---|---|
depends_on |
Sequence | タスクの依存関係の省略可能な一覧。 各項目には次のものが含まれます。
|
description |
糸 | タスクの説明 (省略可能)。 |
disable_auto_optimization |
ブール値 | このタスクの自動最適化を無効にするかどうかを指定します。 true の場合、アダプティブ クエリ実行などの自動最適化は無効になります。 |
email_notifications |
Map | 実行の開始時、完了時、または失敗時に通知する電子メール アドレスのオプション セット。 各項目には次のものが含まれます。
|
environment_key |
糸 | ジョブの environments 構成で定義されている環境のキー。 環境固有の設定を指定するために使用されます。 このフィールドは、サーバーレス コンピューティングを使用する場合に、Python スクリプト、Python ホイール、および dbt タスクに必要です。 |
existing_cluster_id |
糸 | このタスクのすべての実行に使用される既存のクラスターの ID。 |
health |
Map | このタスクのヘルスモニタリングのための省略可能な仕様で、評価する正常性規則の一覧である rules キーを含みます。 |
job_cluster_key |
糸 | ジョブの job_clusters 構成で定義されているジョブ クラスターのキー。 |
libraries |
Sequence | タスクを実行するクラスターにインストールするライブラリの省略可能な一覧。 各ライブラリは、 jar、 egg、 whl、 pypi、 maven、 cran、 requirementsなどのキーを持つマップとして指定されます。 |
max_retries |
整数 | 失敗した場合にタスクを再試行する最大回数 (省略可能)。 指定しない場合、タスクは再試行されません。 |
min_retry_interval_millis |
整数 | 失敗した実行の開始から後続の再試行までの間隔 (ミリ秒単位) (省略可能)。 指定しない場合、既定値は 0 (即時再試行) です。 |
new_cluster |
Map | このタスクを実行するたびに作成される新しいクラスターの仕様。 「 クラスター」を参照してください。 |
notification_settings |
Map | このタスクのオプションの通知設定。 各項目には次のものが含まれます。
|
retry_on_timeout |
ブール値 | タイムアウト時にタスクを再試行するかどうかを指定するオプションのポリシー。指定しない場合、既定値は false になります。 |
run_if |
糸 | タスクを実行する条件を示す省略可能な値。 有効な値は次のとおりです。
|
task_key |
糸 | 必須。 タスクの一意の名前。 このフィールドは、 depends_on フィールドを使用して他のタスクからこのタスクを参照するために使用されます。 |
timeout_seconds |
整数 | このタスクの各実行に適用される省略可能なタイムアウト。 値 0 は、タイムアウトがないことを意味します。 設定しない場合は、クラスター構成の既定のタイムアウトが使用されます。 |
webhook_notifications |
Map | 実行の開始時、完了時、または失敗時に通知する、オプションのシステム宛先のセット。 各項目には次のものが含まれます。
|