将 Lakebase 与 Databricks 应用配合使用

重要

Lakebase Autoscaling 是 Lakebase 的最新版本更新,具有自动缩放计算、缩放到零、分支和即时还原功能。 有关支持的区域,请参阅 区域可用性。 如果你是 Lakebase 预配的用户,请参阅 Lakebase 预配

Databricks Apps 允许直接在Azure Databricks工作区中生成和部署交互式应用程序。 将 Lakebase 添加为资源可让应用获得完全托管的 Postgres 后端。 Azure Databricks为应用创建服务主体,向其授予匹配的 Postgres 角色,并将连接详细信息作为环境变量注入。 应用连接到完全托管的 Postgres 数据库,而无需管理凭据或连接字符串。

显示客户端、Databricks 应用和 LKB 集成的体系结构关系图

本教程指导你部署连接到 Lakebase 数据库的模板应用。 最后,你将拥有一个正在运行的应用,其中包含可以直接从 Lakebase 检查和查询的数据,并可以选择在 Unity 目录中与 Lakehouse 数据一起注册。

先决条件

在开始之前,请确保具有以下各项:

  • 访问具有 Lakebase 和 无服务器计算 功能的 Azure Databricks 工作区。 如果需要,请与工作区管理员联系。
  • 创建计算资源和应用的权限。

步骤 1:预配 Lakebase 实例

Lakebase 项目是一个托管的 Postgres 实例,您的应用程序将其作为资源进行连接。 项目分为分支,每个 分支表示独立的数据库环境。

若要创建 Lakebase 项目,请参阅 Lakebase 自动缩放入门。 Lakebase 使用 production 分支和 databricks_postgres 数据库创建项目。

步骤 2:创建 Databricks 应用

Azure Databricks提供了三个自动缩放应用模板,用于演示使用 todos 应用实现 Lakebase 集成:Dash、Flask 和 Streamlit。 若要从模板创建应用,请执行以下操作:

  1. 在 Azure Databricks 工作区中,单击 App icon. 应用切换器,然后选择 Databricks Apps
  2. 单击“ + 创建应用”。
  3. “数据库 ”选项卡中选择首选模板。

Flask + LKB 自动缩放应用模板

步骤 3:配置数据库资源

将 Lakebase 添加为资源会创建具有正确数据库权限的服务主体,并将连接详细信息作为 环境变量 注入应用。 这样模板就可以自动连接到数据库,而无需代码中的任何连接字符串。

“配置 ”步骤中,配置以下设置。

  1. 对于 应用资源,请选择 Lakebase 项目、分支和数据库。 分支名称显示为标识符(ID)。 若要将 ID 与名称匹配,请参阅项目的 分支页
  2. 对于 计算大小,请选择“ 中等”。 这将控制应用服务器的计算,它与 Lakebase 数据库计算分开,并可独立扩展。

显示项目、分支和数据库选择的数据库资源配置

有关详细信息,请参阅 向 Databricks 应用添加 Lakebase 资源

步骤 4:查看授权

每个 Databricks 应用都作为自己的 服务主体(独立于任何单个用户的专用标识)运行。 将 Lakebase 作为资源连接时,Azure Databricks为该服务主体创建匹配的 Postgres 角色,并授予其完全数据库访问权限。 无需手动设置角色。

显示服务主体权限的授权评审

步骤 5:为应用命名并安装

Lakebase 使用应用名称生成格式为 {app-name}_schema_{service-principal-id} 的架构名称,并从 ID 中去除连字符。 创建后无法更改应用名称,但稍后可以重命名架构。 模板默认为 lakebase-autoscaling-app.

单击“ 创建应用 ”以创建应用。

步骤 6:部署应用

创建应用后,计算会自动启动,应用将在大约 2-3 分钟内部署,无需执行任何进一步操作。 当应用状态显示 “正在运行”时,单击其旁边的 URL 以打开应用。

显示“正在运行”状态和活动计算的应用概述

步骤 7:验证集成

在应用中添加几个待办事项。 在 Lakebase 项目中,打开 并选择应用架构下的待办事项表。 应用的服务主体使用步骤 3 中注入的连接详细信息编写了这些行。

LKB 表格视图,显示应用编写的待办任务

若要直接查询数据,请在 Lakebase 项目中使用 SQL 编辑器。 由于 Lakebase 在空闲时缩放为零,因此长时间暂停后的第一个查询可能需要几秒钟才能响应。 有关其他连接选项,请参阅 “连接到数据库”。

步骤 8:通过 Unity 目录查询(可选)

默认情况下,应用的 Lakebase 数据可通过 Postgres 连接直接访问。 在 Unity Catalog 中注册它可以使其与 Lakehouse 数据一起使用标准的 Databricks SQL 进行查询。 然后,可以将应用的事务表与同一查询中的 Delta 表联接。

若要注册,请打开目录资源管理器并创建新目录。 选择 Lakebase Postgres 作为目录类型,选择 “自动缩放”,然后选择与应用相同的项目和分支。 有关完整详细信息,请参阅 “在 Unity 目录中注册数据库 ”。

请注意,Unity 目录中的架构名称保留应用名称中的连字符。 目录名称和架构名称都需要反引号:

SELECT * FROM `your-catalog-name`.`lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d0`.todos;

了解详情