0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude CodeにDatabricks Appsのダッシュボード作ってと頼んだら全部やってくれた

0
Last updated at Posted at 2026-04-03

はじめに

Claude CodeとAppKitを使って、NYCタクシーデータセットを可視化するDatabricks Appsのダッシュボードを作成してみました。コードをほぼ書かずに、Claude Codeとの対話だけでアプリが完成するまでの流れを紹介します。

Screenshot 2026-04-03 at 10.16.49.png

使ったもの

  • Claude Code - Anthropicの公式CLI
  • Databricks AppKit - TypeScript/React製のDatabricks Appsフレームワーク
  • データ - samples.nyctaxi.trips(Databricksのサンプルデータ)

手順

CLIのインストール

Databricks CLI(Commnad Line Interface)がインストールされていない場合にはインストールします。インストール済みの場合でも最新版にアップデートします。

AppKitのインストール

databricks experimental aitools skills install

Screenshot 2026-04-03 at 10.38.02.png

プロンプト1:依頼する

Create a new Databricks app that displays a dashboard of the nyc taxi trips dataset.

nyc taxi tripsデータセットのダッシュボードを表示する新規のDatabricks appを作って

これだけです。あとはClaude Codeが動き始めます。

Screenshot 2026-04-03 at 10.24.34.png

Claude Codeはまず手持ちのDatabricksプロファイルを確認しました。

Name        Host                                               Valid
DEFAULT     https://xxxx.cloud.databricks.com         NO
tokyo       https://xxxx.cloud.databricks.com         NO
test     https://test.azuredatabricks.net   YES
...

有効なプロファイルがtestだったので、それを使って作業を始めようとしました。

プロンプト2:プロファイルを変えてもらう

どのプロファイル使ってんの?
test プロファイルを使っています。
tokyo使えないの?

Claude Codeがtokyoを調べると、リフレッシュトークンが期限切れになっていました。

リフレッシュトークンが期限切れになっています。再認証が必要です:
$ databricks auth login --profile tokyo

プロンプト3:認証してから再指示

ブラウザで認証を済ませてから:

認証しました。tokyo使ってください

これでClaude Codeはtokyoプロファイルで作業を再開します。

ここからはClaude Codeが自律的に動きます。

まずデータを確認

samples.nyctaxi.tripsテーブルのスキーマとサンプルデータを自動で調べます。

COLUMNS:
  tpep_pickup_datetime: timestamp
  tpep_dropoff_datetime: timestamp
  trip_distance: double
  fare_amount: double
  pickup_zip: int
  dropoff_zip: int

total_rows: 21932

AppKitのマニフェストを確認してスキャフォールド

どのプラグインが使えるか確認した上で、ダッシュボードに必要なanalyticsプラグインを選んでアプリを生成します。

databricks apps init --name nyc-taxi-dashboard --features analytics \
  --set analytics.sql-warehouse.id=bec52b183a4cfe2a \
  --description "NYC Taxi Trips Dashboard" --run none --profile tokyo
✔ Project created successfully!  (43 files)

SQLクエリを4本作成

ダッシュボードに必要なクエリをconfig/queries/に配置します。

  • kpi_summary.sql - 総トリップ数・平均距離・平均運賃・総売上
  • trips_by_hour.sql - 時間帯別トリップ数
  • fare_by_distance.sql - 距離帯別の平均運賃
  • top_pickup_zips.sql - 人気ピックアップZIPコードTop10

型を自動生成してからUIを実装

AppKitのワークフローに従い、SQLから型を生成してから(npm run typegen)UIを書きます。型が確定しているので、コンポーネントのpropsにタイポがあればコンパイルエラーになります。

BarChartDataTablequeryKeyを渡すだけでDatabricksのデータを自動取得してくれます。

// KPIは useAnalyticsQuery で値を取得してカード表示
const { data: kpi, loading, error } = useAnalyticsQuery('kpi_summary', EMPTY_PARAMS);

// グラフはqueryKeyを渡すだけ
<BarChart queryKey="trips_by_hour" parameters={emptyParams} />

// テーブルも同様
<DataTable queryKey="top_pickup_zips" parameters={emptyParams} pageSize={10} />

バリデーション → エラー → 自己修正

databricks apps validate --profile tokyo

型チェック・ビルドはパスしたものの、スモークテスト(Playwright)で引っかかりました。

Error: strict mode violation: getByText('Avg Fare') resolved to 2 elements:
    1) <div>Avg Fare</div>          ← KPIカードのタイトル
    2) <div>Avg Fare by Trip Distance</div>  ← グラフのタイトル

"Avg Fare"という文字列がページ内に2箇所あってテストが曖昧になっていました。Claude Codeは自分でテストのセレクタを修正して再実行します。

✅ All validation checks passed (14.9s)

デプロイ

databricks bundle deploy --profile tokyo
databricks bundle run app --profile tokyo
✓ App started successfully
You can access the app at https://nyc-taxi-dashboard-xxxx.aws.databricksapps.com

完成したダッシュボード

Screenshot 2026-04-03 at 10.06.00.png

KPIカード(4種類)

Screenshot 2026-04-03 at 10.27.45.png

総トリップ数・平均走行距離・平均運賃・総売上をカードで表示。ロード中はスケルトンアニメーションが出ます。

棒グラフ(2種類)

Screenshot 2026-04-03 at 10.28.06.png

  • 時間帯別トリップ数(朝・夕のラッシュアワーのピークが見える)
  • 距離帯別の平均運賃(距離が長いほど運賃が上がる)

テーブル

Screenshot 2026-04-03 at 10.28.31.png

人気ピックアップZIPコードTop10。ソートやフィルタリングが標準で使えます。

自分が入力したのはこれだけ

Create a new Databricks app that displays a dashboard of the nyc taxi trips dataset.
どのプロファイル使ってんの?
tokyo使えないの?
認証しました。tokyo使ってください

4回のメッセージのみです(うち2回はプロファイルの変更指示)。コードは1行も書いていません。

Claude Codeがやってくれたこと

  • Databricksプロファイルの確認と認証状態のチェック
  • samples.nyctaxi.tripsのスキーマ・サンプルデータの調査
  • AppKitのマニフェスト確認とスキャフォールド
  • 4本のSQLクエリ設計・作成
  • TypeScript型の自動生成
  • React UIの実装(KPIカード・棒グラフ・テーブル)
  • スモークテストの更新
  • バリデーションエラーの自己修正
  • バンドルデプロイとアプリ起動

まとめ

Claude Codeはスキルと呼ばれる拡張機能を使って動作します。今回はDatabricks Apps用のスキルが事前にインストールされており、AppKitの適切なワークフロー(SQL作成 → 型生成 → UI実装)を理解した上で開発を進めました。途中でセレクタの曖昧さによるテスト失敗を自分で直してくれたのは驚きました。

「どのデータを、どう見せたいか」だけ伝えれば、あとはClaude Codeに任せられます。

参考

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?