管理设置 - 查询

从 Looker 22.16 开始,Looker 管理员可以启用增强的查询管理员实验性实验室功能,以增强查询页面。实验室中的功能提升了查询页面上的性能,并且列出了 500 个分页查询,而不是 50 个。

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

基本查询信息

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

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

“详细信息”按钮

点击任意查询右侧的详细信息按钮,将显示相应查询的其他信息。Query Details 弹出式窗口包含以下内容:

  • 包含查询详情的信息部分(参见下表)。
  • SQL 部分,其中显示了针对数据库执行的原始 SQL。上下文注释将不会显示在查询详情信息中。为防止注释影响查询缓存,Looker 在将 SQL 发送到数据库之前,将上下文注释添加到传出 SQL 命令中。
  • 在 SQL Runner 中打开链接,用于在 SQL Runner 中打开查询。

信息部分包含以下信息:

定义
历史记录 ID 查询的历史记录 ID(如果有)。
状态 查询的状态,如上文所述。
连接 运行此查询的 Looker 连接
用户 运行此查询的用户(如果可以确定)。某些查询并非由特定用户执行,例如当 Looker 创建永久性派生表时或当未知用户访问公开 Look 时。
来源 Looker 中查询的来源,例如探索页面或 SQL Runner。系统会尽可能显示其他信息,例如指向已保存 Look 的链接、查询 ID、模型名称、探索名称、所选字段等。
开始时间 查询的开始时间,以应用时区显示。
结束时间 查询的完成时间,以应用时区显示。
运行时 运行查询所花费的时间。

查询终止

当您关闭运行查询的浏览器标签页时,Looker 会自动停止仍在运行的查询。Looker 管理员还可以在查询页面中停止正在运行的查询。(具有 see_queries 权限的用户可以查看查询页面,但只有 Looker 管理员可以停止正在运行的查询。)仍在运行的任何查询都会在其右侧显示一个 Stop 按钮。点击停止以停止查询。

如需让 Looker 终止查询,您的数据库方言必须支持查询终止。以下列表显示了在最新版 Looker 中支持查询终止的方言:

查询超时和队列

Looker 会终止在队列中等待时间过长的查询。此操作称为超时。查询可能会超时:

  • 连接池超时:为了防止数据库在执行并发查询时过载,Looker 会将 Looker 查询队列中的并发查询留在查询中,并会导致在队列中等待太长时间的查询终止。默认情况下,每个连接最多允许 75 个并发查询,排队查询会在 0 秒后超时。要更改这些默认值,请在连接的连接设置页面上配置最大连接数连接池超时设置。

  • 每用户查询限制和超时:为防止任何单个用户填满 Looker 查询队列,每位用户都拥有允许的并发查询数量上限和相应的队列超时。默认情况下,每个用户最多可运行 15 个并发查询,并且由于此限制而要加入队列的查询超时为 600 秒。如果您的 Looker 实例由客户托管,您可以通过配置 --per-user-query-limit--per-user-query-timeout 启动选项来更改这些默认值。

  • 调度器查询限制和超时:为防止 Looker 调度器进程过载,Looker 实例最多可以运行 10 个并发计划查询,调度器队列中的查询超时为 1200 秒。如果您的 Looker 实例由客户托管,您可以通过配置 --scheduler-query-limit--scheduler-query-timeout 启动选项来更改这些默认值。

    如果您的 Looker 实例已聚类,则集群的每个节点都会使用自己的调度器队列。因此,向集群添加节点会增加允许的并发计划查询总数,而不会给 Looker 调度器进程增加额外的负担。

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

    如果您的 Looker 实例被聚类,则集群的每个节点都会使用自己的渲染程序队列。因此,向集群添加节点会增加允许的并发渲染程序作业的总数,而不会给 Looker 渲染程序进程带来额外的负担。

  • 网络钩子超时:Looker 会尝试最多 30 分钟向网络钩子传送数据。如果 Looker 无法在 30 分钟内与网络钩子目的地通信,则查询会超时。此超时不可配置。

  • 代理超时:由 Looker 托管的实例使用代理,该代理会终止所有已运行 60 分钟的查询。此超时不可配置。

    客户托管的实例通常使用代理,默认超时时间为 60 秒。我们建议您将超时时间增加至 60 分钟。如需了解详情,请参阅在代理服务器或负载均衡器后面运行 Looker 帖子。

  • 数据库超时:大多数数据库的排队和超时规则都与 Looker 的队列和超时无关。例如,查询可能已经离开 Looker 队列,但仍可能在数据库中排队。如需详细了解如何自定义数据库查询超时,请参阅数据库文档。