Databricks アプリとは
プレビュー
Databricks Apps は パブリック プレビュー段階です。
Databricks Apps を使用すると、開発者は Databricks プラットフォーム上で安全なデータアプリケーションと AI アプリケーションを作成し、それらのアプリをユーザーと共有することができます。
これまで、Databricksワークスペースによって管理されるデータや プラットフォームのデータ分析機能を使用するデータやAI アプリケーションを作成するには、アプリケーションをホストするための個別のインフラストラクチャのデプロイ、データガバナンス制御によるコンプライアンスの確保、認証や承認などのアプリケーションセキュリティの管理などが必要でした。Databricks Apps では、Databricks がアプリをホストしているため、追加のインフラストラクチャを構成またはデプロイする必要はありません。
アプリでは、ガバナンスのための Unity Catalog、データのクエリを実行するための Databricks SQL、モデルサービングなどの AI 機能、ETL 用の Databricks ジョブ、ワークスペース内の既に設定されているセキュリティルール (アプリで使用されるデータへのアクセスを制御するルールなど) など、Databricks プラットフォームのリソースと機能を使用できます。 認証と承認では、Databricks OAuthやサービス プリンシパルなどの既存の 機能を使用します。
Databricks は、開発者向けに Databricks Appsを設計しました。 Python では、Dash、Streamlit、Gradio などのフレームワークを使用してアプリを開発します。 アプリは移植可能であるため、アプリをローカルで作成してデバッグし、Databricks ワークスペースにデプロイしてから、別のワークスペースに移動できます。
必要条件
ワークスペースの要件
Databricks ワークスペースでアプリをデプロイして実行するには、ワークスペースが次の要件を満たしている必要があります。
- ファイアウォールがドメイン
*.databricksapps.com
をブロックしていないことを確認する必要があります。 - Databricks ワークスペースは、サポートされているリージョンに存在する必要があります。 サーバレス機能の可用性を参照してください。
開発環境の要件
アプリをローカルに作成し、それらのアプリを Databricks ワークスペースにデプロイするには、開発環境が次の要件を満たしている必要があります。
-
Python 3.11 以降。
-
Databricks コマンドライン インターフェイス (Databricks CLI) バージョン v0.229.0 以降 (Databricks ワークスペースにアクセスするように構成)。Databricks CLI をインストールまたは更新するには、「 Databricks CLI のインストールまたは更新」を参照してください。Databricks では、「 ワークスペースへのアクセスを構成する」で説明されている OAuth ユーザー間 (U2M) 認証を使用してアクセスを構成することをお勧めします。
-
Databricks SDK for Python。 SDKは
pip3
でインストールできます。pip3 install databricks-sdk
「Databricks SDK for Python」を参照してください。
-
(オプション)アプリで Databricks SQL にアクセスする必要がある場合は、Databricks SQL Connector for Python をインストールします。 コネクタは次のようにインストールできます
pip3
pip3 install databricks-sql-connector
Databricks アプリはどこで開発しますか?
PyCharm、IntelliJ IDEA、Visual Studio Code など、Python をサポートする任意の IDE でアプリを作成およびテストできます。 Databricks では、Visual Studio Code と Visual Studio Code の Databricks 拡張機能を使用してアプリを開発することをお勧めしますが、 Databricks ノートブックとファイル エディター を使用して、Databricks ワークスペースで直接コードを編集することもできます。
Databricks アプリを開発してデプロイするにはどうすればよいですか?
アプリをローカルで開発するには、一般的なワークフローを次に示します。
- Visual Studio Codeなど、お好みのIDEでアプリを開発してください。
- コマンドラインでアプリをローカルに実行し、ブラウザで表示します。
- コードが完成してテストされたら、コードと必要なアーティファクトを Databricks ワークスペースに移動します。
「Databricks Apps の概要」を参照してください。
UI でアプリを作成するか、事前構築済みの例を使用してアプリを作成するには、「 Databricks Apps UI でアプリを作成するにはどうすればよいですか?」を参照してください。
Databricks アプリで Python フレームワークを使用できますか?
アプリは、Dash、Streamlit、Gradioなどのお気に入りのPythonフレームワークを使用して開発できます。 一般的な Python フレームワークを使用する例は、Databricks Apps UI で確認できます。 「Databricks Apps UI でアプリを作成するにはどうすればよいですか?」を参照してください。
Databricks アプリは認証をどのように管理しますか?
Databricks アプリの承認モデルでは、OAuth 2.0 プロトコルが使用され、アプリに割り当てられたアクセス許可と、アプリにアクセスするユーザーに割り当てられたアクセス許可が含まれます。アプリの権限は、アプリに割り当てられた Databricks サービスプリンシパルによって決定され、ユーザーの権限は、ログインしているワークスペース ユーザーに割り当てられたユーザー トークンによって決定されます。 このモデルでは、アプリがアクセスできるリソースと、アプリのユーザーがアクセスできるリソースを制御および分離できます。
Databricks アプリ承認モデルとその使用方法の詳細については 、「Databricks アプリ承認モデルの使用」を参照してください。Databricks プラットフォームでの OAuth の使用の詳細については、「 Databricks リソースへのアクセスの承認」を参照してください。
Databricks アプリを作成できるのは誰ですか?
ワークスペース内のすべてのユーザーがアプリを作成できます。 ただし、アプリに割り当てられたサービスプリンシパルの権限を管理するには、アカウント管理者またはワークスペース管理者である必要があります。
Databricks アプリを構成するにはどうすればよいですか?
Databricks Apps は、アプリが実行されている Databricks ホストなど、アプリがアクセスできるいくつかの環境変数を自動的に設定します。 YAML ファイルを使用してカスタム パラメーターを設定することもできます。 「Databricks アプリの構成」を参照してください。
Databricks アプリを Databricks サービスと統合するにはどうすればよいですか?
DatabricksDatabricks SQLアプリでは、Databricks (データのクエリ)、 ジョブ (データ取り込みと処理)、Mosaic AI Model Serving (生成AI モデルへのアクセス)、Databricks シークレット (機密情報の管理) など、 プラットフォーム機能を使用できます。アプリを構成するとき、これらの Databricks プラットフォーム機能は リソース と呼ばれます。
ただし、アプリは移植可能に設計されているため、Databricks では、アプリが特定のリソースに依存しないようにすることをお勧めします。 たとえば、特定の SQLウェアハウスを使用するようにアプリをハードコーディングしないでください。 代わりに、アプリを作成または更新するときに、 Apps UI で SQLウェアハウスを構成します。Databricks
さらに、アプリは必要最小限の特権で実行されるように構成されているため、新しいリソースを作成しないでください。 代わりに、既存の依存サービスを解決するために Databricks プラットフォームに依存する必要があります。 各アプリには、 Databricks サービスプリンシパルが割り当てられています。 アプリの作成または更新時に、サービスプリンシパルには、定義されたリソース依存関係に対する必要なアクセス許可が付与されます。
Databricks プラットフォーム機能をアプリ リソースとして追加する方法の詳細については、「 Databricks プラットフォーム機能を Databricks アプリに割り当てる」を参照してください。
Databricks アプリの監査ログはどこで確認できますか?
アプリの監査イベントを検索するには、 Databricks システムテーブルを使用します。 システムテーブルを使用して、次のようなクエリを実行できます。
- アプリにログインしたユーザーはどのユーザーですか?「Databricks アプリにログインしたユーザー」を参照してください。
- 権限や共有が変更されたアプリはどれですか?「他のユーザーまたはグループとアプリの共有方法を変更するために更新された Databricks アプリ」を参照してください。
- 最近作成されたアプリは何ですか?「最近作成された Databricks アプリはどれですか?」を参照してください。
- アプリのユーザーは最近どのようなアクションを実行しましたか?「Databricks Apps ユーザーによる最新のアクションは何ですか?」を参照してください。
Databricks アプリの料金はいくらですか?
Databricks Appsの価格については、「コンピュートfor Apps」をご覧ください。
Databricks Apps システム環境
環境変数やインストール済みパッケージなど、特定のアプリの環境を表示するには、アプリの詳細ページの [環境 ] タブに移動します。 「Databricks アプリの詳細を表示する」を参照してください。
以下では、アプリが実行されるシステム環境、アプリで使用できるリソース、インストールされているアプリケーションとライブラリのバージョンについて説明します。
- オペレーティングシステム :Ubuntu 22.04 LTS
- Pythonの: 3.11.0。 アプリは Python 仮想環境で実行されます。 この仮想環境には、自動的にインストールされるライブラリや、
requirements.txt
ファイルなどを使用してインストールするライブラリなど、すべての依存関係がインストールされます。 - システム リソース : アプリでは、最大 2 つの仮想 CPU(vCPU)と 6 GB のメモリを使用できます。 アプリが割り当てられたリソースを超えると、アプリが再起動される可能性があります。
インストール済み Python ライブラリ
ライブラリ | バージョン |
---|---|
Databricks の SQL コネクタ | 3.4.0 |
データブリックス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 ワークスペースには 50 個のアプリという制限があります。
- アプリで使用されるファイルのサイズは 10 MB を超えることはできません。 アプリのディレクトリ内のファイルがこの制限を超えると、アプリのデプロイはエラーで失敗します。
- Databricks Appsは、HIPPA、PCI、または FedRAMP コンプライアンス基準を満たしていません。
- アプリによって作成されたログは、アプリをホストしている Databricks コンピュートが終了すると保持されません。 「Databricks アプリからのログ記録」を参照してください。
- ユーザー代理認証を使用するアプリに同意を付与した場合、後で同意を取り消すことはできません。