メインコンテンツまでスキップ

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という名前で宣言されたターゲットの場合:

Bash
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 を使用してバンドルをデプロイします。

Bash
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 を出力し、リソース・バインディングを拒否できますが、確認された場合、バンドル内のジョブ定義に対する更新は、バンドルが次にデプロイされるときに対応するリモート・ジョブに適用されます。

Bash
databricks bundle deployment bind hello_job 6565621249

databricks bundle deployment unbind

バンドル内のリソースとワークスペース内のリモート対応リソースとの間のリンクを削除します。

databricks bundle deployment unbind KEY [flags]

引数

KEY

バインドを解除するリソース・キー

オプション

--force-lock

展開ロックの強制取得。

グローバルフラグ

次の例では、 hello_job リソースのバインドを解除します。

Bash
databricks bundle deployment unbind hello_job

databricks bundle destroy

警告

バンドルを破棄すると、バンドルの以前にデプロイされたジョブ、パイプライン、およびアーティファクトが完全に削除されます。この操作は元に戻せません。

以前にデプロイされたジョブ、パイプライン、その他のリソース、およびアーティファクトを削除します。

databricks bundle destroy [flags]
注記

バンドルの ID は、バンドル名、バンドルターゲットおよびワークスペースで構成されます。これらのいずれかを変更した後、デプロイ前にバンドルを破棄しようとすると、エラーが発生します。

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

オプション

--auto-approve

リソースとファイルを削除するための対話型承認をスキップする

--force-lock

展開ロックの強制取得。

グローバルフラグ

次のコマンドは、バンドル構成ファイルで定義されている、以前にデプロイされたすべてのリソースとアーティファクトを削除します。

Bash
databricks bundle destroy

databricks bundle generate

Databricks ワークスペースに既に存在するリソースのバンドル構成を生成します。サポートされているリソースは、 アプリダッシュボードジョブパイプラインです。

デフォルトでは、このコマンドはバンドルプロジェクトの resources フォルダーにリソースの *.yml ファイルを生成し、構成で参照されるノートブックなどのファイルもダウンロードします。

important

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の コンピュート > アプリ タブから取得できます。

Bash
databricks bundle generate app --existing-app-name my-app

次のコマンドは、resources bundle プロジェクト フォルダーに新しい hello_world.app.yml ファイルを生成し、アプリのコマンド構成ファイル app.yaml やメイン app.pyなどのアプリのコード ファイルをダウンロードします。デフォルトでは、コードファイルはバンドルの src フォルダにコピーされます。

Bash
databricks bundle generate app --existing-app-name "hello_world"
YAML
# 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 で構成を生成します。

Bash
databricks bundle generate dashboard --existing-id abc123

ワークスペースパスで既存のダッシュボードの構成を生成することもできます。ワークスペース UI からダッシュボードのワークスペース パスをコピーします。

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

Bash
databricks bundle generate dashboard --existing-path "/Workspace/Users/someone@example.com/baby_gender_by_county.lvdash.json"
YAML
# 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.pysrc プロジェクト フォルダーにダウンロードします。

Bash
databricks bundle generate job --existing-job-id 6565621249
YAML
# 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」)

グローバルフラグ

次の例では、既存のパイプラインの構成を生成します。

Bash
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 リポジトリ内のディレクトリ パス。

グローバルフラグ

次の例では、選択するデフォルトのバンドルテンプレートのリストが表示されます。

Bash
databricks bundle init

次の例では、デフォルトの Python テンプレートを使用してバンドルを初期化します。

Bash
databricks bundle init default-python

カスタム Databricks アセット バンドル テンプレートを使用して Databricks アセット バンドルを作成するには、カスタム テンプレート パスを指定します。

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

次の例では、Git リポジトリからバンドルを初期化します。

Bash
databricks bundle init https://github.com/my/repository

次の例は、特定のブランチで初期化します。

Bash
databricks bundle init --branch main

databricks bundle open

ワークスペース内のバンドル・リソースに移動し、開くリソースを指定します。リソースキーが指定されていない場合、このコマンドは、選択するバンドルのリソースのリストを出力します。

databricks bundle open [flags]

オプション

--force-pull

ローカルキャッシュをスキップし、リモートワークスペースから状態を読み込む

グローバルフラグ

次の例では、ブラウザーを起動し、バンドル用に構成されている Databricks ワークスペースのバンドル内の baby_gender_by_county ダッシュボードに移動します。

Bash
databricks bundle open baby_gender_by_county

databricks bundle run

ジョブ、パイプライン、またはスクリプトを実行します。リソースを指定しない場合、コマンドは、選択する定義済みのジョブ、パイプライン、スクリプトを示すプロンプトを表示します。または、バンドル構成ファイル内で宣言されたジョブまたはパイプラインキーまたはスクリプト名を指定します。

