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 查询框中输入该语句。(有关 DDL 和 DML 语句的支持和语法,请参阅数据库方言的文档。)
- 点击运行以执行语句。
- 在结果框中验证语句是否成功执行。
您可以运行后续查询,以进一步验证语句是否成功。在上面的示例中,我们向数据库中添加了用户 Erin Looker 文档。我们可以运行 SELECT 查询以验证是否已正确添加用户:
使用 EXPLAIN
检查执行计划
除了对数据库运行 SQL 查询外,您还可以使用 SQL Runner 对查询运行 EXPLAIN
函数。EXPLAIN
函数受大多数 SQL 方言支持,可返回查询的数据库执行计划。
- 在“探索”中,运行查询并点击数据区域的 SQL 标签页以查看查询的 SQL 命令。
- 在 SQL 命令下方,点击在 SQL Runner 中进行说明,将查询加载到
EXPLAIN
函数内的 SQL Runner 中。 - 点击“运行”以执行
EXPLAIN
函数。 - 查看
EXPLAIN
函数的输出。
EXPLAIN
响应的确切信息和格式取决于具体的方言,因此您应查看适用于特定方言的文档。
在上面的 MySQL 示例中,EXPLAIN
函数会返回数据库完成查询所需执行的步骤列表。这对执行速度似乎很慢的查询可能很有用,因为您可能会发现数据库正在扫描查询中的整个表(此时,表可能会使用索引来提高性能)。
如需查看在 SQL Runner 中使用 EXPLAIN
优化 SQL 的分步示例,请参阅这篇帮助中心文章。
获取有关数据库的信息
SQL Runner 中的 Database 标签页提供了许多工具来让您深入了解数据库。
获取数据库连接信息
当您在 SQL Runner 中选择连接时,Looker 会在 SQL QUERY 横幅的右侧显示该连接的数据库方言。如果您通过选择 Open in SQL Runner 或 Explain 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' 为表格。
点击其中一个搜索结果即可转到 SQL Runner 中的相应项。
特定于 BigQuery 的搜索选项
如果选择支持多个数据库的 BigQuery 连接,您还必须从项目选择器中选择 BigQuery 项目,以公开关联的数据集和表:
选择项目后,您可以继续选择数据集或搜索架构:
获取表信息
默认情况下,当您选择连接和架构时,SQL Runner 会预加载所有表信息。对于具有多个表或非常大的表的连接,管理员可以通过在“连接”页面中取消选择 SQL Runner 预缓存选项来停用此行为。
SQL Runner 的左侧导航面板可让您浏览连接中的架构和表。选择连接和架构以查看该架构中的所有表。
SQL Runner 提供了一些预先写的查询,可帮助您理解数据。要使用这些查询,请点击相应表格或表格列名称旁边的齿轮图标,然后选择所需的查询。Looker 在 SQL 查询部分中自动生成 SQL,然后运行查询。
可用的查询因数据库方言而异。
表信息
当您点击表格名称旁边的齿轮图标时,Looker 会显示以下选项:
- 使用描述选项显示底层表中的列名称及其数据类型。
- 使用显示索引选项可获取有关表如何编入索引的信息。
- 使用 Select 10 选项返回表格中的前十行。这是了解数据实际情况的好方法。
- 使用计数选项让数据库运行简单的
count(*)
来获取表的总行数。
列信息
当您点击列名称旁边的齿轮图标时,Looker 会显示以下选项:
- 使用表格列齿轮菜单中的最常见值选项运行查询,即可列出该表列的最常见值,以及在相应列中发现相应值的次数。
- 使用“表格列”齿轮菜单中的近似计数差异选项可检索列中不同值的大致数量。
选择连接和架构以查看该架构中的所有表。在下面的示例中,我们选择了 thelook
和 demo_db
架构。
- 选择架构中的表以查看该表中的列。
- 将鼠标悬停在列名称上可查看该列的数据类型(在本例中为整数)。
每个列名称也都有一个表示数据类型的图标:
修改预构建的 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。