使用 SQL Runner 管理数据库函数

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 语句,请执行以下操作:

  1. 点击数据库标签页。
  2. SQL 查询框中输入该语句。(有关 DDL 和 DML 语句的支持和语法,请参阅数据库方言的文档。)
  3. 点击运行以执行语句。
  4. 结果框中验证语句是否成功执行。

您可以运行后续查询,以进一步验证语句是否成功。在上面的示例中,我们向数据库中添加了用户 Erin Looker 文档。我们可以运行 SELECT 查询以验证是否已正确添加用户:

使用 EXPLAIN 检查执行计划

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

  1. 在“探索”中,运行查询并点击数据区域的 SQL 标签页以查看查询的 SQL 命令。
  2. 在 SQL 命令下方,点击在 SQL Runner 中进行说明,将查询加载到 EXPLAIN 函数内的 SQL Runner 中。
  3. 点击“运行”以执行 EXPLAIN 函数。
  4. 查看 EXPLAIN 函数的输出。

EXPLAIN 响应的确切信息和格式取决于具体的方言,因此您应查看适用于特定方言的文档。

在上面的 MySQL 示例中,EXPLAIN 函数会返回数据库完成查询所需执行的步骤列表。这对执行速度似乎很慢的查询可能很有用,因为您可能会发现数据库正在扫描查询中的整个表(此时,表可能会使用索引来提高性能)。

如需查看在 SQL Runner 中使用 EXPLAIN 优化 SQL 的分步示例,请参阅这篇帮助中心文章

获取有关数据库的信息

SQL Runner 中的 Database 标签页提供了许多工具来让您深入了解数据库。

获取数据库连接信息

当您在 SQL Runner 中选择连接时,Looker 会在 SQL QUERY 横幅的右侧显示该连接的数据库方言。如果您通过选择 Open in SQL RunnerExplain in SQL Runner 来导航到 SQL Runner,那么 Looker 会为您预先选择适当的连接,并显示连接的数据库方言。

点击连接齿轮菜单,了解更多数据库连接选项。

使用 Refresh Schemas &Tables 选项,用数据库中的架构和表重新填充 SQL Runner 左侧导航窗格。

使用 Show Processes 选项显示有关连接上当前正在运行的查询和进程的信息:

BigQuery 专用齿轮菜单选项

如果您选择支持多个数据库的 BigQuery 连接,Looker 会在齿轮菜单中显示特定于方言的选项:

使用 Refresh Schemas &Tables 选项,用数据库中的架构和表重新填充 SQL Runner 左侧导航窗格。

使用搜索公共项目选项搜索在信息架构中不可见的公共数据集。

齿轮菜单可在搜索公共项目选项和显示可用项目选项之间切换。

从齿轮菜单中点击显示可用项目 (Show available projects) 以将显示屏恢复为关联导航窗格中的专用 BigQuery 项目和表:

搜索数据库

SQL Runner 在所选架构下显示一个搜索框。此搜索会浏览搜索框中所有包含相应字符串的表和列的名称。在下图中,&port3 为列,而 Airport_remarks&#39 为表格。

点击其中一个搜索结果即可转到 SQL Runner 中的相应项。

特定于 BigQuery 的搜索选项

如果选择支持多个数据库的 BigQuery 连接,您还必须从项目选择器中选择 BigQuery 项目,以公开关联的数据集和表:

选择项目后,您可以继续选择数据集或搜索架构:

获取表信息

默认情况下,当您选择连接和架构时,SQL Runner 会预加载所有表信息。对于具有多个表或非常大的表的连接,管理员可以通过在“连接”页面中取消选择 SQL Runner 预缓存选项来停用此行为。

SQL Runner 的左侧导航面板可让您浏览连接中的架构和表。选择连接和架构以查看该架构中的所有表。

SQL Runner 提供了一些预先写的查询,可帮助您理解数据。要使用这些查询,请点击相应表格或表格列名称旁边的齿轮图标,然后选择所需的查询。Looker 在 SQL 查询部分中自动生成 SQL,然后运行查询。

可用的查询因数据库方言而异。

表信息

当您点击表格名称旁边的齿轮图标时,Looker 会显示以下选项:

  • 使用描述选项显示底层表中的列名称及其数据类型。
  • 使用显示索引选项可获取有关表如何编入索引的信息。
  • 使用 Select 10 选项返回表格中的前十行。这是了解数据实际情况的好方法。
  • 使用计数选项让数据库运行简单的 count(*) 来获取表的总行数。

列信息

当您点击列名称旁边的齿轮图标时,Looker 会显示以下选项:

  • 使用表格列齿轮菜单中的最常见值选项运行查询,即可列出该表列的最常见值,以及在相应列中发现相应值的次数。
  • 使用“表格列”齿轮菜单中的近似计数差异选项可检索列中不同值的大致数量。

获取列数据类型信息

选择连接和架构以查看该架构中的所有表。在下面的示例中,我们选择了 thelookdemo_db 架构。

  1. 选择架构中的表以查看该表中的列。
  2. 将鼠标悬停在列名称上可查看该列的数据类型(在本例中为整数)。

每个列名称也都有一个表示数据类型的图标:

修改预构建的 SQL 查询

您可以修改 Query 区域中的任何 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 可能是此表中的主键。但是,此查询仅指定表中现有行数上限,因此,请尽可能确保在数据库级别指定了 primary_key。