将 Lakebase 数据库实例 添加为 Databricks Apps 资源,以跨部署保留数据。 这些 PostgreSQL 支持的资源使应用能够创建和管理保留状态的架构和表。
重要
Lakebase 数据库实例以 公共预览版提供。 工作区管理员必须先启用它们,然后才能将其添加为应用资源。
添加数据库资源
在将 Lakebase 数据库实例添加为应用资源之前,请查看 资源先决条件。
- 创建或编辑应用时,导航到 “配置” 步骤。
- 在 “应用资源 ”部分中,单击“ + 添加资源”。
- 选择 “数据库 ”作为资源类型。
- 选择数据库实例。
- 选择该实例中的数据库。
- 为应用选择适当的权限级别。 目前,唯一可用的权限是 可以连接和创建。
- (可选)指定自定义资源密钥,即在应用配置中引用数据库的方式。 默认键为
database.
添加数据库资源时:
- Azure Databricks 在所选数据库实例中创建 PostgreSQL 角色。 角色名称与 服务主体的 客户端 ID 匹配。 如果该角色已存在,Azure Databricks 将重复使用它。
- Azure Databricks 授予对所选数据库的服务主体
CONNECT和CREATE特权。 这些权限允许应用在数据库中创建架构和表。
环境变量
使用数据库资源部署应用时,Azure Databricks 为第一个数据库资源设置以下环境变量。
如果应用使用多个数据库,则这些变量仅反映第一个数据库。 使用 valueFrom 及资源键来检索数据库的主机名。 请参阅 使用环境变量访问资源。
| 变量 | DESCRIPTION |
|---|---|
PGAPPNAME |
应用名称 |
PGDATABASE |
数据库的名称 |
PGHOST |
PostgreSQL 服务器的主机名 |
PGPORT |
PostgreSQL 服务器的端口 |
PGSSLMODE |
连接的 SSL 模式 |
PGUSER |
服务主体的客户端 ID 和角色名称 |
删除数据库资源
如果从应用中删除数据库资源,该应用会尝试将服务主体拥有的所有对象重新分配给删除该资源的用户。
应用使用的逻辑主要取决于你在数据库实例中是否有角色:
| 你的权限 | 数据库实例中的角色 | 结果 |
|---|---|---|
CAN MANAGE |
是的 | Azure Databricks 将服务主体拥有的所有对象重新分配给你,并删除服务主体的角色。 |
CAN MANAGE |
否 | Azure Databricks 为你创建一个角色,将服务主体角色拥有的所有对象重新分配给你,并删除服务主体的角色。 |
不 CAN MANAGE |
无 | Azure Databricks 删除资源,但不删除角色或重新分配所有权。 UI 中会显示一条警告,以后必须手动清理角色和拥有的对象。 |
注释
将数据库添加为应用资源时,请考虑以下事项:
- 如果在同一次更新中从一个数据库撤销
CONNECT和CREATE,并在另一个数据库上授予这些权限,Azure Databricks 会更新权限,但不会重新创建服务主体的角色。 - 数据库持久化状态。 即使重新部署或停止应用,应用创建的任何架构或表也会保持不变。