こちらの続きです。
はじめに
Databricksアシスタントを使った「Vibe Coding」を体験された方も多いのではないでしょうか。ノートブック上で自然言語からコードを生成する体験は、開発のあり方を大きく変えました。
本記事では、そのVibe Codingをさらに発展させ、Claude CodeとDatabricks CLIを組み合わせたDatabricks Apps開発のワークフローを紹介します。
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ Claude Code │────▶│ Databricks CLI │────▶│ Databricks Apps│
│ でコード生成 │ │ でデプロイ │ │ で公開 │
└────────────────┘ └────────────────┘ └────────────────┘
この組み合わせにより、自然言語での指示からアプリのデプロイまでをシームレスに行えるようになります。
Claude Codeとは
Claude Codeは、Anthropic社が開発したCLI型のAIコーディングエージェントです。
従来のコード補完ツールとは異なり、以下の特徴があります。
- プロジェクト全体を理解: 単一ファイルではなく、コードベース全体を把握した上で提案
- ターミナルで動作: IDEに依存せず、どの環境でも利用可能
- bashコマンドの実行: ファイル操作やGit操作、外部CLIの実行も可能
- エージェント的な振る舞い: 計画を立て、実行し、結果を確認するサイクルを自律的に回す
環境セットアップ
前提条件
- Node.js 18以上
- Python 3.8以上
- Git
Claude Codeのインストール
npm install -g @anthropic-ai/claude-code
Databricks CLIのインストール
# pipでインストール
pip install databricks-cli
# または brew(Mac)
brew tap databricks/tap
brew install databricks
認証設定
Databricks CLI
# OAuth認証(推奨)
databricks auth login --host https://<workspace>.cloud.databricks.com
または ~/.databrickscfg に設定:
[DEFAULT]
host = https://<workspace>.cloud.databricks.com
token = <your-token>
以下のように~/.databrickscfgにが複数のプロファイルを含めることができます。CLIを使う際にはどのプロファイルを使用しているのかに注意する必要があります。CLIでプロファイルが明示的に指定されない場合は[DEFAULT]のプロファイルが使用されます。
Claude Code
Claude ProまたはMaxプランに加入している場合は、初回起動時にブラウザ認証が行われます。
DatabricksネイティブでClaude Codeを使う
Claude CodeはDatabricksのモデルサービング経由で利用することもできます。これにより、企業でのガバナンスやコスト管理が容易になります。
設定手順
- Databricksワークスペースの「モデルサービング」にアクセス
- 「コーディングエージェントを統合」パネルから設定を開始
- パーソナルアクセストークン(PAT)を発行
-
~/.claude/settings.jsonを編集
{
"env": {
"ANTHROPIC_MODEL": "databricks-claude-sonnet-4-5",
"ANTHROPIC_BASE_URL": "https://<workspace>.cloud.databricks.com/serving-endpoints/anthropic",
"ANTHROPIC_AUTH_TOKEN": "<your-pat>"
}
}
2025/12/23時点で、上の設定を行いClaude Codeを起動するとプロンプトを入力した際にAPI Error: 400 {"message":"context_management: Extra inputs are not permitted"}エラーが発生します。以下のように設定することでエラーを回避できます。
{
"env": {
"ANTHROPIC_MODEL": "databricks-claude-sonnet-4-5",
"ANTHROPIC_BASE_URL": "https://<ワークスペースホスト名>.cloud.databricks.com/serving-endpoints/anthropic",
"ANTHROPIC_AUTH_TOKEN": "<パーソナルアクセストークン>",
"ANTHROPIC_CUSTOM_HEADERS": "x-databricks-disable-beta-headers: true",
"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": 1
}
}
接続確認
claude
> あなたはどのモデルですか?
databricks-claude-sonnet-4-5 と表示されれば設定完了です。
利用状況はシステムテーブルでも確認できます。
SELECT
eu.*,
convert_timezone('UTC', 'Asia/Tokyo', eu.request_time) AS request_time_jst,
se.endpoint_name
FROM system.serving.endpoint_usage eu
JOIN system.serving.served_entities se
ON eu.served_entity_id = se.served_entity_id
WHERE eu.requester = "<your-email>"
ORDER BY eu.request_time DESC
LIMIT 10
Databricks CLI 基礎
Databricks CLIは、ワークスペースをターミナルから操作するためのツールです。
よく使うコマンド
手動でコマンドを実行することもできますが、Claude Codeに実行をお願いすることもできます。これによって、自分の手でCLIコマンドを実行することなしに、アプリの作成、デプロイを行うことができます。
| コマンド | 用途 |
|---|---|
databricks auth login |
認証 |
databricks workspace list / |
ワークスペース内のファイル一覧 |
databricks clusters list |
クラスター一覧 |
databricks jobs list |
ジョブ一覧 |
databricks apps list |
Databricks Apps一覧 |
databricks apps deploy |
アプリのデプロイ |
動作確認
databricks clusters list
Claude Code 基本操作
起動と初期化
mkdir my-databricks-app
cd my-databricks-app
claude
初回は /init コマンドでプロジェクトを初期化します。
> /init
これにより CLAUDE.md が生成され、プロジェクト固有の情報をClaudeに記憶させることができます。
主要スラッシュコマンド
| コマンド | 用途 |
|---|---|
/init |
プロジェクト初期化・CLAUDE.md生成 |
/clear |
コンテキストリセット(タスク切替時に) |
/compact |
会話の圧縮(トークン節約) |
/model |
モデル切り替え |
/usage |
使用状況確認 |
プロジェクトメモリ
Claude Codeには3種類の「記憶ファイル」があります。
| ファイル | 用途 | 共有範囲 |
|---|---|---|
CLAUDE.md |
プロジェクト共通設定 | チーム全体(Git管理) |
CLAUDE.local.md |
個人設定 | 個人のみ(.gitignore) |
~/.claude/CLAUDE.md |
グローバル設定 | 全プロジェクト共通 |
開発フロー実践
全体像
┌─────────────────────────────────────────────────────────────────┐
│ ローカル環境 │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Claude Code │───▶│ コード編集 │───▶│ローカルテスト │ │
│ │ 自然言語で │ │ ファイル生成 │ │ streamlit │ │
│ │ 指示・修正 │ │ │ │ run app.py │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ ▲ │ │
│ │ │ │ │
│ ▼ │ ▼ │
│ ┌──────────────────────────┴───────────────────────────┐ │
│ │ Databricks CLI │ │
│ │ databricks apps deploy / apps get │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Databricks ワークスペース │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Databricks │ │ Model │ │ Unity │ │
│ │ Apps │ │ Serving │ │ Catalog │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Step 1: アプリ生成(Claude Code)
claude
> Databricks Apps用のStreamlitアプリを作成して。
> Unity Catalogのテーブル一覧を表示する機能が欲しい。
> app.yaml、app.py、requirements.txt を生成して。
Claude Codeが以下のようなファイル構成を生成します。
my-databricks-app/
├── app.yaml # Databricks Apps設定
├── app.py # Streamlitアプリ本体
├── requirements.txt # 依存パッケージ
└── CLAUDE.md # プロジェクトメモリ
Step 2: ローカルテスト
pip install -r requirements.txt
streamlit run app.py
Step 3: デプロイ(Databricks CLI)
cliのプロファイル[プロファイル名]を使ってアプリを作成、デプロイくださいでも行けます。
databricks apps deploy my-app --source-code-path ./
デプロイ状況の確認:
databricks apps get my-app
Step 4: エラー対応(イテレーション)
アプリにアクセスして以下のようなエラーメッセージに遭遇する場合があります。

