在 Lakebase SQL 编辑器中查询

Lakebase SQL 编辑器直接从 Lakebase 应用对 Lakebase 数据库运行查询。 它提供 Postgres 原生功能EXPLAIN/ANALYZEpsql-style元命令,并将结果导出到 CSV/JSON/XLSX。

注释

还可以从 Lakehouse 中的 SQL 编辑器查询 Lakebase 数据库,该编辑器提供可视化效果、仪表板、协作功能,以及将 Lakebase 数据与其他 Unity 目录表合并的功能。 请参阅 SQL 编辑器中的查询(Lakehouse)。

使用 Lakebase SQL 编辑器

若要使用 SQL 编辑器,请执行以下作:

  1. 打开 Lakebase 应用并选择项目。
  2. 从边栏中选择 SQL 编辑器 ,然后选择分支和数据库。
  3. 在编辑器中输入查询,然后单击“ 运行 ”以查看结果。

LKB SQL 编辑器

使用以下查询尝试 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;

一次运行多个查询语句将为每个语句返回单独的结果集。 结果集以单独的选项卡显示,按执行顺序编号。

若要清除编辑器,请选择文本框的内容并将其删除。

解释和分析

Lakebase SQL 编辑器具有“解释和分析”功能。

LKB SQL 编辑器解释和分析

  • Explain 功能使用 Postgres EXPLAIN 命令运行指定的查询,该命令返回查询的执行计划。 Explain 功能仅返回具有估计的计划。 它不运行查询。
  • “分析”功能使用 EXPLAIN ANALYZE 运行指定的查询。 该 ANALYZE 参数执行查询,并返回计划节点的实际行计数和运行时间以及 EXPLAIN 估计值。

了解 Explain and Analyze 功能提供的信息需要熟悉 Postgres EXPLAIN 命令及其 ANALYZE 参数。 请参阅 PostgreSQL 文档中的 EXPLAIN 文档和使用 EXPLAIN 部分。

将数据导出到 CSV、JSON 和 XLSX

Lakebase SQL 编辑器支持将数据导出到 JSONCSV以及 XLSX。 从 SQL 编辑器 页面右下角访问下载按钮。 仅当有要下载的结果集时,才会显示下载按钮。

LKB SQL 编辑器导出

展开 SQL 编辑器窗口的结果部分

通过从 SQL 编辑器页面右下角选择展开窗口按钮,展开 SQL 编辑器 窗口窗口的结果部分。

LKB SQL 编辑器展开

元命令

Lakebase SQL 编辑器支持使用 Postgres 元命令,这类似于用于与数据库交互的快捷方式。 如果已熟悉从命令行接口使用元命令 psql ,则可以在 Lakebase SQL 编辑器中使用其中许多相同的命令。

元命令可以通过提供对数据库架构和其他关键信息的快速访问来加快工作流速度,而无需编写完整的 SQL 查询。

下面是 Lakebase SQL 编辑器中的一些常用元命令:

  • \dt — 列出当前数据库中的所有表
  • \d [table_name] — 描述表的结构
  • \l — 列出所有数据库
  • \? — 可用元命令的速查表
  • \h [NAME] — 获取任何 Postgres 命令的帮助(例如 \h SELECT

注释

SQL 编辑器中不支持所有 psql 元命令。 若要获取受支持命令的列表,请使用 \?

有关元命令及其用法的完整列表,请参阅 psql 中的元命令

如何使用元命令

若要在 SQL 编辑器中使用元命令,请在编辑器中输入元命令(就像 SQL 查询一样),然后单击“ 运行”。 结果将显示在输出窗格中。

禁用公共访问时的 SQL 编辑器限制

当工作区专用链接配置了公共访问禁用时,SQL 编辑器会通过 Lakebase 后端而不是使用直接数据库连接来查询。 大多数查询的工作方式与直接连接相同,但代理是无状态的,并作为独立的 HTTP 请求运行每个语句,这引入了以下限制:

工作原理:

  • 单语句查询(SELECT, INSERT, UPDATE, DELETE, UPSERT)
  • DDL 语句(CREATE、ALTER、DROP TABLE、CREATE INDEX 等)
  • EXPLAIN 和 DESCRIBE 命令(\d\dt\di
  • 完整的 Postgres 数据类型支持(数组、JSON/JSONB、数值、时间戳、布尔值)
  • 查询结果和错误消息

哪些不起作用:

功能 限度
Transactions BEGINCOMMITROLLBACKSAVEPOINT 不按预期工作。 每条语句独立自动提交,没有原子性保证。
会话状态 SETSET LOCAL 仅适用于当前请求。 临时表、预处理语句、游标和建议锁在后续语句中不可用。
监听/通知 需要异步通知的持久连接,代理不支持该连接。
COPY FROM STDIN 无法通过代理流式传输客户端数据。
\watch 无状态代理不支持查询的周期性重新执行。
查询取消 取消仅为尽力而为。 取消请求后,查询可能会在后端继续运行。
多语句脚本 语句在没有共享事务的情况下执行。 部分脚本失败会导致部分提交。
结果大小限制 查询结果限制为 32 MB。

对于需要事务或会话状态的工作负荷,请使用 Postgres 客户端直接连接到数据库。 请参阅 使用 psql 进行连接

Troubleshoot

如果 SQL 编辑器显示“无法提取”或“未知错误”消息,并且工作区使用专用链接,请确认已正确配置入站专用链接(工作区级别,端口 443)。 请参阅 排查 专用链接 连接问题