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 アプリはどこで開発しますか?

PyCharm、IntelliJ IDEA、Visual Studio Code など、Python をサポートする任意の IDE でアプリを作成およびテストできます。 Databricks では、Visual Studio Code と Visual Studio Code の Databricks 拡張機能を使用してアプリを開発することをお勧めしますが、 Databricks ノートブックとファイル エディター を使用して、Databricks ワークスペースで直接コードを編集することもできます。

Databricks アプリを開発してデプロイするにはどうすればよいですか?

ローカル環境でアプリを作成するための最小要件は次のとおりです。

  • アプリのコードを含む Python ファイル。

  • Databricks コマンドライン インターフェイス (Databricks CLI)。

  • アプリの開発と実行に必要な Databricks ライブラリ。

ローカル開発環境を設定するには、「 要件」を参照してください。

アプリをローカルで開発するには、一般的なワークフローを次に示します。

  • Visual Studio Code などの好みの IDE でアプリを開発します。

  • コマンドラインでアプリをローカルに実行し、ブラウザで表示します。

  • コードが完成してテストされたら、コードと必要な成果物を Databricks ワークスペースに移動します。

初めての Databricks アプリを作成してデプロイする」を参照してください。

Databricks アプリで Python フレームワークを使用できますか?

Dash、Streamlit、Gradioなどのお気に入りのPythonフレームワークを使用してアプリを開発できます。

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 アプリの料金はいくらですか?

現時点では、アプリによって呼び出されたサービス ( SQLウェアハウス、サービス エンドポイント、 Databricks ジョブなど) に対してのみ課金されます。 Databricks アプリの最終的な価格モデルには追加料金が含まれ、今後発表される予定です。

Databricks Apps システム環境

以下では、アプリが実行されるシステム環境、アプリで使用できるリソース、インストールされているアプリケーションとライブラリのバージョンについて説明します。

  • オペレーティングシステム: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 ワークスペースには 10 個のアプリという制限があります。

  • アプリで使用されるファイルのサイズは 25 MB を超えることはできません。 アプリのディレクトリ内のファイルがこの制限を超えると、アプリのデプロイはエラーで失敗します。

  • Databricks Appsは、HIPPA、PCI、または FedRAMP コンプライアンス基準を満たしていません。

  • アプリによって作成されたログは、アプリをホストしている Databricks コンピュートが終了したときには保持されません。 「Databricks アプリからのログ記録」を参照してください。