デプロイでエラーが発生した場合は、Claude Codeに戻って修正を依頼します。
> App Not Available
Sorry, the Databricks app you are trying to access is currently unavailable. Please try again later.
Claude CodeからDatabricks CLIを直接実行
Claude Codeはbashコマンドを実行できるため、CLI操作も自然言語で指示できます。
> databricks cliを使って現在のアプリ一覧を確認して
Claude Codeが databricks apps list を実行してくれます。
> このアプリをデプロイして
Claude Codeが databricks apps deploy my-app --source-code-path ./ を実行してくれます。
ハンズオン:Unity Catalogビューアーの作成
実際にアプリを作成してみましょう。
1. プロジェクト作成
mkdir catalog-viewer && cd catalog-viewer
claude
2. CLAUDE.mdの設定
/initで生成された CLAUDE.md に以下の情報を追記します。
# Databricks Apps プロジェクト
## 概要
Databricks Apps用のStreamlitアプリケーション開発プロジェクト
## 技術スタック
- Streamlit
- Databricks SDK (WorkspaceClient)
- pandas
## Databricks Apps 設定要件
- ポート: 8000
- アドレス: 0.0.0.0
- 環境変数: DATABRICKS_HOST (workspace-url), DATABRICKS_TOKEN (user-token)
## ファイル構成
- `app.yaml` - Databricks Apps設定ファイル
- `app.py` - Streamlitアプリ本体
- `requirements.txt` - Python依存関係
## デプロイ手順 (CLI プロファイル: free-edition)
```bash
# アプリ作成
databricks --profile free-edition apps create <app-name>
# ファイルアップロード
databricks --profile free-edition workspace mkdirs /Workspace/Users/<user>/apps/<app-name>
databricks --profile free-edition workspace import /Workspace/Users/<user>/apps/<app-name>/app.py --file app.py --format AUTO
databricks --profile free-edition workspace import /Workspace/Users/<user>/apps/<app-name>/app.yaml --file app.yaml --format AUTO
databricks --profile free-edition workspace import /Workspace/Users/<user>/apps/<app-name>/requirements.txt --file requirements.txt --format AUTO
# デプロイ
databricks --profile free-edition apps deploy <app-name> --source-code-path /Workspace/Users/<user>/apps/<app-name>
## 削除手順
databricks --profile free-edition apps delete <app-name>
databricks --profile free-edition workspace delete /Workspace/Users/<user>/apps/<app-name> --recursive
これにより、以降の指示でこれらの情報を毎回伝える必要がなくなります。
3. アプリ生成
Databricks Apps用のStreamlitアプリを作成して。
機能:
- Unity Catalogのカタログ/スキーマ/テーブルを検索・表示
技術要件:
- ポート: 8000
- アドレス: 0.0.0.0
- databricks-sdkを使用してWorkspaceClientで接続
生成ファイル:
- app.yaml
- app.py
- requirements.txt
4. ローカルテスト
pip install -r requirements.txt
streamlit run app.py
5. デプロイ
databricks apps deploy catalog-viewer --source-code-path ./
6. 機能追加
claude
> テーブルのスキーマ情報(カラム名、データ型)も表示できるようにして
CLAUDE.mdの情報を踏まえて、適切に修正してくれます。
効果的なプロンプティング
Claude Codeを効果的に使うためのプロンプティングのコツを紹介します。
具体的に指示する
❌ 悪い例:
「このコードを改善して」
✅ 良い例:
「このコードのパフォーマンスを改善して。
特にPandas処理をSpark DataFrameに置き換えたい。
Databricks Runtime 15.4 を前提として。」
深く考えさせる
複雑な問題には「深く考えて」と明示的に伝えます。
> このアーキテクチャの問題点を深く考えて、改善案を提案して
計画を立てさせる
大きなタスクは計画から始めます。
> まず実装計画を立てて。実装は計画を確認してから進めて。
app.yaml テンプレート
Databricks Apps用の app.yaml テンプレートを紹介します。
基本形
command:
- streamlit
- run
- app.py
- --server.port
- "8080"
- --server.address
- "0.0.0.0"
環境変数とリソースアクセス
command:
- streamlit
- run
- app.py
- --server.port
- "8080"
- --server.address
- "0.0.0.0"
env:
- name: DATABRICKS_HOST
value: "{{DATABRICKS_HOST}}"
- name: DATABRICKS_TOKEN
valueFrom: "{{DATABRICKS_TOKEN}}"
resources:
- name: serving-endpoint
serving_endpoint:
name: "my-endpoint"
permission: CAN_QUERY
- name: sql-warehouse
sql_warehouse:
name: "my-warehouse"
permission: CAN_USE
トラブルシューティング
| 問題 | 対処法 |
|---|---|
| Claude Code認証エラー |
~/.claude/settings.jsonのトークンを確認 |
| Databricks CLI認証エラー |
databricks auth loginで再認証 |
| デプロイ失敗 |
databricks apps get <app>でログ確認 |
| レート制限 |
/usageで確認、5時間でリセット |
| モジュールが見つからない | requirements.txtに追記して再デプロイ |
ツールの使い分け
| ユースケース | 推奨ツール |
|---|---|
| ノートブック内の素早い補完 | Databricksアシスタント |
| 複数ファイルにまたがる開発 | Claude Code |
| デプロイ・運用自動化 | Databricks CLI |
| Databricks Apps開発 | 3つすべてを併用 |
まとめ
Claude CodeとDatabricks CLIを組み合わせることで、以下のような開発体験が実現できます。
- 自然言語でアプリ生成: 「〜を作って」で必要なファイルが揃う
- シームレスなデプロイ: コマンド1つ、またはClaude Codeへの指示でデプロイ
- 高速なイテレーション: エラー→修正→再デプロイのサイクルが短縮
- プロジェクトメモリ: CLAUDE.mdにより、文脈を維持した開発が可能
Vibe Codingの次のステップとして、ぜひClaude Code + Databricks CLIのワークフローを試してみてください。
参考リンク
- Claude Code 公式ドキュメント
- Databricks CLI 公式ドキュメント
- Databricks Apps 公式ドキュメント
- DatabricksにおけるClaude Codeのネイティブサポート









