次の方法で共有


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

この記事では、"Databricks アセット バンドル" で Azure Databricks ジョブに追加できるさまざまな種類のタスクの例を示します。Databricks アセット バンドルとは」をご覧ください。

ほとんどのジョブ タスクの種類では、サポートされている設定の中にタスク固有のパラメーターが含まれますが、タスクに渡すジョブ パラメーターを定義することもできます。 ジョブ パラメーターでは動的値参照がサポートされています。これにより、タスク間でジョブの実行に固有の値を渡すことができます。 「ジョブ実行に関するコンテキストをジョブ タスクに渡す」を参照してください。

Note

ジョブ タスクの設定をオーバーライドできます。 「Databricks アセット バンドルのジョブ タスク設定をオーバーライドする」を参照してください。

ヒント

Databricks CLI を使用して既存ジョブのリソース構成をすばやく生成するには、bundle generate job コマンドを使用することができます。 bundle コマンドをご参照ください。

ノートブック タスク

このタスクを使用してノートブックを実行します。

次の例では、ノートブック タスクをジョブに追加し、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}}"
        # ...
# ...

このタスクに設定できるその他のマッピングについては、REST API リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > notebook_task を参照してください。 「タスクの種類オプション」および「Azure Databricks ジョブ タスクにパラメーターを渡す」の “ノートブック” も参照してください。.

Python スクリプト タスク

このタスクを使用して、Python ファイルを実行します。

次の例では、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
          # ...
# ...

このタスクに設定できるその他のマッピングについては、REST API リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > spark_python_task を参照してください。 「タスクの種類オプション」および「Azure Databricks ジョブ タスクにパラメーターを渡す」の “Python スクリプト” も参照してください。.

Python ホイール タスク

このタスクを使用して、Python ホイール ファイルを実行します。

次の例では、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 リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > python_wheel_task を参照してください。 「Databricks アセット バンドルを使用して Python ホイール ファイルを開発する」と、「タスクの種類オプション」および「Azure Databricks ジョブ タスクにパラメーターを渡す」の「Python ホイール」も参照してください。

JAR タスク

このタスクを使用して JAR を実行します。 ローカル JAR ライブラリ、またはワークスペース内のライブラリ、Unity Catalog ボリューム、または外部クラウド ストレージの場所を参照することができます。 「Databricks アセット バンドルのライブラリ依存関係」を参照してください。

次の例では、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 リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > spark_jar_task を参照してください。 「タスクの種類オプション」および「Azure Databricks ジョブ タスクにパラメーターを渡す」の “JAR” も参照してください。.

SQL ファイル タスク

このタスクを使用して、ワークスペースまたはリモート Git リポジトリ内にある SQL ファイルを実行します。

次の例では、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 ウェアハウスの ID を取得するには、SQL ウェアハウスの設定ページを開き、[概要] タブ上の [名前] フィールド内で、ウェアハウスの名前の後ろでかっこに囲まれた ID をコピーします。

このタスクに設定できるその他のマッピングについては、REST API リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > sql_task > file を参照してください。 「タスクの種類オプション」内の “SQL: ファイル” もご参照ください。

Delta Live Tables パイプライン タスク

このタスクを使用して、Delta Live Tables パイプラインを実行します。 「Delta Live Tables とは」を参照してください。

次の例では、Delta Live Tables パイプライン タスクをジョブに追加します。 この Delta Live Tables パイプライン タスクは、指定されたパイプラインを実行します。 (簡潔に表示するため、省略されたコンテンツを省略記号で示します。)

# ...
resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      # ...
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111
          # ...
# ...

パイプラインの ID を取得するには、ワークスペース内でパイプラインを開き、パイプラインの設定ページの [パイプラインの詳細] タブ上で [パイプライン ID] の値をコピーします。

このタスクに設定できるその他のマッピングについては、REST API リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > pipeline_task を参照してください。 「タスクの種類オプション」内の “Delta Live Tables パイプライン” もご参照ください。

dbt タスク

このタスクを使用して、1 つ以上の dbt コマンドを実行します。 「dbt Cloud に接続する」をご参照ください。

次の例では、dbt タスクをジョブに追加します。 この dbt タスクは、指定した SQL ウェアハウスを使用して、指定した dbt コマンドを実行します。 (簡潔に表示するため、省略されたコンテンツを省略記号で示します。)

# ...
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"
          # ...
# ...

SQL ウェアハウスの ID を取得するには、SQL ウェアハウスの設定ページを開き、[概要] タブ上の [名前] フィールド内で、ウェアハウスの名前の後ろでかっこに囲まれた ID をコピーします。

このタスクに設定できるその他のマッピングについては、REST API リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > dbt_task を参照してください。 「タスクの種類オプション」内の “dbt” もご参照ください。

実行ジョブ タスク

このタスクを使って、別のジョブを実行します。

次の例には、最初のジョブを実行する 2 つ目のジョブに実行ジョブ タスクが含まれています。

# ...
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}
  # ...

この例では、置換を使って、実行するジョブの ID を取得します。 UI からジョブの ID を取得するには、ワークスペースでジョブを開き、ジョブの設定ページの [ジョブの詳細] タブにある [ジョブ ID] の値から ID をコピーします。

このタスクに設定できるその他のマッピングについては、REST API リファレンスの POST /api/2.1/jobs/create で定義され、YAML 形式で表される、ジョブの作成操作の要求ペイロード内の tasks > run_job_task を参照してください。