管理员设置 - 查询

管理 菜单的数据库 部分中的查询 页面列出了 Looker 向数据库提交的最近 50 个查询的相关信息。如需了解超过最近 50 个查询的查询,请参阅 Looker 的使用情况 部分。

基本查询信息

定义
时间 查询的开始时间,以您的应用时区显示。
状态 查询的状态,可能包括:
  • 缓存:Looker 从其缓存返回了结果,而不是对数据库运行重复的查询。
  • 完成:查询已成功完成。
  • 错误:查询未成功完成,因为发生了错误。如需了解详情,请点击“详细信息”按钮。
  • 已取消:查询已被 Looker 或用户取消。
  • 等待 PDT:查询需要等待永久性派生表构建完毕后才能执行。
  • 正在构建 PDT:系统正在构建永久性派生表
  • 已排队:查询正在等待执行,因为已有太多查询正在进行中(查询可能会受到 Looker 在连接设置或数据库中的限制)。
  • 正在运行:查询正在运行。
  • 未知:Looker 无法确定此查询发生了什么情况。
连接 运行此查询的 Looker 连接
用户 运行此查询的用户(如果可以确定)。有些查询不是由特定用户执行的,例如 Looker 创建永久性派生表时,或者未知用户访问公开 Look时。
来源 Looker 中查询的来源,例如“探索”页面或 SQL Runner。如果可能,系统还会显示指向已保存 Look 的链接,或者查询 ID以及模型和探索的名称。有些查询没有其他信息,例如在 SQL Runner 中运行的查询。从 Open SQL Interface 发出的查询的 来源 值为 Sql_interface
运行时 运行查询所用的时间。这包括查询的构建、查询在队列中花费的任何时间、与数据库之间的传输以及数据库执行查询。

如果查询正在运行,运行时将显示查询已运行的时长。对于之前运行的查询,运行时还会显示查询完成运行所需时间的估算值。此估算值基于查询上次运行的时长,并会显示类似“约 2 秒”的内容。
“详细信息”按钮 如需了解更多详细信息,请参阅本页面上的“详细信息”按钮子部分。

“详细信息”按钮

点击任何查询右侧的详细信息 按钮,即可显示有关该查询的其他信息。查询详细信息 菜单包括以下内容:

  • 信息 部分,其中包含有关查询的详细信息(请参阅下表)。
  • SQL 部分,其中显示了针对数据库执行的原始 SQL。上下文注释 不会显示在 查询详细信息 信息中。为了防止注释影响查询缓存,Looker 会在将 SQL 发送到数据库之前,将上下文注释添加到传出的 SQL 命令中。
  • 一个 SQL 接口查询 部分,当通过 Open SQL Interface 发出查询时,此部分会显示。此部分显示了从外部 BI 工具发送到 Looker 的 SQL 查询,有助于排查和重现问题。
  • 一个在 SQL Runner 中打开链接,点击后会在SQL Runner中打开查询。

信息 部分包含以下信息:

部分 定义
历史记录 ID 查询的历史记录 ID(如果有)。
状态 查询的状态,如基本查询信息表中所示。
消息 如果查询包含 PDT,则 PDT 生成注释 会显示在此字段中。如果查询不包含 PDT,则此字段不会显示。
连接 运行此查询的 Looker 连接
用户 运行此查询的用户(如果可以确定)。有些查询不是由特定用户执行的,例如 Looker 创建永久性派生表时,或者未知用户访问公开 Look时。
来源 Looker 中查询的来源,例如探索 页面或 SQL Runner。如果可能,系统会显示其他信息,例如指向已保存 Look 的链接、查询 ID、模型名称、探索名称或所选字段。
开始时间 查询的开始时间,以您的应用时区显示。
结束时间 查询的结束时间,以您的应用时区显示。
运行时 运行查询所用的时长。

终止查询

对于支持终止查询的方言,Looker 可以通过以下两种方式停止正在运行的查询:

  • 如果用户关闭运行查询的浏览器标签页,Looker 会自动停止查询。
  • Looker 管理员可以从查询 管理页面停止正在运行的查询,只需点击查询的停止 按钮即可。(拥有 see_queries 权限 的用户可以查看 查询 页面,但只有 Looker 管理员可以停止正在运行的查询。)

如需让 Looker 终止查询(无论是通过关闭运行查询的浏览器标签页,还是通过在查询 页面中停止查询),您的数据库方言都必须支持终止查询。下表显示了在最新版 Looker 中支持终止查询的方言:

