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.py
をsrc
プロジェクト フォルダにダウンロードします。
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
オプションを追加します。