bundle コマンド グループ

この情報は、Databricks CLI バージョン 0.218 以降に適用されます。 Databricks CLI のバージョンを確認するには、 databricks -vを実行します。

Databricks CLI 内の bundle コマンド グループを使用すると、Databricks ジョブ、Delta Live Tables パイプラインMLOps スタックなどの Databricks ワークフローをプログラムで検証、デプロイ、実行できます。「 Databricks アセット バンドルとは」を参照してください。

重要

CLI を使用する前に、Databricks DatabricksCLI を セットアップ し、Databricks CLI の認証を設定 してください。

bundle コマンドを実行するには、コマンドを databricks bundleに追加します。bundle コマンドのヘルプを表示するには、 databricks bundle -hを実行します。

プロジェクトテンプレート からのバンドルの作成

Python 用の既定の Databricks アセット バンドル テンプレートを使用して Databricks アセット バンドルを作成するには、次のように bundle init コマンドを実行し、画面上のプロンプトに応答します。

databricks bundle init

既定以外の Databricks アセット バンドル テンプレートを使用して Databricks アセット バンドルを作成するには、次のように bundle init コマンドを実行します。

databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"

関連項目:

バンドル構成スキーマの表示

Databricks アセット バンドル構成スキーマを表示するには、次のように bundle schema コマンドを実行します。

databricks bundle schema

Databricks アセット バンドル構成スキーマを JSON ファイルとして出力するには、 bundle schemaコマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内に bundle_config_schema.json という名前のファイルを生成できます。

databricks bundle schema > bundle_config_schema.json

バンドル の検証

バンドル構成ファイルの構文が正しいことを検証するには、次のようにバンドル プロジェクトのルートからbundle validateコマンドを実行します。

databricks bundle validate

バンドルのツリーをワークスペース に同期する

bundle sync コマンドを使用して、ローカル ファイル システム ディレクトリ内のバンドルのファイル変更をリモート Databricks ワークスペース内のディレクトリに一方向同期します。

bundle sync コマンドは、リモートの Databricks ワークスペース内のディレクトリからローカル ファイル システム内のディレクトリにファイルの変更を同期することはできません。

databricks bundle sync コマンドは databricks bundle コマンドと同じように機能し、生産性の便宜のために提供されています。 コマンドの使用状況については、「 sync コマンド グループ」を参照してください。

バンドル構成ファイルの生成

bundle generateコマンドを使用すると、Databricks ワークスペースにすでに存在するジョブまたはパイプラインのリソース構成を生成できます。 このコマンドは、バンドル プロジェクトのresourcesフォルダーにジョブまたはパイプラインの*.ymlファイルを生成し、ジョブまたはパイプライン構成で参照されているノートブックもダウンロードします。 現在、このコマンドではノートブック タスクを含むジョブのみがサポートされています。

重要

bundle generateコマンドは、リソース構成を自動生成するための便宜のために提供されています。 ただし、この構成がバンドルに含まれてデプロイされると、新しいリソースが作成され、そのリソースで最初にbundle deployment bindが使用されない限り、既存のリソースは更新されません。

次のようにbundle generateコマンドを実行します。

databricks bundle generate [job|pipeline] --existing-[job|pipeline]-id [job-id|pipeline-id]

たとえば、次のコマンドは、以下の YAML を含む新しいhello_job.ymlファイルをresourcesバンドル プロジェクト フォルダに生成し、 simple_notebook.pysrcプロジェクト フォルダにダウンロードします。

databricks bundle generate job --existing-job-id 6565621249
# This is the contents of the resulting hello_job.yml file.
resources:
  jobs:
    6565621249:
      name: Hello Job
      format: MULTI_TASK
      tasks:
        - task_key: run_notebook
          existing_cluster_id: 0704-xxxxxx-yyyyyyy
          notebook_task:
            notebook_path: ./src/simple_notebook.py
            source: WORKSPACE
          run_if: ALL_SUCCESS
      max_concurrent_runs: 1

バンドルリソースをバインドする