databricks bundle run [flags] [KEY]

パイプラインの検証

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

Bash
databricks bundle run --validate-only my_pipeline

ジョブ パラメーターの引き渡し

ジョブ パラメーターを渡すには、--params オプションを使用し、その後にコンマ区切りのキーと値のペア (キーはパラメーター名) を付けます。たとえば、次のコマンドは、ジョブhello_jobの名前が message のパラメーターを HelloWorld に設定します。

Bash
databricks bundle run --params message=HelloWorld hello_job
注記

次の例に示すように、ジョブ タスク オプションを使用して パラメーターをジョブ タスクに渡すことができますが、ジョブ パラメーターを渡すには --params オプションが推奨されます。 ジョブ パラメーターが定義されていないジョブにジョブ パラメーターが指定されている場合、またはジョブ パラメーターが定義されているジョブにタスク パラメーターが指定されている場合、エラーが発生します。

キーワードまたは位置引数を指定することもできます。指定されたジョブがジョブ パラメーターを使用している場合、またはジョブにパラメーター付きのノートブック タスクがある場合、フラグ名はパラメーター名にマップされます。

Bash
databricks bundle run hello_job -- --key1 value1 --key2 value2

または、指定されたジョブがジョブ パラメーターを使用しておらず、ジョブに Python ファイル タスクまたは Python wheel タスクがある場合は、次のようにします。

Bash
databricks bundle run my_job -- value1 value2 value3

スクリプトの実行

バンドルに設定された認証資格情報を使用して統合テストなどのスクリプトを実行するには、スクリプトをインラインで実行するか、バンドル構成で定義されたスクリプトを実行します。スクリプトは、バンドルで設定されたものと同じ認証コンテキストを使用して実行されます。

  • bundle runの後に二重ハイフン(--)を追加して、スクリプトをインラインで実行します。たとえば、次のコマンドは、現在のユーザーの現在の作業ディレクトリを出力します。

    Bash
    databricks bundle run -- python3 -c 'import os; print(os.getcwd())'
  • または、バンドル構成の scripts マッピング内でスクリプトを定義し、 bundle run を使用してスクリプトを実行します。

    YAML
    scripts:
    my_script:
    content: python3 -c 'import os; print(os.getcwd())'
    Bash
    databricks bundle run my_script

    scripts設定の詳細については、「スクリプト」および「スクリプト」を参照してください。

バンドル認証情報は、環境変数を使用して子プロセスに渡されます。「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 を実行します。

Bash
databricks bundle run hello_job

次の例では、devという名前で宣言されたターゲットのコンテキスト内でジョブhello_jobを実行します。

Bash
databricks bundle run -t dev hello_job

次の例では、既存のジョブ実行をキャンセルして再開します。

Bash
databricks bundle run --restart hello_job

次の例では、 full 更新でパイプラインを実行します。

Bash
databricks bundle run my_pipeline --full-refresh-all

次の例では、バンドルコンテキストでコマンドを実行します。

Bash
databricks bundle run -- echo "hello, world"

databricks bundle schema

バンドル構成の JSON スキーマを表示します。

databricks bundle schema [flags]

オプション

グローバルフラグ

次の例は、バンドル構成の JSON スキーマを出力します。

Bash
databricks bundle schema

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

Bash
databricks bundle schema > bundle_config_schema.json

databricks bundle summary

バンドルの ID とリソースの概要 (リソースのディープリンクを含む) を出力して、 Databricks ワークスペースでリソースに簡単に移動できるようにします。

databricks bundle summary [flags]
ヒント

bundle open を使用して、Databricks ワークスペース内のリソースに移動することもできます。「 Databricks バンドルが開いている」を参照してください。

オプション

--force-pull

ローカルキャッシュをスキップし、リモートワークスペースから状態を読み込む

グローバルフラグ

次の例は、バンドルのデプロイされたリソースの概要を出力します。

Bash
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

ローカルファイルシステムの変更を監視する

グローバルフラグ

次の例では、ドライラン同期を実行します。

Bash
databricks bundle sync --dry-run

次の例では、変更を監視し、自動的に同期します。

Bash
databricks bundle sync --watch

次の例では、完全同期を実行します。

Bash
databricks bundle sync --full

databricks bundle validate

バンドル構成ファイルが構文的に正しいことを検証します。

databricks bundle validate [flags]

デフォルトでは、このコマンドはバンドル ID の要約を返します。

Output
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 を使用します。

オプション

グローバルフラグ

次の例では、バンドル設定を検証します。

Bash
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

進行状況ログを表示する形式: defaultappendinplacejson

-t, --target string

該当する場合は、使用するバンドル・ターゲット

--var strings

バンドル設定で定義された変数の値を設定します。例: --var="foo=bar"