Databricks Apps とは
重要
Databricks Apps は Public Preview 段階です。
Databricks Apps を使用すると、開発者は Databricks プラットフォームでセキュリティで保護されたデータと AI アプリケーションを作成し、それらのアプリをユーザーと共有できます。
以前は、Databricks ワークスペースによって管理されるデータと Databricks プラットフォームのデータ分析機能を使用するデータと AI アプリケーションを作成するには、アプリケーションをホストするための個別のインフラストラクチャをデプロイし、データ ガバナンス制御への準拠、認証と承認を含むアプリケーションのセキュリティの管理などを行う必要があります。 Databricks Apps では、Databricks によってアプリがホストされるため、追加のインフラストラクチャを構成またはデプロイする必要はありません。
アプリでは、Databricks プラットフォームのリソースと機能 (ガバナンス用の Unity カタログ、Databricks SQL を含む) を使用してデータのクエリを実行したり、モデルサービスなどの AI 機能、ETL 用の Databricks ジョブ、ワークスペースで既に構成されているセキュリティ 規則 (アプリで使用されるデータへのアクセスを制御するルールなど) を使用したりできます。 認証と承認では、OAuth やサービス プリンシパルを含む既存の Azure Databricks 機能が使用されます。
Databricks は開発者向けに Databricks Apps を設計しました。 Dash、Streamlit、Gradio などの任意のフレームワークを使用して、Python でアプリを開発します。 アプリは移植可能であるため、ローカルでアプリを作成してデバッグし、Databricks ワークスペースにデプロイしてから、別のワークスペースに移動できます。
要件
ワークスペースの要件
Azure Databricks ワークスペースにアプリをデプロイして実行するには、ワークスペースが次の要件を満たしている必要があります。
- ファイアウォールがドメインの
*.databricksapps.com
をブロックしないようにする必要があります。 - Databricks ワークスペースは、サポートされているリージョンに存在する必要があります。 サーバーレス機能の可用性を参照してください。
開発環境の要件
ローカルでアプリを作成し、それらのアプリを Azure Databricks ワークスペースにデプロイするには、開発環境が次の要件を満たしている必要があります。
Python 3.11 以降。
Databricks ワークスペースにアクセスするように構成された Databricks コマンド ライン インターフェイス (Databricks CLI) バージョン v0.229.0 以降。 Databricks CLI をインストールまたは更新して構成するには、「 Databricks CLI のインストールまたは更新および Databricks CLI の認証のを参照してください。
Databricks SDK for Python。
を使用して SDK をインストールできます。 pip3 install databricks-sdk
(省略可能)アプリが Databricks SQL にアクセスする必要がある場合は、Databricks SQL Connector for Python をインストールします。
pip3
を使用してコネクタをインストールできます。pip3 install databricks-sql-connector
Databricks アプリはどこで開発できますか?
Python をサポートする任意の IDE (PyCharm、IntelliJ IDEA、Visual Studio Code など) でアプリを作成およびテストできます。 Databricks では、Visual Studio Code と Visual Studio Code 用の Databricks 拡張機能を使用してアプリを開発することをお勧めしますが、 Databricks ノートブックとファイル エディターを使用して Databricks ワークスペースでコードを直接編集することもできます。
Databricks アプリを開発してデプロイ操作方法
アプリをローカルで開発するには、一般的なワークフローを次に示します。
- Visual Studio Code などの任意の IDE でアプリを開発します。
- コマンド ラインでアプリをローカルで実行し、ブラウザーで表示します。
- コードが完了してテストされたら、コードと必要な成果物を Databricks ワークスペースに移動します。
Get started with Databricks Apps を参照してください。
UI でアプリを作成する場合、または事前構築済みの例を使用する場合は、Databricks Apps UI でアプリ操作方法作成する方法に関するを参照してください。
Databricks アプリで Python フレームワークを使用できますか?
Dash、Streamlit、Gradio など、お気に入りの Python フレームワークを使用してアプリを開発できます。 Databricks Apps UI で一般的な Python フレームワークを使用する例を確認できます。 Databricks Apps UI でアプリ操作方法作成する方法に関するを参照してください。
Databricks Apps では承認はどのように管理されますか?
Databricks Apps 承認モデルには、アプリにアクセスするユーザーと、アプリに割り当てられた Azure Databricks マネージド サービス プリンシパルが含まれます。
アプリにアクセスするには、ユーザーがアプリに対するCAN_USEまたはCAN_MANAGEアクセス許可を持っている必要があります。 アプリへのアクセス許可の割り当ての詳細については、「databricks アプリのアクセス許可の構成を参照してください。
アプリが作成されると、Databricks Apps によって Azure Databricks マネージド サービス プリンシパルが自動的に作成され、そのサービス プリンシパルがアプリに割り当てられます。 このサービス プリンシパルは、アプリが作成され、ワークスペース内のリソース (SQL ウェアハウス、モデル サービス エンドポイント、Unity カタログ内のセキュリティ保護可能なオブジェクトなど) へのアクセスを認証および承認するために使用されるワークスペースにのみアクセスできます。 データまたはその他のワークスペース リソースに対するアプリによるすべてのアクセスは、アプリの所有者やユーザーではなく、サービス プリンシパルに代わって実行されます。
Databricks Apps は、アプリをデプロイするユーザーがそれらのリソースに対して
CAN MANAGE
アクセス許可を持っている場合、アプリに割り当てられているすべてのリソースにサービス プリンシパルのアクセス許可を自動的に付与します。 テーブルやワークスペース ファイルなど、サービス プリンシパルによる他のリソースへのアクセスが必要な場合は、アカウントまたはワークスペース管理者がそれらのリソースへのアクセス権をサービス プリンシパルに付与する必要があります。 リソースへのアクセスを許可する場合、Databricks では、最小限の特権の原則に従い、サービス プリンシパルに必要な最小限のアクセス許可のみを付与することをお勧めします。 「サービス プリンシパルを管理する」を参照してください。サービス プリンシパル名は、 App リソース カードのアプリの詳細ページにあります。 サービス プリンシパルにはアプリ名が含まれます。たとえば、
my-hello-world-app
という名前のアプリの場合、サービス プリンシパル名はapp-22ixod my-hello-world-app
。
Databricks アプリを作成できるユーザー
ワークスペース内の任意のユーザーがアプリを作成できます。 ただし、アプリに割り当てられているサービス プリンシパルのアクセス許可を管理するには、アカウントまたはワークスペース管理者である必要があります。
Databricks アプリ操作方法構成しますか?
Databricks Apps は、アプリが実行されている Databricks ホストなど、アプリがアクセスできるいくつかの環境変数を自動的に設定します。 YAML ファイルを使用してカスタム パラメーターを設定することもできます。 Databricks Apps の構成を参照してください。
Databricks アプリを Azure Databricks サービスと統合操作方法
アプリでは、Databricks SQL などの Databricks プラットフォーム機能を使用してデータのクエリを実行し、Databricks ジョブを使用してデータインジェストと処理を行い、モザイク AI モデル サービスを使用して生成 AI モデルにアクセスし、Databricks シークレットを使用して機密情報を管理できます。 アプリを構成する場合、これらの Databricks プラットフォーム機能は resources と呼ばれます。
ただし、アプリは移植可能に設計されているため、Databricks では、アプリが特定のリソースに依存しないことをお勧めします。 たとえば、特定の SQL ウェアハウスを使用するようにアプリをハードコーディングしないでください。 代わりに、アプリを作成または更新するときに、Databricks Apps UI で SQL ウェアハウスを構成します。
また、アプリは最低限必要な特権で実行するように構成されているため、新しいリソースを作成しないでください。 代わりに、既存の依存サービスを解決するには、Databricks プラットフォームに依存する必要があります。 各アプリには、Databricks サービス プリンシパルが割り当てられます。 アプリの作成または更新中に、定義されたリソース依存関係に対する必要なアクセス許可がサービス プリンシパルに付与されます。
Databricks プラットフォーム機能をアプリ リソースとして追加する方法の詳細については、「 Databricks プラットフォーム機能を Databricks アプリに割り当てを参照してください。
Databricks アプリの監査ログはどこにありますか?
アプリの監査イベントを検索するには、Azure Databricks システム テーブルを使用します。 システム テーブルを使用して、次のクエリを実行できます。
- アプリにログインします。 ユーザーが Databricks アプリにログインした を参照してください。
- アプリに対するアクセス許可または共有の変更。 「 他のユーザーまたはグループとアプリを共有する方法を変更するには、Databricks アプリが更新されたを参照してください。
Databricks Apps のコストは何ですか?
Databricks Apps の価格については、「 Compute for Apps」を参照してください。
Databricks Apps システム環境
Note
環境変数やインストールされているパッケージなど、特定のアプリの環境を表示するには、アプリの詳細ページの Environment タブに移動します。 Databricks アプリの詳細を確認するを参照してください。
次に、アプリを実行するシステム環境、アプリで使用できるリソース、インストールされているアプリケーションとライブラリのバージョンについて説明します。
- オペレーティング システム: Ubuntu 22.04 LTS
- Python: 3.11.0。 アプリは Python 仮想環境で実行されます。 この仮想環境には、自動的にインストールされたライブラリや、
requirements.txt
ファイルなど、インストールするライブラリなど、すべての依存関係がインストールされます。 - システム リソース: アプリでは、最大 2 つの仮想 CPU (vCPU) と 6 GB のメモリを使用できます。 割り当てられたリソースを超えると、アプリが再起動される可能性があります。
インストールされている Python ライブラリ
ライブラリ | バージョン |
---|---|
databricks-sql-connector | 3.4.0 |
databricks-sdk | 0.33.0 |
mlflow-skinny | 2.16.2 |
gradio | 4.44.0 |
streamlit | 1.38.0 |
shiny | 1.1.0 |
dash | 2.18.1 |
flask | 3.0.3 |
fastapi | 0.115.0 |
uvicorn[standard] | 0.30.6 |
gunicorn | 23.0.0 |
dash-ag-grid | 31.2.0 |
dash-mantine-components | 0.14.4 |
dash-bootstrap-components | 1.6.0 |
plotly | 5.24.1 |
plotly-resampler | 0.10.0 |
制限事項
Databricks ワークスペースには 10 個のアプリの制限があります。
アプリで使用されるファイルのサイズは 10 MB を超えることはできません。 アプリのディレクトリ内のファイルがこの制限を超えると、アプリのデプロイはエラーで失敗します。
Databricks Apps は、HIPAA、PCI、または FedRAMP のコンプライアンス標準を満たしていません。
アプリによって作成されたログは、アプリをホストする Azure Databricks コンピューティングが終了しても保持されません。 Databricks アプリからの ログ記録を参照してください。
OAuth はサポートされていないため、Databricks Apps でリージョン URL を使用することはできません。