bundle deployment bindコマンドを使用すると、バンドル定義のジョブとパイプラインを Databricks ワークスペース内の既存のジョブとパイプラインにリンクし、Databricks アセット バンドルによって管理されるようにすることができます。 リソースをバインドすると、ワークスペース内の既存の Databricks リソースは、次のbundle deployの後にバインドされているバンドルで定義された構成に基づいて更新されます。

ヒント

バインドを実行する前にバンドル ワークスペースを確認することをお勧めします。

databricks bundle deployment bind [resource-key] [resource-id]

たとえば、次のコマンドは、リソースhello_jobをワークスペース内のリモートの対応するリソースにバインドします。 このコマンドは差分を出力し、リソース バインディングを拒否できます。ただし、確認された場合、バンドル内のジョブ定義に対する更新は、次回バンドルがデプロイされるときに対応するリモート ジョブに適用されます。

databricks bundle deployment bind hello_job 6565621249

バンドル内のジョブまたはパイプラインと、ワークスペース内のリモートの対応する部分との間のリンクを削除する場合は、 bundle deployment unbindを使用します。

databricks bundle deployment unbind [resource-key]

バンドル のデプロイ

指定したローカル アーティファクトをリモート ワークスペースにデプロイするには、バンドル プロジェクトのルートからbundle deployコマンドを実行します。 コマンド オプションが指定されていない場合は、次のように、バンドル設定ファイル内で宣言されているデフォルト環境が使用されます。

databricks bundle deploy

ヒント

databricks bundle コマンドはバンドルルートの外部で実行できます。その場合は、 BUNDLE_ROOT 環境変数を設定してバンドルのルートパスを指定できます。 この環境変数が設定されていない場合、 databricks bundle コマンドは現在の作業ディレクトリ内を検索してバンドル・ルートを見つけようとします。

特定の環境のコンテキスト内でアーティファクトをデプロイするには、 -e (または --environment) オプションと、バンドル構成ファイル内で宣言されている環境の名前を指定します。 たとえば、 developmentという名前で宣言された環境の場合は、次のコマンドを実行します。

databricks bundle deploy -e development

バンドル の実行

特定のジョブまたはパイプラインを実行するには、 bundle runコマンドを使用します。 バンドル構成ファイル内で宣言されたジョブまたはパイプラインのリソース キーを指定する必要があります。 デフォルトでは、バンドル設定ファイル内で宣言された環境が使用されます。 たとえば、デフォルト環境でジョブhello_jobを実行するには、次のコマンドを実行します。

databricks bundle run hello_job

ジョブを実行する環境を指定するには、 -eオプションを使用します。 次の例では、 development環境でhello_jobを実行します。

databricks bundle run -e development hello_job

パイプライン検証を実行する場合は、次の例に示すように、 --validate-onlyオプションを使用します。

databricks bundle run --validate-only my_pipeline

ジョブに問題を渡すには、 --paramsオプションを使用し、その後にカンマ区切りのキーと値のペアを使用します。ここで、キーは問題名です。 たとえば、次のコマンドは、ジョブhello_jobの名前messageの保留をHelloWorldに設定します。

databricks bundle run --params message=HelloWorld hello_job

ジョブ タスク オプションを使用してジョブ タスクに問題を渡すことができますが、ジョブ タスクを渡すには--paramsオプションが推奨される方法です。 ジョブ確保が定義されていないジョブにジョブ確保を指定した場合、またはジョブ確保が定義されているジョブにタスク確保を指定した場合は、エラーが発生します。

既存のジョブの実行またはパイプラインの更新をキャンセルして再開するには、 --restartオプションを使用します。

databricks bundle run --restart hello_job

バンドル を破棄する

以前にデプロイされたジョブ、パイプライン、アーティファクトを削除するには、 bundle destroyコマンドを実行します。 次のコマンドは、バンドル構成ファイルで定義されている、以前にデプロイされたすべてのジョブ、パイプライン、およびアーティファクトを削除します。

databricks bundle destroy

デフォルトにより、以前にデプロイされたジョブ、パイプライン、およびアーティファクトの完全な削除を確認するように求められます。 これらのプロンプトをスキップして自動完全削除を実行するには、 bundle destroy コマンドに --auto-approve オプションを追加します。