3
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?

Databricks 上に Web アプリを構築してみた

3
Last updated at Posted at 2025-12-05

この記事は

この記事は DENSO Advent Calendar 2025 の6日目の記事です。

Databricks 上のテーブルをクエリしてデータを可視化するアプリケーションを作る機会があったので、簡易的に PoC を行うのにちょうど良さそうな Databricks Apps を触ってみました。この記事では Databricks Apps の紹介と、使い方、分かったこと・感想を書いていきます。

Databricks Apps とは

公式ドキュメント
https://docs.databricks.com/gcp/ja/dev-tools/databricks-apps/

Databricks Apps は、Databricks ワークスペース内に Web アプリをホストできる仕組みです。

  • Databricks 上で Web サーバを立てられる
  • Databricks に対してクエリを投げる
  • 特定の API 呼び出しを行う
  • Databricks CLI から簡単にデプロイ可能

といった特徴があり、Streamlit などの Web フレームワークを使って Web アプリを簡単にデプロイできる機能です。

使い方

Microsoft Azure 上の Databricks 環境でやっています。

Databricks へのログイン後、コンピュート -> アプリ -> アプリを作成 でアプリの新規作成画面に移ります。

image (1).png

今回はローカルで開発していた Next.js アプリをデプロイしたかったので、カスタムアプリを作成 を選択しました。

image (2).png

アプリ名説明 を入力、構成のページにてテーブルへのクエリに必要な SQL ウェアハウスの指定を行います。ここまで入力が完了したら アプリを作成 でデプロイ先のアプリリソースが完成します。

image (4).png
image (3).png

作成すると、アプリの詳細画面に遷移します。そのページに記載のある以下コマンドをデプロイしたいアプリケーションコードのあるディレクトリ直下で実行することにより、アプリがデプロイされます。ローカルで作成したアプリをデプロイするには、Databricks CLI の実行ディレクトリ直下に app.yaml を作成する必要があります。

参考:
https://docs.databricks.com/gcp/ja/dev-tools/databricks-apps/app-runtime

例:

command: ['streamlit', 'run', 'app.py']
env:
  - name: 'DATABRICKS_WAREHOUSE_ID'
    valueFrom: sql-warehouse
  - name: 'STREAMLIT_GATHER_USAGE_STATS'
    value: 'false'

デプロイには Databricks CLI を使用します。

CLI のインストール:
https://docs.databricks.com/aws/ja/dev-tools/cli/install

まず認証情報を設定します。

databricks configure --profile DEFAULT

入力例:

Databricks workspace host (https://...): https://hogehoge.azuredatabricks.net
Personal access token: ************************************

セットアップ後、以下のコマンドでデプロイを行います。デプロイには Databricks 環境内のワークスペースに存在するソースコードを使用して行うため、事前にワークスペースへコピーしておく必要があります。先に行う sync コマンドはコピーを実行するコマンドです。

databricks sync --watch . /Workspace/Users/<databricks_user_name>/<databricks_apps_name>
databricks apps deploy sample --source-code-path /Workspace/Users/<databricks_user_name>/<databricks_apps_name>

デプロイが成功すると、Databricks の アプリ一覧画面から「アプリを開く」 でアクセス可能になります。

アプリから Databricks へのアクセス(Node.js)

クエリ実行の方法は以下が参考になります。

https://docs.databricks.com/gcp/ja/dev-tools/nodejs-sql-driver?language=TypeScript#%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%AF%E3%82%A8%E3%83%AA

Azure Databricks 特有の注意点

Azure 上の Databricks では、Node.js SQL Driver 利用時に

  • azureTenantId
  • useDatabricksOAuthInAzure

connect オプションに指定しないと認証エラーになるケースがありました。

参考:
https://community.databricks.com/t5/administration-architecture/error-node-js-sql-driver-auth-using-m2m/td-p/63972

テナント ID は Azure Entra ID の概要画面から確認できます。

分かったこと

Pros

  • デプロイは簡単
  • Databricks ユーザーを使ってアクセス制御可能
  • トークンなどの認証情報を使わずにカタログなどの Databricks リソースへアクセス可能

Cons

  • リソース上限がある
  • アプリ ファイルのサイズは 10MB まで
  • コンピュートが停止すると ログも削除される
  • Standard レベルのワークスペースでは利用不可
  • 作成可能なアプリ数に上限あり

まとめ

Databricks リソースと連携させた PoC 等で環境構築を素早くやりたい用途にはフィットしている様に感じました。現時点は上限や制限がいくらかありますが、もし Databricks と連携させたアプリを開発する機会があれば、触ってみると良いのではないでしょうか。

3
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
3
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?