管理菜单的数据库部分中的查询页面会列出 Looker 提交到数据库的最近 50 个查询的相关信息。如需了解最新 50 个查询之前的查询,请参阅 Looker 的使用情况部分。
如果您已启用增强型查询管理实验室功能,查询页面会显示以下标签页:
- 最近:显示过去 1 小时内运行的查询。Looker 管理员可以在此标签页中取消正在运行的查询。
- 完成:显示最近的 500 个查询。
如果您尚未启用增强型查询管理实验室功能,则查询页面会在单个页面上列出最近 50 个查询。
基本查询信息
列 | 定义 |
---|---|
时间 | 查询的开始时间,以您的应用时区显示。 |
状态 | 查询的状态,可能包括: |
连接 | 运行相应查询所用的 Looker 连接。 |
用户 | 运行相应查询的用户(如果可以确定)。有些查询不是由特定用户执行的,例如当 Looker 创建持久性派生表时,或者当未知用户访问公开 Look 时。 |
来源 | Looker 中查询的来源,例如“探索”页面或 SQL Runner。如果可能,系统还会显示指向已保存 Look 的链接,或查询 ID 以及模型和 Explore 的名称。有些查询没有其他信息,例如在 SQL Runner 中运行的查询。通过 Open SQL 接口发出的查询的 Source 值为 Sql_interface 。 |
运行时 | 运行查询所用的时间。这包括查询的构建、查询在队列中花费的任何时间、往返于数据库的时间,以及数据库执行查询的时间。如果查询正在运行,运行时会显示查询已运行的时长。对于之前运行过的查询,运行时还会显示查询完成运行所需时间的估计值。此估算值基于查询上次运行的时长,并会显示“大约 2 秒”之类的信息。 |
“详细信息”按钮 | 如需了解详情,请参阅本页面上的“详细信息”按钮子部分。 |
“详细信息”按钮
点击任何查询右侧的详细信息按钮,即可查看有关该查询的更多信息。查询详情菜单包含以下内容:
- 信息部分,其中包含有关查询的详细信息(请参阅下表)。
- 一个 SQL 部分,其中显示了针对数据库执行的原始 SQL。上下文注释不会显示在查询详情信息中。为防止注释影响查询缓存,Looker 会在将 SQL 发送到数据库之前,将上下文注释添加到传出的 SQL 命令中。
- 通过打开 SQL 接口发出查询时显示的 SQL 接口查询部分。此部分会显示从外部 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 | 是 |
Firebolt | 是 |
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 查询队列,系统会为每位用户设置允许的并发查询数上限和相应的队列超时时间。默认情况下,每位用户最多可以同时运行 15 个并发查询,并且因达到此限制而加入队列的查询的超时时间为 600 秒。这些设置既适用于通过常规身份验证流程登录 Looker 的用户,也适用于使用 API 用户凭据登录的用户。如需更改这些默认值,请在连接的连接设置页面上配置此连接的每用户并发查询数上限设置。如果您的 Looker 实例是客户托管的,您可以通过配置
--per-user-query-limit
和--per-user-query-timeout
启动选项来更改这些默认值。调度程序查询限制和超时:为防止 Looker 调度程序进程过载,Looker 实例最多可同时运行 10 个预定查询,并且调度程序队列中查询的超时时间为 1,200 秒。如果您的 Looker 实例是客户托管的,您可以通过配置
--scheduler-query-limit
和--scheduler-query-timeout
启动选项来更改这些默认值。渲染器查询限制和超时:为防止 Looker 渲染器进程过载,Looker 实例最多可同时渲染 2 个基于图片的下载内容(例如 PDF 和 PNG 格式)。如果您的 Looker 实例是客户托管的,您可以通过配置
--concurrent-render-jobs
启动选项来更改此默认设置。
代理超时:客户托管的实例通常使用默认超时时间为 60 秒的代理。建议将此超时时间增加到 60 分钟。如需了解详情,请参阅 Looker 社区帖子在代理服务器或负载均衡器后运行 Looker。
数据库超时:大多数数据库都有自己的排队和超时规则,与 Looker 的排队和超时规则无关。例如,查询可能已离开 Looker 队列,但仍可在数据库中排队。如需详细了解如何自定义数据库查询超时,请参阅数据库的相关文档。