1. はじめに

皆さんこんにちは。

今回はDatabricks環境におけるDatabricks Appsの設定および利用方法について説明していきます。

【背景】

多くの企業において、Databricksはデータ処理およびAI/MLモデル構築の中核基盤として活用されています。しかし、その分析結果やデータをエンドユーザーへ提供する際には、別途アプリケーションやダッシュボードを構築する必要があり、以下のような課題が発生します。

・追加インフラの管理が必要となる
・セキュリティ設定が複雑化する
・データアクセス権限の同期が必要となる
・運用コストおよび導入期間が増加するなど

Databricks Appsはこれらの課題を解決するために提供された機能であり、外部インフラを追加することなく、Databricks上で直接インタラクティブなアプリケーションを構築可能とします。既存のデータ、AI/MLモデル、セキュリティ機構をそのまま活用できる点が特徴です。

【目的】

本記事では、Databricks Appsの概要を紹介するとともに、Databricks環境における基本的な設定および利用方法について、実践的かつ簡潔に解説することを目的とします。これにより、読者がDatabricks Appsを迅速に理解し、社内のデータ分析やAI活用に適用できることを目指します。

【目標】

本記事を通じて、読者は以下を達成できるます。

  • Databricks Appsの概要およびDatabricks内での役割を理解する。
  • Databricks Appsの基本的な設定および利用方法を把握する。

2.前提条件

本手順を実施する前に、以下の前提条件を満たしていることを確認する必要があります。

  • Databricks Workspace「Premium」サービスレベルであり、かつServerless対応リージョンに配置されていること。
  • Databricks WorkspaceでUnity Catalogが有効化されていること。
  • ユーザーがUnity Catalog上でSQL Warehouseおよびテーブルを作成する権限を有していること。
  • ソースコードおよびサンプルデータを事前にダウンロードしていること。

3.Databricks Appsの概要

Databricks Appsは、専用のインフラを別途用意せずに、Databricks上でデータおよびAIアプリケーションを直接構築・デプロイできる機能である。
本アプリケーションはServerless基盤上で動作し、Unity Catalog、Databricks SQL、およびOAuth認証と密接に統合されています。
また、Streamlit、Gradio、Reactなどの一般的なフレームワークをサポートしており、コンピュート使用時間に基づいて課金されます。

各Databricks Appは、それぞれ独立した構成、アイデンティティ、およびランタイム環境を持ち、アプリケーション間の分離性とセキュリティを確保します。
アプリは特定のワークスペースに紐づくため、Databricks SQL Warehouseなどのワークスペースレベルのリソースに直接アクセスできるほか、Unity Catalogのようなアカウントレベルの共有リソースにもアクセス可能です。
さらに、同一Databricksアカウント内であれば、ワークスペース外のユーザーに対してアプリケーションを共有することもできます。

加えて、Databricks Appsはネットワーク制御機能もサポートしており、アプリケーションのセキュリティを確保するために、インバウンドおよびアウトバウンドトラフィックの管理が可能です。
詳細についてはこの公式ドキュメントをご参照ください。

4.Databricks Appsを用いたチャットボットアプリケーションの構築手順

デモサンプルのご紹介

本セクションでは、詳細な設定手順に入る前に、本記事全体で使用するデモサンプルの概要をご説明いたします。具体的には、目的、実施手順、および最終的に得られる成果について整理します。
本デモでは、ユーザーが質問を入力し、Unity Catalogに格納されたデータに基づいて回答を取得できるチャットボットアプリケーションを構築します。本アプリケーションはDatabricks Appsを用いてDatabricks上に直接デプロイされ、Databricks GenieおよびDatabricks SQL Warehouseと連携することで、自然言語によるデータクエリの処理を実行します。

デモで使用するデータソースは、Kaggleで公開されているJapan Cherry Blossoms Forecasts 2024であり、日本全国の桜の開花予測データが含まれています。

