Databricks Appsとは
プレビュー
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 CLI の認証」を参照してください。
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 Appsは認証をどのように管理しますか?
Databricks Appsの認証モデルには、アプリにアクセスするユーザーと、アプリに割り当てられたDatabricksサービスプリンシパルが含まれます。
アプリにアクセスするには、ユーザーはアプリに対するCAN_USEまたはCAN_MANAGE権限を持っている必要があります。 アプリへのアクセス許可の割り当ての詳細については、「 Databricks アプリのアクセス許可を構成する」を参照してください。
アプリが作成されると、 Databricks Apps によって Databricks サービスプリンシパルが自動的に作成され、そのサービスプリンシパルがアプリに割り当てられます。 このサービスプリンシパルは、アプリが作成されるワークスペースにのみアクセスでき、 SQLウェアハウス、モデルサービング エンドポイント、 Unity Catalog内のセキュリティ保護可能なオブジェクトなど、ワークスペース内のリソースへのアクセスを認証および承認するために使用されます。 アプリによるデータまたはその他のワークスペース リソースへのすべてのアクセスは、アプリの所有者やユーザーではなく、サービスプリンシパルに代わって実行されます。
Databricks Appsをデプロイするユーザーがそれらのリソースに対する権限を持っている場合、アプリに割り当てられたリソースに対する権限
CAN MANAGE
自動的にサービスプリンシパルに付与されます。 サービスプリンシパルが他のリソース (テーブルやワークスペース ファイルなど) にアクセスする必要がある場合、アカウントまたはワークスペースの管理者は、サービスプリンシパルにそれらのリソースへのアクセス権を付与する必要があります。 リソースへのアクセスを許可する場合、 Databricks は最小特権の原則に従い、必要な最小限のアクセス許可のみをサービスプリンシパルに付与することをお勧めします。 Manage サービスプリンシパルを参照してください。サービスプリンシパルの名前は、 アプリ リソース カードのアプリ詳細ページで確認できます。 サービスプリンシパルには、たとえば
my-hello-world-app
という名前のアプリの場合、サービスプリンシパルの名前はapp-22ixod my-hello-world-app
です。
Databricks Appsを作成できるのは誰ですか?
ワークスペース内のすべてのユーザーがアプリを作成できます。 ただし、アプリに割り当てられたサービスプリンシパルの権限を管理するには、アカウント管理者またはワークスペース管理者である必要があります。
Databricks アプリを構成するにはどうすればよいですか?
Databricks Apps は、アプリが実行されている Databricks ホストなど、アプリがアクセスできるいくつかの環境変数を自動的に設定します。 YAML ファイルを使用してカスタム パラメーターを設定することもできます。 「Databricks Appsの構成」を参照してください。
Databricks アプリを Databricks サービスと統合するにはどうすればよいですか?
DatabricksDatabricks SQLアプリでは、Databricks (データのクエリ)、 ジョブ (データ取り込みと処理)、Mosaic AI Model Serving (生成AI モデルへのアクセス)、Databricks シークレット (機密情報の管理) など、 プラットフォーム機能を使用できます。アプリを構成するとき、これらの Databricks プラットフォーム機能は リソースと呼ばれます。
ただし、アプリは移植可能に設計されているため、Databricks では、アプリが特定のリソースに依存しないようにすることをお勧めします。 たとえば、特定の SQLウェアハウスを使用するようにアプリをハードコーディングしないでください。 代わりに、アプリを作成または更新するときに、 Apps UI で SQLウェアハウスを構成します。Databricks
さらに、アプリは必要最小限の特権で実行されるように構成されているため、新しいリソースを作成しないでください。 代わりに、既存の依存サービスを解決するために Databricks プラットフォームに依存する必要があります。 各アプリには、 Databricks サービスプリンシパルが割り当てられています。 アプリの作成または更新時に、サービスプリンシパルには、定義されたリソース依存関係に対する必要なアクセス許可が付与されます。
Databricks プラットフォーム機能をアプリ リソースとして追加する方法の詳細については、「 Databricks プラットフォーム機能を Databricks アプリに割り当てる」を参照してください。
Databricks Appsの監査ログはどこで確認できますか?
アプリの監査イベントを検索するには、 Databricks システムテーブルを使用します。 システムテーブルを使用して、次のクエリを実行できます。
アプリへのログイン。 「Databricks アプリにログインしたユーザー」を参照してください。
アプリに対する権限または共有の変更。 「他のユーザーまたはグループとアプリの共有方法を変更するために更新された Databricks アプリ」を参照してください。
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 |
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 ワークスペースには 50 個のアプリという制限があります。
アプリで使用されるファイルのサイズは 10 MB を超えることはできません。 アプリのディレクトリ内のファイルがこの制限を超えると、アプリのデプロイはエラーで失敗します。
Databricks Appsは、HIPPA、PCI、または FedRAMP コンプライアンス基準を満たしていません。
アプリによって作成されたログは、アプリをホストしている Databricks コンピュートが終了したときには保持されません。 「Databricks アプリからのログ記録」を参照してください。