通过


在 Lakehouse 中使用 SQL 编辑器进行查询

重要

Lakebase 自动缩放在以下区域处于 Beta 版本:eastus2westeuropewestus

Lakebase 自动缩放是最新版本的 Lakebase,可自动缩放计算、缩放到零、分支和即时还原。 有关 与 Lakebase 预配的功能比较,请参阅 在版本之间进行选择

本页介绍如何使用两种不同的连接方法从 Lakehouse 中的 SQL 编辑器查询 Lakebase 项目中的数据库。

Lakehouse 中的 SQL 编辑器是一个协作 SQL 工作区,可在其中创作查询、浏览数据目录、创建可视化效果并与同事共享结果。 它提供了用于分析、协作和自动化的高级功能。

注释

对于 Postgres 本机功能(例如EXPLAIN/ANALYZE)和元命令(\dt, \d, \l),请使用 Lakebase SQL 编辑器。 请参阅 Lakebase SQL 编辑器中的查询

有关 SQL 编辑器功能的完整信息,请参阅 写入查询并浏览 SQL 编辑器中的数据

连接方法

可以使用两种方法从 SQL 编辑器连接到 Lakebase 数据库:

  1. 直接计算连接:直接连接到 Lakebase 计算,以便立即访问特定项目和分支。
  2. Unity 目录注册:在 Unity 目录中注册数据库,以启用联合查询、统一治理和跨源分析。

选择连接方法

功能 / 特点 直接计算连接 Unity 分类目录注册
数据访问 对 Lakebase 数据库的完整读写访问权限 通过 Unity 目录进行只读访问
最适用于 主要使用 Lakebase 数据而不将其与其他数据源组合在一起 将 Lakebase 数据与其他 Unity 目录表组合在联合查询中
设置复杂性 无需注册即可立即访问查询特定数据库 需要目录注册和 Unity Catalog 权限
治理 没有 Unity Catalog 管理功能 统一治理控制(权限、世系、审核日志)
访问控制 PostgreSQL 仅基于角色的权限设置 集中化发现和访问控制,适用于多个数据源
用例 直接数据库操作和修改 集成事务和分析数据的仪表板和应用程序

方法 1:直接连接到 Lakebase 计算

使用此方法直接连接到 Lakebase 计算,以便立即进行查询访问。

在您开始之前

如果你不是项目所有者,请验证你是否具有:

  • Postgres 角色:用于访问数据库的相应 Postgres 角色。 请参阅 “管理 Postgres 角色”。
  • 数据库权限:访问数据库、架构或表所需的权限。 请参阅 “管理权限”。

如果缺少必要的角色或权限,请联系项目所有者请求访问权限。

注释

Lakebase 计算必须处于活动状态才能附加到它。 如果计算处于空闲状态,则无法连接。 当启用 缩放到零 且没有数据库活动时,计算通常变为非活动状态。

若要激活空闲计算,请在 Lakebase SQL 编辑器中运行查询,或禁用缩放为零,以确保计算保持活动状态。 参见 缩放到零

直接连接到 Lakebase 计算资源:

  1. 使用应用切换器导航到 Lakehouse。
  2. 单击侧栏中的 SQL 编辑器图标 SQL编辑器 ,打开 SQL 编辑器。
  3. “连接” 下拉菜单中,选择“ 更多...”

“连接”菜单

  1. “附加到现有计算资源 ”对话框中,选择 Lakebase Postgres,选择 “自动缩放 ”选项,然后选择 项目分支

附加到 LKB 项目和分支

  1. 单击“ 附加 ”进行连接。

直接连接的示例查询

连接后,可以针对 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 CATALOG Unity Catalog 元存储上用于注册数据库的特权
  • SQL 仓库:用于查询已注册目录的无服务器 SQL 仓库

如果缺少必要的角色或权限,请联系项目所有者请求访问权限。

注册数据库

若要在 Unity 目录中注册 Lakebase 数据库,请执行以下作:

  1. 使用应用切换器导航到 Lakehouse。
  2. 在目录资源管理器中,单击加号图标并 创建目录
  3. 输入目录名称(例如 lakebase_catalog)。
  4. 选择 Lakebase Postgres 作为目录类型,然后选择 “自动缩放 ”选项。
  5. 选择项目、分支和 Postgres 数据库。
  6. 单击 “创建”

目录显示在目录资源管理器中,可在其中浏览架构、表和视图。

通过 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 数据库

后续步骤