SQL 编辑器
SQL 编辑器是在浏览器中探索仓库数据和执行 SQL 的工作区。你可以浏览目录、数据库和表,在多个查询窗口中编写 SQL,查看和下载结果,并通过查询历史和 Profile 分析执行情况。
如果希望直接查询仓库而不配置独立的 SQL 客户端,可以从 SQL 编辑器开始。专有仓库(SaaS)和私有仓库(BYOC)均可使用。
前置条件
- 可以在 SelectDB Cloud 控制台中访问目标仓库。
- 仓库中有处于 运行中 状态的计算集群。没有可用的计算集群时,无法执行 SQL。
- 当前数据库用户具有查询或修改目标目录、数据库和对象所需的权限。数据库用户与控制台账号是不同的身份;需要更换数据库用户时,使用 切换用户。
SQL 编辑器在控制台当前选中的仓库中执行语句。操作多个环境时,执行前应核对仓库,尤其是执行写入或结构变更语句前。
SQL 编辑器需要访问仓库的 Studio 服务。若仓库配置了私网访问,还需要确保浏览器所在网络能够访问对应服务;网络配置参见网络设置。
打开 SQL 编辑器
- 登录 SelectDB Cloud 控制台。
- 在左上角选择目标仓库。
- 单击左侧导航栏的 SQL 编辑器。
首页提供使用场景 Demo、SQL 模板和最近打开的查询窗口。可以选择 Demo 或模板开始,也可以单击查询窗口栏中的加号(+)新建窗口。
工作区包含以下区域:
| 区域 | 用途 |
|---|---|
| 数据 | 搜索并浏览目录、数据库、表等对象。 |
| 数据面板中的目录 | 选择需要浏览的目录。 |
| 数据面板中的数据库 | 将对象树限定到某个数据库,或选择 全部 浏览当前目录中的数据库。 |
| 会话记录 | 重新打开当前或先前会话中自动保存的查询窗口。 |
| 查询模板 | 从使用场景 Demo 或 SQL 模板开始编写 SQL。 |
| 查询窗口 | 将不同任务分别保存在多个 Tab 中,切换查看 SQL 及对应结果。 |
使用 数据 面板的搜索框按名称查找对象。已知数据位置时,可以先选择目录和数据库。新建或修改对象后,单击 刷新 获取最新元数据。完整的对象信息参见目录。
在查询窗口中执行 SQL
以下示例只读,可以用于确认所选仓库能否执行 SQL。
-
新建或打开查询窗口,选择用于执行查询的计算集群。
-
在查询窗口的 数据库 选择器中选择目标目录和数据库。也可以在 SQL 中使用
USE指定数据库;左侧对象树的浏览范围不能替代对查询窗口执行上下文的核对。 -
输入 SQL:
SELECT 1 AS connection_test; -
如需整理窗口,将鼠标移到窗口名称上,打开省略号(
...)菜单,选择重命名或删除操作。 -
如需格式化 SQL,打开编辑器右上角的省略号(
...)菜单,单击 格式化 SQL。 -
单击 运行,在下方结果面板查看执行状态和结果。只运行部分 SQL 时,先选中对应语句,再使用 运行选中。运行过程中需要中断时,单击 取消。
默认情况下,Limit 将查询返回行数限制为 1000 行。如需移除该限制,在执行前打开 Limit 菜单并选择 不限制。结果表格仍最多预览 1000 行;其余结果需要通过下载查看。SQL 自身的 LIMIT 和资源限制仍会生效。
如需直接执行并下载查询输出,打开 运行 旁的菜单,选择 运行并下载。开发或验证可能返回大量数据的查询时,建议先使用默认行数限制。
SQL 编辑器会实际执行提交的语句。运行 INSERT、UPDATE、DELETE、DDL 等操作前,核对仓库、数据库和 SQL 内容,确认影响范围。
重新使用已保存的 SQL
SQL 编辑器自动保存查询窗口。使用 会话记录 可以返回当前或先前会话中的 SQL。
-
单击 会话记录。
-
使用搜索框查找已保存的查询。
-
如需整理记录,打开搜索框旁的省略号(
...)菜单,选择相应操作:- 新建文件夹:创建用于组织记录的文件夹。
- 批量删除:选择并删除多条记录。
- 批量移动:将多条记录移动到文件夹。
- 下载:下载保存的 SQL。
- 导入:导入本地 SQL 脚本。
-
选择记录,将 SQL 加载到查询窗口。
-
核对计算集群、目录、数据库和语句内容后,再次运行。
会话记录便于迭代分析和保留工作草稿。生产 SQL 和结构变更仍应纳入版本控制流程。
会话记录与会话管理中的数据库连接不同。保存的窗口不代表数据库中仍有查询运行,也不保证历史结果持续可用。
使用模板或 Demo
查询模板 提供常见工作负载的示例,例如连接查询、全文检索和半结构化数据查询;首页还提供使用场景 Demo。
- 单击 查询模板,选择与任务匹配的模板或 Demo。
- 阅读示例及其准备说明。
- 根据仓库实际情况调整目录、数据库、表名和其他值。
- 核对所需对象与样例数据是否已准备好,再执行语句。
模板可能包含建表或写入操作,也可能引用当前仓库尚不存在的对象。不要直接将示例用于生产数据集。
查看和下载结果
查询成功后,可以直接在结果面板中检查返回数据:
- 使用搜索功能筛选已返回的行。
- 单击列标题,对已返回结果排序。
- 选择单元格,查看完整字段值。
- 使用下载功能,将展示结果导出为 CSV 文件。
结果面板内的搜索和排序只作用于已返回的数据,不会对完整数据库表重新执行查询。下载已有结果与 运行并下载 的执行范围也不同;后者会执行查询,需评估扫描量和结果大小。
需要在仓库范围检索、比较或导出已完成查询的执行记录时,使用查询审计。
分析查询执行情况
SQL 编辑器提供工作区内提交语句的查询历史:
- 打开查询结果区域右上角的查询历史入口。
- 在查询历史面板中选择需要分析的语句。
- 记录提供 Query ID 时,单击 Query ID 打开 查询 Profile。
Profile 以 图形 和 文本 形式展示执行计划。图形视图便于理解算子与数据流,文本视图便于阅读详细执行信息;还可以下载 Profile 供后续分析。
并非所有语句都有 Profile。执行失败、未产生查询或未采集 Profile 的语句可能无法查看;历史结果也可能已过期。不能仅凭查询历史恢复完整执行信息。
| 目标 | 使用功能 |
|---|---|
| 查看仍在运行的查询,或终止查询 | 会话管理 |
| 检索仓库内已完成的查询及执行元数据 | 查询审计 |
| 分析算子、扫描、数据交换等执行行为 | 查询 Profile 分析 |
常见问题
| 现象 | 排查方法 |
|---|---|
| 提示没有可用的计算集群。 | 在仓库的 计算集群 页面检查集群状态,待集群可用后重试。 |
| 数据 面板中缺少预期的目录、数据库或表。 | 核对仓库及对象树中的目录、数据库选择,单击 刷新;仍不可见时,确认当前数据库用户的访问权限。 |
| 查询没有 Query ID 或 Profile。 | 检查语句是否失败、是否产生查询及是否采集 Profile;需要排查完成记录时使用 查询审计。 |
| 历史结果无法打开。 | 结果可能不可用或已过期。确需重新执行时,先核对 SQL 和执行上下文。 |