什么是 Databricks 应用?

重要

Databricks 应用以公共预览版提供

Databricks 应用允许开发人员在 Databricks 平台上创建安全数据和 AI 应用程序,并与用户共享这些应用。

以前,创建使用 Databricks 工作区管理的数据的数据和 Databricks 平台的数据分析功能的数据和 AI 应用程序,需要部署单独的基础结构来托管应用程序,确保符合数据管理控制措施,管理应用程序安全性,包括身份验证和授权等。 借助 Databricks 应用,Databricks 托管应用,因此无需配置或部署其他基础结构。

你的应用可以使用 Databricks 平台的资源和功能,包括用于治理的 Unity 目录、Databricks SQL 来查询数据、AI 功能(例如模型服务、适用于 ETL 的 Databricks 作业)以及工作区中已配置的安全规则,包括控制对应用使用的数据的访问的规则。 身份验证和授权使用现有的 Azure Databricks 功能,包括 OAuth 和服务主体。

Databricks 为开发人员设计了 Databricks Apps。 可以使用任何框架(如 Dash、Streamlit 或 Gradio)在 Python 中开发应用。 由于应用是可移植的,因此可以在本地创建和调试它们,将其部署到 Databricks 工作区,然后将其移动到另一个工作区。

要求

工作区要求

若要在 Azure Databricks 工作区中部署和运行应用,工作区必须满足以下要求:

  • 必须确保防火墙不会阻止域 *.databricksapps.com
  • Databricks 工作区必须位于受支持的区域中。 请参阅 无服务器功能可用性。。

开发环境要求

若要在本地创建应用并将这些应用部署到 Azure Databricks 工作区,开发环境必须满足以下要求:

  • Python 3.11 或更高版本。

  • Databricks 命令行接口(Databricks CLI),版本 v0.229.0 或更高版本,配置为访问 Databricks 工作区。 若要安装或更新和配置 Databricks CLI,请参阅安装或更新 Databricks CLI 的 Databricks CLI 和身份验证。

  • 适用于 Python 的 Databricks SDK。 可以使用以下命令安装 SDK pip3

    pip3 install databricks-sdk

    请参阅 用于 Python 的 Databricks SDK。

  • (可选)如果你的应用需要访问 Databricks SQL,请安装用于 Python 的 Databricks SQL 连接器。 可以使用以下命令安装连接器 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 应用?

若要在本地开发应用,下面是典型的工作流:

  • 在首选 IDE(如 Visual Studio Code)中开发应用。
  • 在本地命令行上运行应用,并在浏览器中查看它。
  • 代码完成并测试后,将代码和所需项目移动到 Databricks 工作区。

请参阅 Databricks 应用入门。

若要在 UI 中创建应用或使用预生成的示例,请参阅如何实现在 Databricks 应用 UI 中创建应用?

能否将 Python 框架用于 Databricks 应用?

可以使用喜欢的 Python 框架(如 Dash、Streamlit 或 Gradio)开发应用。 可以在 Databricks 应用 UI 中查看使用常用 Python 框架的示例。 请参阅如何实现在 Databricks 应用 UI 中创建应用?

Databricks 应用如何管理授权?

Databricks 应用授权模型包括访问应用的用户和分配给应用的 Azure Databricks 托管服务主体:

  • 若要访问应用,用户必须对应用具有CAN_USE或CAN_MANAGE权限。 若要详细了解如何向应用分配权限,请参阅 “配置 Databricks 应用的权限”。

  • 创建应用后,Databricks 应用会自动创建 Azure Databricks 托管服务主体,并将该服务主体分配给应用。 此服务主体仅有权访问应用在其中创建的工作区,并且用于对工作区中的资源(例如 SQL 仓库、模型服务终结点或 Unity 目录中的安全对象)的访问权限进行身份验证和授权。 应用对数据或其他工作区资源的所有访问都代表服务主体执行,而不是应用所有者或用户。

    如果部署应用的用户对这些资源具有 CAN MANAGE 权限,Databricks Apps 会自动向分配给应用的任何资源授予服务主体权限。 如果需要服务主体访问其他资源,例如表或工作区文件,帐户或工作区管理员必须授予服务主体对这些资源的访问权限。 授予对资源的访问权限时,Databricks 建议遵循最低特权原则,并仅向服务主体授予所需的最低权限。 请参阅管理服务主体

    可以在应用资源卡的应用详细信息页上找到服务主体名称。 服务主体包括应用名称,例如,对于名为 my-hello-world-app的应用,服务主体名称为 app-22ixod my-hello-world-app

谁可以创建 Databricks 应用?

工作区中的任何用户都可以创建应用。 但是,若要管理分配给应用的服务主体的权限,你必须是帐户或工作区管理员。

如何实现配置 Databricks 应用?

Databricks Apps 会自动设置应用可以访问的多个环境变量,例如运行应用的 Databricks 主机。 还可以使用 YAML 文件设置自定义参数。 请参阅 Databricks Apps 配置

如何实现将我的 Databricks 应用与 Azure Databricks 服务集成?

应用可以使用 Databricks 平台功能(如 Databricks SQL)来查询数据、用于数据引入和处理的 Databricks 作业、用于访问生成 AI 模型的马赛克 AI 模型服务以及 Databricks 机密来管理敏感信息。 配置应用时,这些 Databricks 平台功能称为 资源

但是,由于应用设计为可移植,Databricks 建议应用不依赖于特定资源。 例如,不应对应用进行硬编码以使用特定的 SQL 仓库。 而是在创建或更新应用时在 Databricks Apps UI 中配置 SQL 仓库。

此外,由于应用配置为使用最少所需的权限运行,因此它们不应创建新资源。 相反,它们必须依赖于 Databricks 平台来解析现有的依赖服务。 每个应用都分配了一个 Databricks 服务主体。 在应用创建或更新期间,向服务主体授予对定义的资源依赖项所需的权限。

若要详细了解如何将 Databricks 平台功能添加为应用资源,请参阅 将 Databricks 平台功能分配给 Databricks 应用

在哪里可以找到 Databricks 应用的审核日志?

若要查找应用的审核事件,请使用 Azure Databricks 系统表。 可以使用系统表查询:

Databricks 应用的成本是多少?

有关 Databricks 应用的定价的信息,请参阅 适用于应用的计算。

Databricks Apps 系统环境

注意

若要查看特定应用的环境(包括环境变量和已安装的包),请转到 应用详细信息页上的“环境 ”选项卡。 请参阅 查看 Databricks 应用的详细信息。

下面介绍了应用运行的系统环境、可供应用使用的资源以及已安装的应用程序和库的版本。

  • 操作系统:Ubuntu 22.04 LTS
  • Python:3.11.0。 应用在 Python 虚拟环境中运行。 所有依赖项都安装在此虚拟环境中,包括自动安装的库和安装的任何库,例如,有一个 requirements.txt 文件。
  • 系统资源:应用最多可以使用两个虚拟 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
破折号 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 应用不符合 HIPAA、PCI 或 FedRAMP 合规性标准。

  • 当托管应用的 Azure Databricks 计算终止时,不会保留由应用创建的日志。 请参阅 Databricks 应用中的日志记录。

  • 由于它们不支持 OAuth,因此不能将旧区域 URL 与 Databricks 应用一起使用。