使用 SQL Runner 管理数据库函数

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 语句,请按以下步骤操作:

  1. 前往 SQL Runner
  2. 在 SQL Runner 中,点击数据库标签页。
  3. 在 SQL Runner 的查询框中输入 DDL 或 DML 语句。(如需了解 DDL 和 DML 语句的支持情况和语法,请参阅数据库方言的相关文档。)
  4. 点击 Run 以在数据库中执行该语句。

如果该语句在数据库中成功执行,SQL 结果框中会显示确认消息。

使用 EXPLAIN 检查执行计划

除了针对数据库运行 SQL 查询之外,您还可以使用 SQL Runner 针对查询运行 EXPLAIN 函数。EXPLAIN 函数受大多数 SQL 方言支持,可返回数据库针对查询的执行计划。

  1. 在探索中,运行查询,然后点击数据区域的 SQL 标签页,即可查看查询的 SQL 命令。
  2. 在探索的 SQL 标签页中,点击在 SQL Runner 中说明按钮。

    Looker 将打开 SQL Runner,并在 EXPLAIN 函数中加载查询。

  3. 在 SQL Runner 中,点击运行以执行 EXPLAIN 函数。

  4. 查看 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 执行以下步骤来获取列数据类型信息:

  1. 在 SQL Runner 中,从连接下拉菜单中选择数据库连接。
  2. 架构下拉菜单中选择架构。(对于 BigQuery 连接,请选择项目数据集。)
  3. SQL Runner 会显示相应架构中数据库内的表列表。点击某个表即可查看该表中的列。
  4. 每个列名都有一个图标来表示数据类型。将鼠标悬停在列名称上,即可查看相应列中的数据类型。

修改预构建的 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 不再适合作为主键,因此我们建议您在数据库中实施限制,以确保主键的唯一性。