bundle
コマンド グループ
この情報は、Databricks CLI バージョン 0.205 以降に適用されます。 Databricks CLI は パブリック プレビュー段階です。
Databricks CLI 使用には、 Databricks ライセンス および Databricks プライバシー通知(使用データのプロビジョニングを含む)が適用されます。
Databricks CLI内のbundle
コマンドグループには、Databricksアセットバンドルを管理するためのコマンドが含まれています。Databricks Asset Bundles を使用すると、プロジェクトをコードとして表現し、Databricks ジョブ、 LakeFlow宣言型パイプライン、MLOps スタックなどのワークフローDatabricksプログラムで検証、デプロイ、実行できます。「 Databricks アセット バンドルとは」を参照してください。
databricks bundle deploy
バンドルをリモートワークスペースにデプロイします。
databricks bundle deploy [flags]
バンドルターゲットとアイデンティティ
バンドルを特定のターゲットにデプロイするには、バンドル構成ファイル内で宣言されているターゲットの名前とともに、 -t
(または --target
) オプションを設定します。コマンド・オプションが指定されていない場合は、バンドル構成ファイル内で宣言されているデフォルトのターゲットが使用されます。たとえば、 dev
という名前で宣言されたターゲットの場合:
databricks bundle deploy -t dev
バンドルは、開発、ステージング、本番運用 ワークスペースなど、複数のワークスペースにデプロイできます。 基本的に、 root_path
プロパティはバンドルの一意の ID を決定するもので、デフォルトは ~/.bundle/${bundle.name}/${bundle.target}
です。したがって、デフォルトでは、バンドルの ID は、デプロイヤの ID、バンドルの名前、およびバンドルのターゲット名で構成されます。これらが異なるバンドル間で同一である場合、これらのバンドルのデプロイは互いに干渉します。
さらに、バンドル・デプロイメントは、ターゲット・ワークスペースに作成したリソースを、ワークスペース・ファイル・システムに格納されている状態として ID によって追跡します。 リソース名は、バンドル・デプロイメントとリソース・インスタンスの相関関係には使用されないため、次のようになります。
- バンドル構成内のリソースがターゲット ワークスペースに存在しない場合は、そのリソースが作成されます。
- バンドル構成内のリソースがターゲット ワークスペースに存在する場合、そのリソースはワークスペースで更新されます。
- リソースがバンドル構成から削除されると、そのリソースは以前にデプロイされていた場合はターゲット ワークスペースから削除されます。
- リソースとバンドルの関連付けを忘れることができるのは、バンドル名、バンドル・ターゲット、またはワークスペースを変更した場合のみです。
bundle validate
を実行して、これらの値を含む概要を出力できます。
オプション
--auto-approve
デプロイメントに必要になる可能性のある対話型承認をスキップします。
-c, --cluster-id string
指定されたクラスタリング ID を使用して、デプロイメント内のクラスタリングをオーバーライドします。
--fail-on-active-runs
デプロイで実行中のジョブまたはパイプラインがある場合は失敗します。
--force
Git ブランチの検証を強制オーバーライドします。
--force-lock
展開ロックの強制取得。
例
次の例では、特定のクラスタリング ID を使用してバンドルをデプロイします。
databricks bundle deploy --cluster-id 0123-456789-abcdef
databricks bundle deployment
デプロイメント関連のコマンド。
databricks bundle deployment [command]
使用可能なコマンド
bind
- バンドル定義リソースをリモート・ワークスペース内の既存のリソースにバインドします。unbind
- バンドル定義リソースをリモート・リソースからバインド解除します。
databricks bundle deployment bind
バンドル定義のリソースを Databricks ワークスペース内の既存のリソースにリンクして、Databricks アセット バンドルによって管理されるようにします。リソースをバインドすると、ワークスペース内の既存の Databricks リソースは、次の bundle deploy
後にバインドされるバンドルで定義されている構成に基づいて更新されます。
databricks bundle deployment bind KEY RESOURCE_ID [flags]
バインドではデータは再作成されません。たとえば、カタログ内のデータを含むパイプラインにバインドが適用されている場合、既存のデータを失うことなくそのパイプラインにデプロイできます。また、たとえばマテリアライズドビューを再計算する必要がないため、パイプラインを再実行する必要がありません。
bind コマンドは、 --target
フラグとともに使用する必要があります。たとえば、本番運用デプロイを本番運用 パイプラインにバインドするには、次のようにします。 databricks bundle deployment bind --target prod my_pipeline 7668611149d5709ac9-2906-1229-9956-586a9zed8929
bind を実行する前に、ワークスペース内のリソースを確認することをお勧めします。
バインドは、次のリソースでサポートされています。
引数
KEY
バインドするリソース・キー
RESOURCE_ID
バインドする既存のリソースの ID
オプション
--auto-approve
プロンプトを表示する代わりに、バインディングを自動的に承認する
--force-lock
展開ロックの強制取得。
例
次のコマンドは、リソース hello_job
をワークスペース内の対応するリモートにバインドします。このコマンドは diff を出力し、リソース・バインディングを拒否できますが、確認された場合、バンドル内のジョブ定義に対する更新は、バンドルが次にデプロイされるときに対応するリモート・ジョブに適用されます。
databricks bundle deployment bind hello_job 6565621249
databricks bundle deployment unbind
バンドル内のリソースとワークスペース内のリモート対応リソースとの間のリンクを削除します。
databricks bundle deployment unbind KEY [flags]
引数
KEY
バインドを解除するリソース・キー
オプション
--force-lock
展開ロックの強制取得。
例
次の例では、 hello_job
リソースのバインドを解除します。
databricks bundle deployment unbind hello_job
databricks bundle destroy
バンドルを破棄すると、バンドルの以前にデプロイされたジョブ、パイプライン、およびアーティファクトが完全に削除されます。この操作は元に戻せません。
以前にデプロイされたジョブ、パイプライン、その他のリソース、およびアーティファクトを削除します。
databricks bundle destroy [flags]
バンドルの ID は、バンドル名、バンドルターゲットおよびワークスペースで構成されます。これらのいずれかを変更した後、デプロイ前にバンドルを破棄しようとすると、エラーが発生します。
デフォルトでは、以前にデプロイされたジョブ、パイプライン、およびアーティファクトの完全な削除を確認するように求められます。 これらのプロンプトをスキップして自動的に完全削除を実行するには、bundle destroy
コマンドに --auto-approve
オプションを追加します。
オプション
--auto-approve
リソースとファイルを削除するための対話型承認をスキップする
--force-lock
展開ロックの強制取得。
例
次のコマンドは、バンドル構成ファイルで定義されている、以前にデプロイされたすべてのリソースとアーティファクトを削除します。
databricks bundle destroy
databricks bundle generate
Databricks ワークスペースに既に存在するリソースのバンドル構成を生成します。サポートされているリソースは、 アプリ、 ダッシュボード、 ジョブ、 パイプラインです。
デフォルトでは、このコマンドはバンドルプロジェクトの resources
フォルダーにリソースの *.yml
ファイルを生成し、構成で参照されるノートブックなどのファイルもダウンロードします。
bundle generate
コマンドは、リソース構成を自動生成するための便宜のために提供されています。ただし、リソース構成がバンドルに含まれてデプロイされると、新しいリソースが作成され、最初に使用されない限り、既存のリソース bundle deployment bind
更新されません。「 databricks バンドル デプロイ バインド」を参照してください。
databricks bundle generate [command]
使用可能なコマンド
app
- Databricks アプリのバンドル構成を生成します。dashboard
- ダッシュボードの構成を生成します。job
- ジョブのバンドル構成を生成します。pipeline
- パイプラインのバンドル構成を生成します。
オプション
--key string
生成された構成に使用するリソース キー
databricks bundle generate app
ワークスペース内の既存の Databricks アプリのバンドル構成を生成します。
databricks bundle generate app [flags]
オプション
-d, --config-dir string
出力バンドル構成が格納されるディレクトリパス (デフォルト "リソース")
--existing-app-name string
構成を生成するアプリ名
-f, --force
出力ディレクトリ内の既存のファイルを強制的に上書きする
-s, --source-dir string
アプリファイルが保存されるディレクトリパス(デフォルトは "src/app")
例
次の例では、 my-app
という名前の既存のアプリの構成を生成します。アプリ名は、ワークスペースUIの コンピュート > アプリ タブから取得できます。
databricks bundle generate app --existing-app-name my-app
次のコマンドは、resources
bundle プロジェクト フォルダーに新しい hello_world.app.yml
ファイルを生成し、アプリのコマンド構成ファイル app.yaml
やメイン app.py
などのアプリのコード ファイルをダウンロードします。デフォルトでは、コードファイルはバンドルの src
フォルダにコピーされます。
databricks bundle generate app --existing-app-name "hello_world"
# This is the contents of the resulting /resources/hello-world.app.yml file.
resources:
apps:
hello_world:
name: hello-world
description: A basic starter application.
source_code_path: ../src/app
databricks bundle generate dashboard
ワークスペース内の既存のダッシュボードの構成を生成します。
databricks bundle generate dashboard [flags]
ダッシュボードを既にデプロイした後で .lvdash.json
ファイルを更新するには、bundle generate dashboard
を実行して既存のダッシュボード リソースのファイルを生成するときに --resource
オプションを使用します。ダッシュボードの更新を継続的にポーリングして取得するには、 --force
オプションと --watch
オプションを使用します。
オプション
-s, --dashboard-dir string
ダッシュボード表現を書き込むディレクトリ (デフォルトは "src")
--existing-id string
構成を生成するダッシュボードの ID
--existing-path string
構成を生成するダッシュボードのワークスペースパス
-f, --force
出力ディレクトリ内の既存のファイルを強制的に上書きする
--resource string
変更を監視するダッシュボードのリソースキー
-d, --resource-dir string
構成を書き込むディレクトリ (デフォルト "リソース")
--watch
ダッシュボードへの変更を監視し、構成を更新します
例
次の例では、既存のダッシュボード ID で構成を生成します。
databricks bundle generate dashboard --existing-id abc123
ワークスペースパスで既存のダッシュボードの構成を生成することもできます。ワークスペース UI からダッシュボードのワークスペース パスをコピーします。
たとえば、次のコマンドは、以下の YAML を含む resources
バンドル プロジェクト フォルダーに新しい baby_gender_by_county.dashboard.yml
ファイルを生成し、baby_gender_by_county.lvdash.json
ファイルを src
プロジェクト フォルダーにダウンロードします。
databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
# This is the contents of the resulting baby_gender_by_county.dashboard.yml file.
resources:
dashboards:
baby_gender_by_county:
display_name: 'Baby gender by county'
warehouse_id: aae11o8e6fe9zz79
file_path: ../src/baby_gender_by_county.lvdash.json
databricks bundle generate job
ジョブのバンドル構成を生成します。
現在、このコマンドでサポートされているのは、ノートブック タスクを持つジョブのみです。
databricks bundle generate job [flags]
オプション
-d, --config-dir string
出力構成が格納されるディレクトリ パス (デフォルト "リソース")
--existing-job-id int
ジョブ 構成を生成するジョブの ID
-f, --force
出力ディレクトリ内の既存のファイルを強制的に上書きする
-s, --source-dir string
ダウンロードしたファイルが保存されるディレクトリパス(デフォルトは「src」)
例
次の例では、以下の 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:
hello_job:
name: 'Hello Job'
tasks:
- task_key: run_notebook
email_notifications: {}
notebook_task:
notebook_path: ../src/simple_notebook.py
source: WORKSPACE
run_if: ALL_SUCCESS
max_concurrent_runs: 1
databricks bundle generate pipeline
パイプラインのバンドル構成を生成します。
databricks bundle generate pipeline [flags]
オプション
-d, --config-dir string
出力構成が格納されるディレクトリ パス (デフォルト "リソース")
--existing-pipeline-id string
構成を生成するパイプラインの ID
-f, --force
出力ディレクトリ内の既存のファイルを強制的に上書きする
-s, --source-dir string
ダウンロードしたファイルが保存されるディレクトリパス(デフォルトは「src」)
例
次の例では、既存のパイプラインの構成を生成します。
databricks bundle generate pipeline --existing-pipeline-id abc-123-def
databricks bundle init
バンドルテンプレートを使用して新しいバンドルを初期化します。テンプレートは、ユーザーに値の入力を求めるように構成できます。「 Databricks Asset Bundle プロジェクト テンプレート」を参照してください。
databricks bundle init [TEMPLATE_PATH] [flags]
引数
TEMPLATE_PATH
初期化に使用するテンプレート (オプション)
オプション
--branch string
テンプレートの初期化に使用する Git ブランチ
--config-file string
テンプレートの初期化に必要な入力パラメーターのキーと値のペアを含むJSONファイル。
--output-dir string
初期化されたテンプレートを書き込むディレクトリ。
--tag string
テンプレートの初期化に使用する Git タグ
--template-dir string
テンプレートを含む Git リポジトリ内のディレクトリ パス。
例
次の例では、選択するデフォルトのバンドルテンプレートのリストが表示されます。
databricks bundle init
次の例では、デフォルトの Python テンプレートを使用してバンドルを初期化します。
databricks bundle init default-python
カスタム Databricks アセット バンドル テンプレートを使用して Databricks アセット バンドルを作成するには、カスタム テンプレート パスを指定します。
databricks bundle init <project-template-local-path-or-url> \
--project-dir="</local/path/to/project/template/output>"
次の例では、Git リポジトリからバンドルを初期化します。
databricks bundle init https://github.com/my/repository
次の例は、特定のブランチで初期化します。
databricks bundle init --branch main
databricks bundle open
ワークスペース内のバンドル・リソースに移動し、開くリソースを指定します。リソースキーが指定されていない場合、このコマンドは、選択するバンドルのリソースのリストを出力します。
databricks bundle open [flags]
オプション
--force-pull
ローカルキャッシュをスキップし、リモートワークスペースから状態を読み込む
例
次の例では、ブラウザーを起動し、バンドル用に構成されている Databricks ワークスペースのバンドル内の baby_gender_by_county
ダッシュボードに移動します。
databricks bundle open baby_gender_by_county
databricks bundle run
ジョブ、パイプライン、またはスクリプトを実行します。リソースを指定しない場合、コマンドは、選択する定義済みのジョブ、パイプライン、スクリプトを示すプロンプトを表示します。または、バンドル構成ファイル内で宣言されたジョブまたはパイプラインキーまたはスクリプト名を指定します。
databricks bundle run [flags] [KEY]
パイプラインの検証
パイプライン検証の実行を行う場合は、次の例に示すように、--validate-only
オプションを使用します。
databricks bundle run --validate-only my_pipeline
ジョブ パラメーターの引き渡し
ジョブ パラメーターを渡すには、--params
オプションを使用し、その後にコンマ区切りのキーと値のペア (キーはパラメーター名) を付けます。たとえば、次のコマンドは、ジョブhello_job
の名前が message
のパラメーターを HelloWorld
に設定します。
databricks bundle run --params message=HelloWorld hello_job
次の例に示すように、ジョブ タスク オプションを使用して パラメーターをジョブ タスクに渡すことができますが、ジョブ パラメーターを渡すには --params
オプションが推奨されます。 ジョブ パラメーターが定義されていないジョブにジョブ パラメーターが指定されている場合、またはジョブ パラメーターが定義されているジョブにタスク パラメーターが指定されている場合、エラーが発生します。
キーワードまたは位置引数を指定することもできます。指定されたジョブがジョブ パラメーターを使用している場合、またはジョブにパラメーター付きのノートブック タスクがある場合、フラグ名はパラメーター名にマップされます。
databricks bundle run hello_job -- --key1 value1 --key2 value2
または、指定されたジョブがジョブ パラメーターを使用しておらず、ジョブに Python ファイル タスクまたは Python wheel タスクがある場合は、次のようにします。
databricks bundle run my_job -- value1 value2 value3
スクリプトの実行
バンドルに設定された認証資格情報を使用して統合テストなどのスクリプトを実行するには、スクリプトをインラインで実行するか、バンドル構成で定義されたスクリプトを実行します。スクリプトは、バンドルで設定されたものと同じ認証コンテキストを使用して実行されます。
-
bundle run
の後に二重ハイフン(--
)を追加して、スクリプトをインラインで実行します。たとえば、次のコマンドは、現在のユーザーの現在の作業ディレクトリを出力します。Bashdatabricks bundle run -- python3 -c 'import os; print(os.getcwd())'
-
または、バンドル構成の
scripts
マッピング内でスクリプトを定義し、bundle run
を使用してスクリプトを実行します。YAMLscripts:
my_script:
content: python3 -c 'import os; print(os.getcwd())'Bashdatabricks bundle run my_script
バンドル認証情報は、環境変数を使用して子プロセスに渡されます。「Databricks クライアント統合認証」を参照してください。
引数
KEY
実行するリソースの一意の識別子 (オプション)
オプション
--no-wait
実行が完了するのを待たないでください。
--restart
実行が既に実行されている場合は、実行を再開します。
ジョブフラグ
以下のフラグは、ジョブ・レベルのパラメーター・フラグです。ジョブ パラメーターの設定を参照してください。
--params stringToString
ジョブ パラメーターのカンマ区切り k=v ペア (デフォルト []
)
ジョブタスクフラグ
次のフラグは、タスク レベルのパラメーター フラグです。「 タスク パラメーターの構成」を参照してください。 Databricks では、タスク レベルのパラメーターよりもジョブ レベルのパラメーター (--params
) を使用することをお勧めします。
--dbt-commands strings
DBT タスクを持つジョブに対して実行するコマンドのリスト。
--jar-params strings
タスクが Spark JAR ジョブのパラメーターのリスト。
--notebook-params stringToString
ノートブック タスクを含むジョブのキーから値へのマップ。(デフォルト []
)
--pipeline-params stringToString
パイプラインタスクを持つジョブのキーから値へのマップ。(デフォルト []
)
--python-named-params stringToString
タスクが Python wheel ジョブのキーから値へのマップ。 (デフォルト []
)
--python-params strings
Python タスクを含むジョブのパラメーターのリスト。
--spark-submit-params strings
Spark 送信タスクを使用するジョブのパラメーターのリスト。
--sql-params stringToString
SQL タスクを持つジョブのキーから値へのマップ。(デフォルト []
)
パイプラインフラグ
次のフラグはパイプライン フラグです。
--full-refresh strings
リセットして再計算するテーブルのリスト。
--full-refresh-all
グラフの完全なリセットを実行して再計算します。
--refresh strings
更新するテーブルのリスト。
--refresh-all
グラフの完全な更新を実行します。
--validate-only
更新を実行して、グラフの正確性を検証します。
例
次の例では、デフォルトのターゲットでジョブ hello_job
を実行します。
databricks bundle run hello_job
次の例では、dev
という名前で宣言されたターゲットのコンテキスト内でジョブhello_job
を実行します。
databricks bundle run -t dev hello_job
次の例では、既存のジョブ実行をキャンセルして再開します。
databricks bundle run --restart hello_job
次の例では、 full 更新でパイプラインを実行します。
databricks bundle run my_pipeline --full-refresh-all
次の例では、バンドルコンテキストでコマンドを実行します。
databricks bundle run -- echo "hello, world"
databricks bundle schema
バンドル構成の JSON スキーマを表示します。
databricks bundle schema [flags]
オプション
例
次の例は、バンドル構成の JSON スキーマを出力します。
databricks bundle schema
バンドル構成スキーマを JSON ファイルとして出力するには、 bundle schema
コマンドを実行し、出力を JSON ファイルにリダイレクトします。たとえば、現在のディレクトリ内に bundle_config_schema.json
という名前のファイルを生成できます。
databricks bundle schema > bundle_config_schema.json
databricks bundle summary
バンドルの ID とリソースの概要 (リソースのディープリンクを含む) を出力して、 Databricks ワークスペースでリソースに簡単に移動できるようにします。
databricks bundle summary [flags]
bundle open
を使用して、Databricks ワークスペース内のリソースに移動することもできます。「 Databricks バンドルが開いている」を参照してください。
オプション
--force-pull
ローカルキャッシュをスキップし、リモートワークスペースから状態を読み込む
例
次の例は、バンドルのデプロイされたリソースの概要を出力します。
databricks bundle summary
次の出力は、ジョブとパイプラインを定義する my_pipeline_bundle
という名前のバンドルの概要です。
Name: my_pipeline_bundle
Target: dev
Workspace:
Host: https://myworkspace.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/my_pipeline/dev
Resources:
Jobs:
my_project_job:
Name: [dev someone] my_project_job
URL: https://myworkspace.cloud.databricks.com/jobs/206000809187888?o=6051000018419999
Pipelines:
my_project_pipeline:
Name: [dev someone] my_project_pipeline
URL: https://myworkspace.cloud.databricks.com/pipelines/7f559fd5-zztz-47fa-aa5c-c6bf034b4f58?o=6051000018419999
databricks bundle sync
ローカル ファイル システム ディレクトリ内のバンドルのファイル変更を、リモート Databricks ワークスペース内のディレクトリに一方向同期します。
bundle sync
コマンドでは、リモート Databricks ワークスペース内のディレクトリからローカルファイルシステム内のディレクトリにファイルの変更を同期することはできません。
databricks bundle sync [flags]
databricks bundle sync
コマンドは databricks sync
コマンドと同じように機能し、生産性の利便性のために提供されます。コマンドの使用情報については、「コマンドsync
」を参照してください。
オプション
--dry-run
実際の変更を行わずに同期実行をシミュレートする
--full
完全同期の実行 (デフォルトは増分)
--interval duration
ファイル・システムのポーリング間隔 ( --watch
の場合) (デフォルトは 1 秒)
--output type
出力形式の種類
--watch
ローカルファイルシステムの変更を監視する
例
次の例では、ドライラン同期を実行します。
databricks bundle sync --dry-run
次の例では、変更を監視し、自動的に同期します。
databricks bundle sync --watch
次の例では、完全同期を実行します。
databricks bundle sync --full
databricks bundle validate
バンドル構成ファイルが構文的に正しいことを検証します。
databricks bundle validate [flags]
デフォルトでは、このコマンドはバンドル ID の要約を返します。
Name: MyBundle
Target: dev
Workspace:
Host: https://my-host.cloud.databricks.com
User: someone@example.com
Path: /Users/someone@example.com/.bundle/MyBundle/dev
Validation OK!
bundle validate
コマンドは、リソース・プロパティーがバンドル構成ファイルに定義されており、対応するオブジェクトのスキーマに見つからない場合に警告を出力します。
バンドルの ID とリソースの概要のみを出力する場合は、 bundle summary を使用します。
オプション
例
次の例では、バンドル設定を検証します。
databricks bundle validate
グローバルフラグ
--debug
デバッグログを有効にするかどうか。
-h
または --help
Databricks CLI、関連するコマンド グループ、または関連するコマンドのヘルプを表示します。
--log-file
string
出力ログの書き込み先となるファイルを表す文字列。このフラグが指定されていない場合、デフォルトでは出力ログが stderr に書き込まれます。
--log-format
format
ログ・フォーマット・タイプ ( text
または json
) 。デフォルト値は text
です。
--log-level
string
ログ形式レベルを表す文字列。指定しない場合、ログ・フォーマット・レベルは使用不可になります。
-o, --output
タイプ
コマンド出力タイプ text
または json
。デフォルト値は text
です。
-p, --profile
string
コマンドの実行に使用する ~/.databrickscfg
ファイル内のプロファイルの名前。このフラグが指定されていない場合、存在する場合は、 DEFAULT
という名前のプロファイルが使用されます。
--progress-format
format
進行状況ログを表示する形式: default
、 append
、 inplace
、 json
-t, --target
string
該当する場合は、使用するバンドル・ターゲット
--var strings
バンドル設定で定義された変数の値を設定します。例: --var="foo=bar"