🌱

ローカルからDatabricksワークスペースにデプロイする方法

に公開

Databricks Asset Bundleとは

Databricks の Asset Bundle (DABs) は、
「Databricks 上のリソース(ノートブック・ジョブ・パイプラインなど)を
コードで一括管理し、デプロイできる仕組み」
です。

従来の手作業や Notebook ベースの管理に比べて、

  • Git でのバージョン管理
  • CI/CD パイプラインでの自動デプロイ
  • 複数環境(dev/stg/prod)の切り替え

といったソフトウェアエンジニアリングのベストプラクティスを取り込みやすくなっています。

今回は VS Code と組み合わせて、ローカルから Databricks ワークスペースにノートブックをデプロイする流れを試してみます。

https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/

と言いつつ、最初に言い訳。

Asset Bundle 自体は、2023年ごろに CLI ベースの機能としてプレビュー提供され、
当初は「ローカルマシンから databricks bundle deploy を実行する」使い方が中心でした。

しかし 2025年5月のアップデート により、 Databricks ワークスペース上でも Asset Bundle を直接活用できるように進化しました。これにより、ワークスペース上での共同編集と IaC 的なリソース管理を両立できるようになっています。

本来このタイミングで記事を書くなら、こちらの新しい機能のほうを取り扱うべきでしたが、記事を書き切った後に気づきました。

https://learn.microsoft.com/ja-jp/azure/databricks/dev-tools/bundles/workspace-tutorial

(ただ、まだGA前のプレビュー機能のようです)

環境

  • VS Code
  • Databricks 拡張機能 (Marketplace からインストール)
  • Databricks CLI v0.221.0 以降
  • Azure Databricks ワークスペース

手順

1. VS Code に Databricks 拡張を導入

Databricksの拡張を入れると、サイドバーにアイコンを表示できます。

2. ワークスペースと認証を設定

Create configuration を押すと、ワークスペースの URL と認証方式を選ぶ画面が出ます。

AZ CLIを選択すると、ブラウザが立ち上がり、ワークスペースに使用するのと同じEntra IDでサインイン。

3. フォルダにdatabricks.yaml を作成

プロジェクトルートに databricks.yaml を用意します。

databricks.yaml
bundle:
  name: "任意の名前"
  target: dev

targets:
  dev:
    workspace:
      host: https://adb-xxxxxxxx.azuredatabricks.net
      root_path: /Users/<ユーザー名>/<フォルダ名>

artifacts:
  notebooks:
    type: files
    path: notebooks
    files:
      - source: notebooks/hello.py

ローカルの構成はこんな感じ。

📂 プロジェクトルート
 ├─ databricks.yaml
 ├─ README.md
 └─ notebooks/
      └─ hello.py

hello.pyには入れているのはこれ。

print("こんにちは、せとぅー!Databricks Asset Bundlesが動いています!")

4. デプロイ

準備ができたら以下を実行します。

databricks bundle deploy --profile <プロファイル名>
Uploading notebooks/hello.py...
Uploading bundle files to /Workspace/Users/.../0912-vscode-test/files...
Deploying resources...
Deployment complete!

ワークスペースに hello.py がアップロードされているのを確認できました。

まとめ

  • VS Code の拡張と CLI を組み合わせることで、ローカルのファイルを簡単に Databricks にデプロイできる
  • databricks.yaml の書き方に少し戸惑うかも
  • 一度仕組みを作れば、Job や Pipeline などのリソースも bundle deploy で IaC 的に管理できる

Asset Bundle は今後ワークスペース上でも活用できる方向に進化しており、
「ローカルからのデプロイ」だけでなく「Databricks 上で共同編集しながら IaC 管理する」といった使い方も広がりそうです。

ヘッドウォータース

Discussion