方言 是否支持?
Actian Avalanche
Amazon Athena
Amazon Aurora MySQL
Amazon Redshift
Amazon Redshift 2.1+
Amazon Redshift Serverless 2.1+
Apache Druid
Apache Druid 0.13+
Apache Druid 0.18+
Apache Hive 2.3+
Apache Hive 3.1.2+
Apache Spark 3+
ClickHouse
Cloudera Impala 3.1+
Cloudera Impala 3.1+ with Native Driver
Cloudera Impala with Native Driver
DataVirtuality
Databricks
Denodo 7
Denodo 8 & 9
Dremio
Dremio 11+
Exasol
Google BigQuery Legacy SQL
Google BigQuery Standard SQL
Google Cloud PostgreSQL
Google Cloud SQL
Google Spanner
Greenplum
HyperSQL
IBM Netezza
MariaDB
Microsoft Azure PostgreSQL
Microsoft Azure SQL Database
Microsoft Azure Synapse Analytics
Microsoft SQL Server 2008+
Microsoft SQL Server 2012+
Microsoft SQL Server 2016
Microsoft SQL Server 2017+
MongoBI
MySQL
MySQL 8.0.12+
Oracle
Oracle ADWC
PostgreSQL 9.5+
PostgreSQL pre-9.5
PrestoDB
PrestoSQL
SAP HANA
SAP HANA 2+
SingleStore
SingleStore 7+
Snowflake
Teradata
Trino
Vector
Vertica

查询超时和排队

Looker 会终止在队列中等待时间过长的查询。此操作称为“超时”。 您的查询可能适用以下几种超时:

  • 连接池超时和并发查询数上限:为防止并发查询使数据库过载,Looker 会将多余的并发查询保留在 Looker 查询队列中,并终止在队列中停留时间过长的查询。默认情况下,每个连接最多允许 75 个并发查询。超出连接限制的其他查询将在 0 秒后超时。如需更改这些默认值,请在连接的连接设置 页面上配置“最大连接数”“此连接的并发查询数上限 ”和连接池超时 设置。

  • 每用户查询数限制和超时:为防止任何单个用户填满 Looker 查询队列,每个用户都有允许的并发查询数上限,以及因并发查询数限制而排队的查询的相应队列超时。每用户限制适用于使用常规身份验证流程登录 Looker 的用户,也适用于使用 API 用户凭据登录的用户。您可以通过以下两种方式为 Looker 实例上的连接定义每用户并发查询数上限:

    • The per-user-query-limit 启动选项。这是一项实例级设置,用于为实例上的连接设置默认值。per-user-query-limit 启动选项限制了 Looker 实例上每个用户、每个连接、每个节点的并发查询数。默认情况下,每个用户最多允许 15 个并发查询,此限制适用于每个有效连接,如果您的 Looker 实例是 集群,则适用于集群中的每个节点。默认情况下,每个用户每个连接每个节点最多可以运行 15 个并发查询,超时时间为 600 秒。例如,如果您有一个 5 节点的集群,且 per-user-query-limit 为 15,则每个节点将允许每个用户针对此连接执行 15 个并发查询,所有节点总共允许 75 个查询 (15 * 5 = 75)。

    您可以使用连接的连接设置 页面上的此连接的每用户并发查询数上限 设置,更改连接的每用户查询数限制。如果您的 Looker 实例是客户托管的,您可以通过配置 --per-user-query-limit 启动选项来更改每用户并发查询数的默认上限,还可以使用 --per-user-query-timeout启动选项来配置队列超时。

    • 连接的连接设置 中的此连接的每用户并发查询数上限 选项。此连接的每用户并发查询数上限 设置的默认值为 25,并且是按用户和按连接设置的,而不是按节点设置的。例如,如果您有一个 5 节点的集群,并将此值设置为 15,则每个节点将允许每个用户针对此连接执行 3 个并发查询 (15 / 5 = 3),所有节点总共允许 15 个查询。对于连接,如果为此连接的每用户并发查询数上限 设置提供了值,则此连接的每用户并发查询数上限 值将覆盖连接的 per-user-query-limit 启动选项。
  • 调度器查询数限制和超时:为防止 Looker 调度器进程过载,Looker 实例最多可以运行 10 个并发计划查询,调度器队列中查询的超时时间为 1,200 秒。如果您的 Looker 实例是客户托管的,您可以通过配置 --scheduler-query-limit--scheduler-query-timeout 启动选项来更改这些默认值。

  • 渲染器查询数限制和超时:为防止 Looker 渲染器进程过载,Looker 实例最多可以渲染 2 个并发的基于图片的下载(例如 PDF 和 PNG 格式)。如果您的 Looker 实例是客户托管的,您可以通过配置 --concurrent-render-jobs 启动选项来更改此默认值。

  • Webhook 超时:Looker 将尝试向 Webhook 传送数据,最长 30 分钟。如果 Looker 在 30 分钟内无法与 Webhook 目标通信,查询将超时。此超时不可配置。
    • 代理超时:客户托管的实例通常使用默认超时时间为 60 秒的代理。我们建议将此超时时间增加到 60 分钟。如需了解详情,请参阅在代理服务器或负载均衡器后运行 Looker Looker 社区帖子。

    • 数据库超时:大多数数据库都有排队和超时规则,这些规则独立于 Looker 的队列和超时。例如,查询可能已离开 Looker 队列,但仍可能在数据库中排队。如需详细了解如何自定义数据库查询超时,请查看数据库的文档。