8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

こちらの続きです。

はじめに

Databricksアシスタントを使った「Vibe Coding」を体験された方も多いのではないでしょうか。ノートブック上で自然言語からコードを生成する体験は、開発のあり方を大きく変えました。

本記事では、そのVibe Codingをさらに発展させ、Claude CodeDatabricks 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]のプロファイルが使用されます。

Screenshot 2025-12-08 at 9.11.17.png

Claude Code

Claude ProまたはMaxプランに加入している場合は、初回起動時にブラウザ認証が行われます。

DatabricksネイティブでClaude Codeを使う

Claude CodeはDatabricksのモデルサービング経由で利用することもできます。これにより、企業でのガバナンスやコスト管理が容易になります。

設定手順

  1. Databricksワークスペースの「モデルサービング」にアクセス
  2. 「コーディングエージェントを統合」パネルから設定を開始
  3. パーソナルアクセストークン(PAT)を発行
  4. ~/.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"}エラーが発生します。以下のように設定することでエラーを回避できます。

~/.claude/settings.json
{
  "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 を生成して。

Screenshot 2025-12-08 at 9.12.55.png

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

Screenshot 2025-12-08 at 9.17.27.png

Step 4: エラー対応(イテレーション)

アプリにアクセスして以下のようなエラーメッセージに遭遇する場合があります。
Screenshot 2025-12-08 at 9.17.45.png

デプロイでエラーが発生した場合は、Claude Codeに戻って修正を依頼します。

> App Not Available
Sorry, the Databricks app you are trying to access is currently unavailable. Please try again later.

Claude Codeが問題を特定して修正を行います。
Screenshot 2025-12-08 at 9.22.15.png

動きました。
Screenshot 2025-12-08 at 9.22.54.png

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

Screenshot 2025-12-08 at 9.07.27.png

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

Screenshot 2025-12-08 at 9.08.32.png

4. ローカルテスト

pip install -r requirements.txt
streamlit run app.py

5. デプロイ

databricks apps deploy catalog-viewer --source-code-path ./

Screenshot 2025-12-08 at 9.31.10.png

Screenshot 2025-12-08 at 9.23.10.png

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のワークフローを試してみてください。

参考リンク

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?