SQL Runner 提供了一种直接访问数据库的方法,并可通过多种方式利用这种访问权限。使用 SQL Runner,您可以轻松浏览架构中的表、使用 SQL 查询中的临时探索、对数据运行预先编写的描述性查询、查看 SQL Runner 历史记录、下载结果、共享查询、作为派生表添加到 LookML 项目,以及执行其他有用的任务。
本页介绍了如何使用 SQL Runner 修改数据库架构和数据、使用 EXAMINE 语句查看数据库对查询的执行计划,以及如何使用 SQL Runner 获取数据库的相关信息。如需了解以下信息,请参阅其他文档页面:
修改数据库架构和数据
除了对数据库运行查询之外,您还可以使用 SQL Runner 中的数据库标签页对数据库执行数据定义语言 (DDL) 和数据操纵语言 (DML) 语句。您可以使用 SQL Runner 进行架构更改(例如创建、删除和更改)和数据更改(例如插入、更新和删除)。SQL 方言对 DDL 和 DML 语句的支持各不相同,因此请参阅数据库的相关文档,了解哪些语句受支持。
Looker 不会控制用户是否有权在您的数据库上运行哪些 SQL 语句。具有
use_sql_runner
权限的 Looker 用户可以访问 SQL Runner,但 SQL Runner 不会限制用户可以执行哪些命令。如果数据库管理员想要阻止 SQL Runner 用户修改数据库架构,则必须为数据库本身配置用户权限。
如需在 SQL Runner 中对数据库执行 DDL 或 DML 语句,请按以下步骤操作:
- 前往 SQL Runner。
- 在 SQL Runner 中,点击数据库标签页。
- 在 SQL Runner 的 Query 框中输入 DDL 或 DML 语句。(请参阅您的数据库方言文档,了解 DDL 和 DML 语句的支持和语法。)
- 点击运行,对数据库执行语句。
如果对数据库成功执行了语句,SQL 结果框将显示确认消息。
使用 EXPLAIN
检查执行计划
除了对数据库运行 SQL 查询之外,您还可以使用 SQL Runner 为查询运行 EXPLAIN
函数。大多数 SQL 方言都支持 EXPLAIN
函数,该函数会返回数据库的查询执行计划。
- 在“探索”中,运行查询,然后点击数据区域的 SQL 标签页,查看查询的 SQL 命令。
在“探索”的 SQL 标签页中,点击 Explain in SQL Runner 按钮。
Looker 将打开 SQL Runner 并在
EXPLAIN
函数中加载查询。在 SQL Runner 中,点击运行以执行
EXPLAIN
函数。查看
EXPLAIN
函数的输出。
EXPLAIN
响应的确切信息和格式取决于您的特定方言,因此您应该会看到所用方言的具体说明。
在前面的 MySQL 示例中,EXPLAIN
函数会返回数据库执行查询所采取的步骤的列表。这对于执行速度似乎很慢的查询非常有用,因为您可能会发现数据库正在扫描查询中的整个表,而该表也许可以使用索引来提高性能。
如需查看有关在 SQL Runner 中使用 EXPLAIN
优化 SQL 的分步示例,请参阅如何使用 EXPLAIN 优化 SQL 社区帖子。
获取有关数据库的信息
SQL Runner 中的数据库标签页提供了一系列工具,可帮助您深入了解数据库。
获取数据库连接信息
在 SQL Runner 中选择连接后,Looker 会在 SQL QUERY 横幅右侧显示该连接的数据库方言。如果您通过选择在 SQL Runner 中打开或在 SQL Runner 中解释前往 SQL Runner,Looker 会为您预先选择适当的连接,并显示连接的数据库方言。
点击连接齿轮菜单,即可查看数据库连接的更多选项:
- 选择显示进程选项,以显示与连接上当前运行的查询和进程相关的信息。
- 选择 Refresh Schemas & Tables(刷新架构和表)选项,以便在 SQL Runner 左侧导航窗格中重新填充数据库中的架构和表。
BigQuery 齿轮菜单选项
当您选择支持多个数据库的 BigQuery 连接时,Looker 会在齿轮菜单中显示特定于方言的选项。菜单项会根据当前所选的选项,在显示可用项目和搜索公共项目之间切换。
- 选择刷新架构和Tables,以使用数据库中的架构和表重新填充 SQL Runner 左侧导航窗格。
- 显示可用项目后,您会看到一个齿轮菜单选项,用于搜索公开项目。选择此选项可以搜索在信息架构中不可见的公共数据集。
- 显示公开项目时,有一个齿轮菜单选项,用于显示可用项目。选择此选项可以在 SQL Runner 左侧导航窗格中还原显示特定于连接的 BigQuery 项目和表。
搜索数据库
SQL Runner 在选定的架构(对于 Google BigQuery 连接则为数据集)下方显示一个搜索框。
SQL Runner 搜索会浏览搜索框中包含该字符串的所有表和表列的名称。在下图中,“airport_name”是列,“airport_remarks”是表。
点击任一搜索结果,即可在 SQL Runner 中前往该项。
获取表信息
默认情况下,当您选择连接和架构时,SQL Runner 会预加载所有表信息。对于包含许多表或非常大的表的连接,管理员可以通过取消选中“连接”页面中的 SQL Runner 预缓存选项来停用此行为。
您可以通过 SQL Runner 左侧的导航面板浏览连接中的架构和表。选择一个连接和架构,即可查看该架构中的所有表。点击表名称可查看该表中的字段。
SQL Runner 提供了一些预先编写的查询,可帮助您理解数据。要使用这些查询,请点击表格或表格列名称旁边显示的齿轮图标,然后选择所需的查询。Looker 会在 SQL 查询部分自动生成 SQL,并运行该查询。
可用的查询因数据库方言而异。
表信息
点击表名称旁边的齿轮图标后,Looker 会显示以下选项:
- 探索表格:在新浏览器标签页中打开表格的 Looker 探索。
- 说明:显示底层表中的列名称及其数据类型。
- 显示索引:显示有关表索引编制方式的信息。
- 选择 10 行:返回包含表中前十行的查询。这是一个很好的方法,可以了解数据的实际情况。
- Count:返回一个简单的
count(*)
查询,以获取表的总行数。
列信息
点击表格名称即可查看表格中的列。点击列名称旁边的齿轮图标后,Looker 会显示以下选项:
- 最常见的值:返回该表格列中最常见值的查询,以及该值在该列中出现的次数。
- Approximate Count Distinct:显示列中不同值的数量的近似计数。
获取列数据类型信息
您可以使用 SQL Runner 通过执行以下步骤来获取列数据类型信息:
- 在 SQL Runner 中,从连接下拉菜单中选择数据库连接。
- 从架构下拉列表中选择架构。(对于 BigQuery 连接,请选择项目和数据集。)
- SQL Runner 将显示数据库中该架构中的表列表。点击某个表格即可查看该表格中的列。
- 每列名称都有一个图标来表示数据类型。将鼠标悬停在列名称上,即可查看该列中的数据类型。
修改预构建的 SQL 查询
您可以在查询区域中修改任何 SQL 查询,包括从表格和字段齿轮菜单中选择的预设 SQL 查询。
例如,您可以使用 SQL Runner 的计数查询加载数据库的基本计数命令,然后修改 SQL 查询。因此,如果您认为 public.users
表中的 id
列可能是主键,可以通过修改 count 查询来验证没有重复值,如下所示:
SELECT id ,COUNT(*)
FROM public.users
GROUP BY 1
ORDER BY 2 DESC
LIMIT 10
由于查询会先按计数排序,然后再将结果限制为 10 行,因此结果将包含最高计数值。如果此查询针对每个 id
值返回计数为 1,则 id
可能是此表中的主键。但是,此查询在查询运行时仅指定表中的行。由于将来向数据库插入数据可能会使 id
无法作为主键,因此我们建议您对数据库实施限制,以确保主键是唯一的。