次の方法で共有


Databricks アセット バンドルのジョブにタスクを追加する

このページでは、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_TONOT_EQUALGREATER_THANGREATER_THAN_OR_EQUALLESS_THANLESS_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 depsdbt seeddbt rundbt 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_taskpython_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 このジョブの実行ごとに使用する基本パラメーター。
  • 実行がジョブの呼び出しによって開始された場合、またはパラメーターが指定された run-now によって開始された場合、2 つのパラメーター マップがマージされます。
  • base_parametersrun-nowで同じキーが指定されている場合は、run-nowの値が使用されます。 タスク パラメーター変数を使用して、ジョブの実行に関する情報を含むパラメーターを設定します。
  • ノートブックがジョブの base_parameters で指定されていないパラメーターを受け取るか、 run-now オーバーライド パラメーターを受け取る場合、ノートブックの既定値が使用されます。 dbutils.widgets.getを使用してノートブックでこれらのパラメーターを取得します。
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 ホイール タスクに渡す名前付きパラメーター 。 キーワード引数とも呼ばれます。 名前付きパラメーターは、文字列キーと文字列値を持つキーと値のペアです。 parametersnamed_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 アラートを実行するための構成。 含む:
  • alert_id (文字列): 必須。 実行する SQL アラートの正規識別子。
  • pause_subscriptions (ブール値): アラート サブスクリプションを一時停止するかどうかを指定します。
  • subscriptions (シーケンス): サブスクリプション設定の一覧。
dashboard Map SQL ダッシュボードを更新するための構成。 含む:
  • dashboard_id (文字列): 必須。 更新するための SQL ダッシュボードの正規識別子。
  • custom_subject (文字列): ダッシュボードサブスクライバーに送信される電子メールのカスタム件名。
  • pause_subscriptions (ブール値): ダッシュボード サブスクリプションを一時停止するかどうかを指定します。
  • subscriptions (シーケンス): サブスクリプション設定の一覧。
file Map SQL ファイルを実行するための構成。 含む:
  • path (文字列): 必須。 ワークスペースまたはリモート リポジトリ内の SQL ファイルのパス。 Databricks ワークスペースに格納されているファイルの場合、パスは絶対パスで、スラッシュで始まる必要があります。 リモート リポジトリに格納されているファイルの場合、パスは相対パスである必要があります。
  • source (文字列): SQL ファイルの場所の種類。 有効値は WORKSPACE または GIT です。
parameters Map このタスクの各実行に使用するパラメーター。 SQL クエリとファイルでは、これらのパラメーターを構文 {{parameter_key}}で参照することで使用できます。 タスク パラメーター変数を使用して、ジョブの実行に関する情報を含むパラメーターを設定します。
query Map SQL クエリを実行するための構成。 含む:
  • query_id (文字列): 必須。 実行する 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 タスクの依存関係の省略可能な一覧。 各項目には次のものが含まれます。
  • task_key (文字列): 必須。 このタスクは依存する重要な要素です。
  • outcome (文字列): condition_taskに対してのみ指定できます。 指定した場合、依存タスクは、条件が指定した結果 ( true または false) に評価された場合にのみ実行されます。
description タスクの説明 (省略可能)。
disable_auto_optimization ブール値 このタスクの自動最適化を無効にするかどうかを指定します。 true の場合、アダプティブ クエリ実行などの自動最適化は無効になります。
email_notifications Map 実行の開始時、完了時、または失敗時に通知する電子メール アドレスのオプション セット。 各項目には次のものが含まれます。
  • on_start (シーケンス): 実行の開始時に通知する電子メール アドレスの一覧。
  • on_success (シーケンス): 実行が正常に完了したときに通知する電子メール アドレスの一覧。
  • on_failure (シーケンス): 実行が失敗したときに通知する電子メール アドレスの一覧。
  • on_duration_warning_threshold_exceeded (シーケンス): 実行時間がしきい値を超えたときに通知する電子メール アドレスの一覧。
  • on_streaming_backlog_suceeded (シーケンス): いずれかのストリームでストリーミングバックログのしきい値を超えた場合に通知するためのメールアドレスの一覧。
environment_key ジョブの environments 構成で定義されている環境のキー。 環境固有の設定を指定するために使用されます。 このフィールドは、サーバーレス コンピューティングを使用する場合に、Python スクリプト、Python ホイール、および dbt タスクに必要です。
existing_cluster_id このタスクのすべての実行に使用される既存のクラスターの ID。
health Map このタスクのヘルスモニタリングのための省略可能な仕様で、評価する正常性規則の一覧である rules キーを含みます。
job_cluster_key ジョブの job_clusters 構成で定義されているジョブ クラスターのキー。
libraries Sequence タスクを実行するクラスターにインストールするライブラリの省略可能な一覧。 各ライブラリは、 jareggwhlpypimavencranrequirementsなどのキーを持つマップとして指定されます。
max_retries 整数 失敗した場合にタスクを再試行する最大回数 (省略可能)。 指定しない場合、タスクは再試行されません。
min_retry_interval_millis 整数 失敗した実行の開始から後続の再試行までの間隔 (ミリ秒単位) (省略可能)。 指定しない場合、既定値は 0 (即時再試行) です。
new_cluster Map このタスクを実行するたびに作成される新しいクラスターの仕様。 「 クラスター」を参照してください。
notification_settings Map このタスクのオプションの通知設定。 各項目には次のものが含まれます。
  • no_alert_for_skipped_runs (ブール値): true の場合は、スキップされた実行の通知を送信しないでください。
  • no_alert_for_canceled_runs (ブール値): true の場合は、取り消された実行の通知を送信しないでください。
  • alert_on_last_attempt (ブール値): true の場合は、最後の再試行時にのみ通知を送信します。
retry_on_timeout ブール値 タイムアウト時にタスクを再試行するかどうかを指定するオプションのポリシー。指定しない場合、既定値は false になります。
run_if タスクを実行する条件を示す省略可能な値。 有効な値は次のとおりです。
  • ALL_SUCCESS (既定値): すべての依存関係が成功した場合に実行します。
  • AT_LEAST_ONE_SUCCESS: 少なくとも 1 つの依存関係が成功した場合に実行します。
  • NONE_FAILED: 依存関係が失敗しなかった場合に実行します。
  • ALL_DONE: 結果に関係なく、すべての依存関係が完了したら実行します。
  • AT_LEAST_ONE_FAILED: 少なくとも 1 つの依存関係が失敗した場合に実行します。
  • ALL_FAILED: すべての依存関係が失敗した場合に実行します。
task_key 必須。 タスクの一意の名前。 このフィールドは、 depends_on フィールドを使用して他のタスクからこのタスクを参照するために使用されます。
timeout_seconds 整数 このタスクの各実行に適用される省略可能なタイムアウト。 値 0 は、タイムアウトがないことを意味します。 設定しない場合は、クラスター構成の既定のタイムアウトが使用されます。
webhook_notifications Map 実行の開始時、完了時、または失敗時に通知する、オプションのシステム宛先のセット。 各項目には次のものが含まれます。
  • on_start (シーケンス): 実行の開始時の通知先の一覧。
  • on_success (シーケンス): 実行が完了したときの通知先の一覧。
  • on_failure (シーケンス): 実行が失敗したときの通知先の一覧。
  • on_duration_warning_threshold_exceeded (シーケンス): 実行時間がしきい値を超えたときの通知先の一覧。
  • on_streaming_backlog_suceeded (シーケンス): いずれかのストリームでストリーミングバックログのしきい値を超えた場合に通知するためのメールアドレスの一覧。