全体の流れは以下の通りです。
1. ソースコードおよびデータセットをDatabricks Workspaceへインポートする同時にUnity Catalogへデータを登録する。
2. Databricks Genieを設定し、チャットボットが質問を理解してデータクエリを実行できるようにする。
3. Databricks Appsを用いてチャットボットアプリケーションをデプロイし、ソースコードをDatabricks上で直接実行可能なWebアプリとして実行する。
4. アプリケーションの動作検証を行い、桜データに関する質問を入力して、期待通りの回答が返却されることを確認する。

本デモを完了することで、以下の成果が得られます。
1. チャットボットとして動作する、完全なDatabricks Appsアプリケーション
2. Unity Catalog上のデータに対して直接対話が可能なアプリケーション
3. Databricks Apps、GenieおよびSQL Warehouseがどのように連携するかを示す実践的なシナリオ
4. データチャットボットや社内向けAIアプリケーションの参考として活用可能な実装サンプル

本サンプルをもとに、企業内データ分析チャットボット、社内データアシスタント、またはDatabricks上の既存データを活用した直接対話のAIアプリケーションなど、さまざまなユースケースへ容易に展開することが可能です。

4-1.Databricks Workspaceへのソースコードおよびデータセットのインポート手順

ソースコードおよびデータセットのインポート手順

以下は、ソースコードをDatabricks Workspaceへインポートする手順は次の通りです。

1. Databricks Workspaceのホーム画面から、 「ワークスペース」→「インポート」を順次押下します。

2. 前提条件の手順でダウンロードした「sample_code.zip」ファイルをアップロードし、「インポート」を押下します。

3. ソースコードがユーザーのフォルダに正常にアップロードされていることを確認します。

続いて、サンプルデータのアップロードを実施します。

4. サンプルデータをUnity Catalogにアップロードするため、まずDatabricks SQL Warehouseを作成する必要があります。

「SQLウェアハウス」→「SQLウェアハウスを作成」を押下します。

5. 以下の設定で作成します。

  • エンドポイント名: sql-warehouse
  • クラスターサイズ: XXS
  • 自動停止: 10
  • スケーリング: 最小:1 – 最大:1
  • タイプ: サーバーレス

6. 「作成」ボタンを押下します。

7. Databricks SQL Warehouse が正常に作成され、ステータスが「実行中」となっていることを確認します。

8. 次に、対象のカタログおよびスキーマを選択し、「作成」→「テーブル」を順次押下してテーブルを作成します。

9. 前提条件の手順でダウンロードした「cherry_blossom_places.csv」ファイルをアップロードします。

10. プレビュー画面が表示されるため、「テーブルを作成」を押下してテーブルを作成します。

11. 「cherry_blossom_places」テーブルが正常に作成されていることを確認します。

12. 続いて、「cherry_blossom_forecasts.csv」ファイルを使用して、「cherry_blossom_forecasts」テーブルを作成します。

13. 「cherry_blossom_forecasts」テーブルが正常に作成されていることを確認します。

これで、ソースコードおよびデータセットのインポートは完了です。

4-2.Genieの設定手順

以下は、Databricks Genieの設定手順です。

1. Databricks Workspaceのホーム画面から、「Genie」→「New」を順次押下します。

2. 作成した2つのテーブルを選択し、「作成」を押下します。

3. Databricks Genie が正常に作成されていることを確認します。

実際に質問を入力すると、先ほど作成した2つのテーブルに基づいた回答が返却されることを確認できます。

これで、Genieの作成は完了です。

4-3.Databricks Appsを用いたソースコードのデプロイ手順

ソースコードのデプロイ手順

1. 左のサイドメニューから「コンピュート」を押下し、「アプリ」タブで「アプリを作成」ボタンを押下します。

2.「カスタムアプリを作成」を選択します。

3. アプリの基本情報を以下の通り設定します。

  • アプリ名: dtb-app-genie
  • サーバレス使用ポリシー: なし

その後、「次へ:構成」ボタンを押下します。

