重要
Lakebase 自动缩放在以下区域处于 Beta 版本:eastus2,westeurope,westus。
Lakebase 自动缩放是最新版本的 Lakebase,可自动缩放计算、缩放到零、分支和即时还原。 有关 与 Lakebase 预配的功能比较,请参阅 在版本之间进行选择。
本页介绍如何使用两种不同的连接方法从 Lakehouse 中的 SQL 编辑器查询 Lakebase 项目中的数据库。
Lakehouse 中的 SQL 编辑器是一个协作 SQL 工作区,可在其中创作查询、浏览数据目录、创建可视化效果并与同事共享结果。 它提供了用于分析、协作和自动化的高级功能。
注释
对于 Postgres 本机功能(例如EXPLAIN/ANALYZE)和元命令(\dt, \d, \l),请使用 Lakebase SQL 编辑器。 请参阅 Lakebase SQL 编辑器中的查询。
有关 SQL 编辑器功能的完整信息,请参阅 写入查询并浏览 SQL 编辑器中的数据。
连接方法
可以使用两种方法从 SQL 编辑器连接到 Lakebase 数据库:
- 直接计算连接:直接连接到 Lakebase 计算,以便立即访问特定项目和分支。
- Unity 目录注册:在 Unity 目录中注册数据库,以启用联合查询、统一治理和跨源分析。
选择连接方法
| 功能 / 特点 | 直接计算连接 | Unity 分类目录注册 |
|---|---|---|
| 数据访问 | 对 Lakebase 数据库的完整读写访问权限 | 通过 Unity 目录进行只读访问 |
| 最适用于 | 主要使用 Lakebase 数据而不将其与其他数据源组合在一起 | 将 Lakebase 数据与其他 Unity 目录表组合在联合查询中 |
| 设置复杂性 | 无需注册即可立即访问查询特定数据库 | 需要目录注册和 Unity Catalog 权限 |
| 治理 | 没有 Unity Catalog 管理功能 | 统一治理控制(权限、世系、审核日志) |
| 访问控制 | PostgreSQL 仅基于角色的权限设置 | 集中化发现和访问控制,适用于多个数据源 |
| 用例 | 直接数据库操作和修改 | 集成事务和分析数据的仪表板和应用程序 |
方法 1:直接连接到 Lakebase 计算
使用此方法直接连接到 Lakebase 计算,以便立即进行查询访问。
在您开始之前
如果你不是项目所有者,请验证你是否具有:
- Postgres 角色:用于访问数据库的相应 Postgres 角色。 请参阅 “管理 Postgres 角色”。
- 数据库权限:访问数据库、架构或表所需的权限。 请参阅 “管理权限”。
如果缺少必要的角色或权限,请联系项目所有者请求访问权限。
注释
Lakebase 计算必须处于活动状态才能附加到它。 如果计算处于空闲状态,则无法连接。 当启用 缩放到零 且没有数据库活动时,计算通常变为非活动状态。
若要激活空闲计算,请在 Lakebase SQL 编辑器中运行查询,或禁用缩放为零,以确保计算保持活动状态。 参见 缩放到零。
直接连接到 Lakebase 计算资源:
- 使用应用切换器导航到 Lakehouse。
- 单击侧栏中的
编辑器 ,打开 SQL 编辑器。 - 从 “连接” 下拉菜单中,选择“ 更多...”
- 在 “附加到现有计算资源 ”对话框中,选择 Lakebase Postgres,选择 “自动缩放 ”选项,然后选择 项目 和 分支。
- 单击“ 附加 ”进行连接。
直接连接的示例查询
连接后,可以针对 Lakebase 数据库运行标准 Postgres SQL 查询。
创建表、插入数据并对其进行查询:
CREATE TABLE IF NOT EXISTS playing_with_lakebase(id SERIAL PRIMARY KEY, name TEXT NOT NULL, value REAL);
INSERT INTO playing_with_lakebase(name, value)
SELECT LEFT(md5(i::TEXT), 10), random() FROM generate_series(1, 10) s(i);
SELECT * FROM playing_with_lakebase;
查询特定表:
SELECT * FROM public.playing_with_lakebase;
重要
直接连接的限制:
- 不支持联合查询:只能查询连接的 Lakebase 项目和分支。 不能在单个查询中将 Lakebase 数据与其他 Unity 目录表合并。
-
不支持 Postgres 元命令:在 Lakebase SQL 编辑器中工作的 Postgres 元命令(例如
\dt\d,)\l在 SQL 编辑器中不起作用(Lakehouse)。
方法 2:在 Unity 目录中注册数据库
使用此方法在 Unity 目录中注册 Lakebase 数据库,从而跨数据源启用联合查询和统一治理。
在您开始之前
验证是否具有:
- Postgres 角色:用于访问数据库的相应 Postgres 角色。 请参阅 “管理 Postgres 角色”。
- 数据库权限:访问数据库、架构或表所需的权限。 请参阅 “管理权限”。
-
Unity Catalog 特权:
CREATE CATALOGUnity Catalog 元存储上用于注册数据库的特权 - SQL 仓库:用于查询已注册目录的无服务器 SQL 仓库
如果缺少必要的角色或权限,请联系项目所有者请求访问权限。
注册数据库
若要在 Unity 目录中注册 Lakebase 数据库,请执行以下作:
- 使用应用切换器导航到 Lakehouse。
- 在目录资源管理器中,单击加号图标并 创建目录。
- 输入目录名称(例如
lakebase_catalog)。 - 选择 Lakebase Postgres 作为目录类型,然后选择 “自动缩放 ”选项。
- 选择项目、分支和 Postgres 数据库。
- 单击 “创建” 。
目录显示在目录资源管理器中,可在其中浏览架构、表和视图。
通过 Unity 目录进行查询
注册后,使用 SQL 仓库或任何连接到 Unity 目录的工具查询 Lakebase 数据库。
查询已注册的数据库:
-- Query a registered :re[LKB] database
SELECT * FROM chatbot_catalog.public.conversations
WHERE created_at >= current_date - INTERVAL 7 DAYS;
整合 Lakebase 和 Lakehouse 的数据:
-- Join :re[LKB] and Unity Catalog data
SELECT
c.conversation_id,
c.user_id,
c.agent_response,
u.user_name,
u.subscription_tier
FROM chatbot_catalog.public.conversations c
JOIN main.user_analytics.users u
ON c.user_id = u.user_id;
有关 Unity 目录权限和授予其他用户访问权限的信息,请参阅 “权限和访问控制”。
重要
Unity Catalog 注册的限制:
- 只读访问权限:通过 Unity Catalog,从 Lakebase 数据库注册的目录具有只读属性。 若要修改数据,请使用 Lakebase SQL 编辑器或直接连接到数据库。
- 每个目录的单一数据库:每个 Unity 目录目录表示一个 Lakebase 数据库。 若要公开多个数据库,请分别注册每个数据库。
-
元数据同步:Unity 目录缓存元数据以减少 Postgres 请求。 新对象可能不会立即显示。 单击“
以触发完全刷新。
有关在 Unity 目录中注册数据库的完整信息,请参阅 在 Unity 目录中注册 Lakebase 数据库。