以前こちらの記事を書きました。
しかし、当時は日本リージョンでは利用できていませんでした。が、今回ついにAWS東京リージョンでDatabricks Appsが利用できるようになりました!
ということで、改めてDatabricks Appsのご紹介をさせてください。マニュアルはこちらです。
Databricks Appsは、データやAIを活用したアプリケーションをDatabricksプラットフォーム上で直接構築・デプロイできる新機能です。従来必要だった個別のインフラストラクチャ管理が不要となり、Unity CatalogやDatabricks SQLなどの既存サービスとシームレスに統合できます。PythonやNode.jsの主要フレームワークに対応し、インタラクティブなダッシュボードからRAGチャットアプリまで、幅広い内部ツールの開発が可能です。サーバレス環境でホストされるため、セキュリティやコンプライアンスの心配も軽減され、開発者はビジネスロジックに集中できます。
機能概要
Databricks Appsは、Databricksプラットフォーム上でデータアプリケーションやAIアプリケーションを構築・運用するための統合開発環境です。
主な特徴
| 特徴 | 説明 |
|---|---|
| サーバレスホスティング | Databricksサーバレスプラットフォームで自動的にホスト |
| プラットフォーム統合 | Unity Catalog、Databricks SQL、モデルサービングなどと連携 |
| 多言語対応 | PythonとNode.jsの両方をサポート |
| セキュリティ | OAuthとサービスプリンシパルによる認証・承認 |
| ワークスペース間移動 | 開発環境から本番環境へのスムーズな移行 |
サポートされているフレームワーク
Python系フレームワーク:
- Streamlit (データ可視化アプリケーション)
- Dash (インタラクティブダッシュボード)
- Gradio (機械学習デモアプリ)
Node.js系フレームワーク:
- React (フロントエンド)
- Angular (エンタープライズアプリ)
- Svelte (軽量フロントエンド)
- Express (バックエンドAPI)
メリット、嬉しさ
1. インフラ管理からの解放
従来のアプリケーション開発では、以下のような課題がありました:
[従来の開発]
アプリ開発 → インフラ構築 → セキュリティ設定 → デプロイ → 運用監視
↓ ↓ ↓ ↓ ↓
時間がかかる 専門知識必要 リスクあり 複雑 負担大
[Databricks Apps]
アプリ開発 → デプロイ
↓ ↓
本質に集中 簡単・高速
2. Databricksエコシステムとの深い統合
| 統合サービス | 実現できること |
|---|---|
| Unity Catalog | データガバナンスを維持したまま安全にデータアクセス |
| Databricks SQL | 高速なデータクエリとリアルタイム分析 |
| モデルサービング | 機械学習モデルの簡単な組み込み |
| Lakeflow | ETLパイプラインとの連携・自動化 |
3. 開発生産性の向上
- ローカル開発環境からそのままデプロイ可能
- 複雑なCI/CDパイプラインの構築不要
- ワークスペース間での簡単な移動とデプロイ
使い方の流れ
ステップ1: 開発環境の準備
# Python環境の場合
pip install streamlit pandas databricks-sdk
# Node.js環境の場合
npm install react express @databricks/sdk
ステップ2: アプリケーションの開発
例: Streamlitでのシンプルなデータ可視化アプリ
import streamlit as st
import pandas as pd
from databricks import sql
# Databricks SQLへの接続
connection = sql.connect(
server_hostname = "your-workspace.cloud.databricks.com",
http_path = "/sql/1.0/warehouses/your-warehouse-id",
access_token = "your-access-token"
)
# データの取得と表示
st.title("売上データダッシュボード")
df = pd.read_sql("SELECT * FROM sales_data", connection)
st.dataframe(df)
st.bar_chart(df['monthly_sales'])
ステップ3: デプロイメント
# Databricks CLIを使用したデプロイ
databricks apps deploy --app-name my-dashboard --path ./app
ステップ4: アクセスと共有
デプロイ完了後、自動的に生成されるURLからアプリケーションにアクセス可能:
https://your-workspace.cloud.databricks.com/apps/my-dashboard
注意点
1. 制限事項
| 制限項目 | 詳細 |
|---|---|
| ファイルサイズ | 単一ファイル10MB以下 |
| ログの保持 | コンピュートリソース終了時に削除 |
| ワークスペース | Standardレベルでは利用不可 |
| アプリ数 | ワークスペースごとに上限あり |
2. セキュリティ考慮事項
- ユーザー認証で付与した同意は取り消し不可
- 適切なアクセス権限の設計が重要
- サービスプリンシパルの管理に注意
3. 開発時の推奨事項
推奨される開発フロー:
1. ローカル環境でテスト
2. 開発ワークスペースでデプロイ
3. 動作確認後、本番ワークスペースへ移行
まとめ
Databricks Appsは、データとAIを活用したアプリケーション開発の敷居を大幅に下げる画期的な機能です。インフラ管理の負担から解放され、Databricksの強力なデータ処理能力と直接統合できることで、開発者はビジネス価値の創出に集中できます。
特に、内部ツールやダッシュボード、データ入力フォーム、RAGチャットアプリなど、組織内で使用するアプリケーションの開発に適しています。PythonとNode.jsの両方をサポートしているため、既存のスキルセットを活かしながら、高度なデータアプリケーションを構築できます。
制限事項や注意点を理解した上で活用すれば、データドリブンな意思決定を支援する強力なツールとなるでしょう。