本項では、アプリがDatabricks Genie、SQL Warehouse、およびUnity Catalogへアクセスできるように権限設定を行います。

4. 「アプリのリソース」にて「リソースを追加」を押下し、以下のリソースおよび権限を設定します。

  • 作成したDatabricks Genieに対して「実行可能」権限を付与する
  • 作成したSQL Warehouseに対して「使用可能」権限を付与する
  • 作成した「cherry_blossom_forecasts」テーブルに対して「選択可能」権限を付与する
  • 作成した「cherry_blossom_places」テーブルに対して「選択可能」権限を付与する

5. 「コンピュート」の項目で「M」サイズを選択し、「アプリを作成」を押下します。

6. アプリの作成が完了すると、アクセス用のURLが画面上に表示されることを確認できます。
ただし、この時点ではソースコードがまだデプロイされていないため、アプリケーションへはアクセスできません。
以下では、ソースコードのデプロイ手順をご説明いたします。

7. 「デプロイ」ボタンを押下し、事前にインポートしたソースコードのパスを選択します。

8. 「デプロイ」押下します。デプロイ処理が開始されます。

9. デプロイ処理が正常に完了し、アプリが利用可能な状態となっていることを確認します。

これでデプロイ作業は完了です。

4-4.動作検証

【動作検証

1. 正常にデプロイできた後、表示されているURLを押下してアプリケーションへアクセスします。

2. チャット画面が表示されるため、サンプルデータに関する質問を入力します。データに基づいた回答が返却されることを確認できます。

これにより、アプリケーションが期待通りに動作していることを確認できます。

5. Databricks Appのメリットおよびデメリット

Databricks Appsを用いたチャットボットアプリケーションの構築デモを通じて、Databricks AppsはデータおよびAIを迅速にエンドユーザーへ提供するための非常に有効なソリューションであることが分かりました。特に、Databricksをデータ基盤として利用している企業環境において、その効果は顕著です。

以下に、Databricks Appsのメリットおよびデメリットを整理します。

評価観点 メリット デメリット
展開 専用のWebインフラが不要で、Databricks上に直接デプロイ可能 Databricks Workspace /アカウント内での利用に限定される
データ統合 Unity Catalog、Delta Lake、Databricks SQL Warehouseへ直接アクセス可能 Databricksシステム環境への依存度が高い
セキュリティー 既存の権限設定およびOAuthをそのまま継承可能 独自構築のセキュリティ基盤と比較すると柔軟性が低い
開発 Streamlit、Gradio、Reactなどを用いて迅速に開発可能 使用するフレームワークに依存するため、UI/UXの自由度に制約がある
AI・分析 DatabricksやAI/MLサービスとの親和性が高い 大規模なリアルタイムAIワークロードには適さない
コスト 固定的なインフラコストが不要 コンピュート使用量に応じた課金のため、実行時間の管理が必要

6. まとめ

チャットボットアプリケーションの構築デモを通じて、Databricks Appsは、Databricks上のデータおよびAIを迅速にエンドユーザー向けのインタラクティブなアプリケーションへと変換するための有効なツールであることが分かります。

また、Unity Catalog、Databricks Genie、およびDatabricks SQL Warehouseとの密接な統合により、アプリケーションの開発・デプロイ・セキュリティ管理のプロセスが大幅に簡素化されます。

今回の記事が少しでも皆さんの新しい知識や業務のご参考になれば幸いです。

双日テックイノベーションでは、Azure Databricksの環境構築パッケージを用意しています。
Azure DatabricksやAzure活用、マイクロソフト製品の活用についてご相談事がありましたら是非お問い合わせください!

Azure Databricks連載記事のまとめはこちら

お問い合わせはこちら


この記事を読んだ方へのオススメコンテンツはこちら


この記事を書いた人

Azure支援デスク 管理者
Azure支援デスク 管理者
双日テックイノベーション(旧:日商エレクトロニクス)特設サイト「Azure導入支援デスク」サイトマスターです。