SQL Runner 提供了一种直接访问数据库并以各种方式使用该访问权限的方法。借助 SQL Runner,您可以浏览架构中的表、通过 SQL 查询使用临时探索功能、针对数据运行预先编写的描述性查询、查看 SQL Runner 历史记录、下载结果、分享查询、以派生表的形式添加到 LookML 项目,以及执行其他实用任务。
本页面介绍了如何使用 SQL Runner 修改数据库架构和数据、使用 EXAMINE 语句查看数据库的查询执行计划,以及如何使用 SQL Runner 获取有关数据库的信息。如需了解以下方面的信息,请参阅其他文档页面:
修改数据库架构和数据
除了在数据库上运行查询之外,您还可以在 SQL Runner 的数据库标签页中对数据库执行数据定义语言 (DDL) 和数据操纵语言 (DML) 语句。您可以使用 SQL Runner 进行架构更改(例如创建、删除和修改)和数据更改(例如插入、更新和删除)。SQL 方言对 DDL 和 DML 语句的支持各不相同,因此请参阅数据库的文档,了解支持哪些语句。
如需在 SQL Runner 中对数据库执行 DDL 或 DML 语句,请按以下步骤操作:
- 前往 SQL Runner。
- 在 SQL Runner 中,点击数据库标签页。
- 在 SQL Runner 的查询框中输入 DDL 或 DML 语句。(如需了解 DDL 和 DML 语句的支持情况和语法,请参阅数据库方言的相关文档。)
- 点击 Run 以在数据库中执行该语句。
如果该语句在数据库中成功执行,SQL 结果框中会显示确认消息。
使用 EXPLAIN
检查执行计划
除了针对数据库运行 SQL 查询之外,您还可以使用 SQL Runner 针对查询运行 EXPLAIN
函数。EXPLAIN
函数受大多数 SQL 方言支持,可返回数据库针对查询的执行计划。
- 在探索中,运行查询,然后点击数据区域的 SQL 标签页,即可查看查询的 SQL 命令。
在探索的 SQL 标签页中,点击在 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 查询横幅的右侧显示相应连接的数据库方言。如果您通过选择在 SQL Runner 中打开或在 SQL Runner 中说明导航到 SQL Runner,Looker 会为您预先选择合适的连接,并显示该连接的数据库方言。
点击连接齿轮菜单可获取更多数据库连接选项:
- 选择 Show Processes 选项可显示有关当前在连接上运行的查询和进程的信息。
- 选择刷新架构和表选项,以使用数据库中的架构和表重新填充 SQL Runner 左侧的导航窗格。
BigQuery 齿轮菜单选项
如果您选择支持多个数据库的 BigQuery 连接,Looker 会在齿轮菜单中显示特定于方言的选项。菜单项会在显示可用项目和搜索公开项目之间切换,具体取决于所选的选项。
- 选择刷新架构和表,以使用数据库中的架构和表重新填充 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:返回表格中前 10 行的查询。这样可以直观了解数据的实际情况。
- Count:返回一个简单的
count(*)
查询,以获取表的总行数。
列信息
点击表名称即可查看表中的列。当您点击列名称旁边的齿轮时,Looker 会显示以下选项:
- 最常见的值:返回相应表列的最常见值的查询,以及该值在列中出现的次数。
- Approximate Count Distinct:显示列中不同值的近似数量。
获取列数据类型信息
您可以使用 SQL Runner 执行以下步骤来获取列数据类型信息:
- 在 SQL Runner 中,从连接下拉菜单中选择数据库连接。
- 从架构下拉菜单中选择架构。(对于 BigQuery 连接,请选择项目和数据集。)
- SQL Runner 会显示相应架构中数据库内的表列表。点击某个表即可查看该表中的列。
- 每个列名都有一个图标来表示数据类型。将鼠标悬停在列名称上,即可查看相应列中的数据类型。
修改预构建的 SQL 查询
您可以修改查询区域中的任何 SQL 查询,包括从表格和字段齿轮菜单中选择的预设 SQL 查询。
例如,您可以使用 SQL Runner Count 查询来加载数据库的基本计数命令,然后修改 SQL 查询。因此,如果您认为 public.users
表中的 id
列可能是主键,则可以通过修改计数查询来验证是否存在重复值,如下所示:
SELECT id ,COUNT(*)
FROM public.users
GROUP BY 1
ORDER BY 2 DESC
LIMIT 10
由于查询先按数量排序,然后才将结果限制为 10 行,因此结果将包含数量值最高的行。如果此查询针对每个 id
值返回的计数均为 1,则 id
很可能就是此表中的主键。不过,此查询仅指定查询运行时表中的行。由于未来向数据库中插入的数据可能会使 id
不再适合作为主键,因此我们建议您在数据库中实施限制,以确保主键的唯一性。