借助 Looker 的永久性派生表 (PDT) 函数,您可以在 Looker 中执行复杂的分析。Looker 会在永久派生表页面上显示多项有助于跟踪和排查 PDT 行为的管理功能。拥有适当权限的管理员和用户可以通过 Looker 管理面板的数据库部分访问此页面。(如需了解如何排查 PDT 问题,请参阅 Looker 中的派生表文档页面。)
永久性派生表页面仅显示已启用 PDT 的关联,并且仅显示符合以下条件的 PDT:
本页中的信息基于内部 PDT 事件日志,如本页中的 PDT 事件日志模型部分所述。
自定义表格
默认情况下,“永久性派生表”页面最多会显示 25 个 PDT,并会为您在 Looker 实例上拥有数据访问权限的所有连接加载 PDT。您可以通过以下几种方式更改表格中显示的数据:
- 点击所有连接旁边的箭头,即可仅查看特定连接的 PDT。该选择器仅会显示已启用 PDT 且您有数据访问权限的关联。
- 在搜索框中输入关键字,以将 PDT 列表缩小到名称包含该关键字的 PDT。表格中会显示包含匹配搜索字词的 PDT,并以粗体显示。点击搜索栏中的 X 可清除搜索查询字词。
- 点击过滤条件图标,为表定义过滤条件。
- 点击关闭/打开图标可显示或隐藏资讯一览部分。
- 点击某个列的名称,即可按该列对表格进行排序。再次点击列名称可将排序顺序倒转。
- 点击选择要显示的列图标,即可隐藏或显示表格中的列。
- 使用显示选择器选择单个网页上显示的结果数量。如果表格超出单个页面的长度,您可以点击页面底部中间的箭头,前往下一页或上一页。
过滤
您可以使用搜索栏旁边的过滤条件图标,选择要在永久性派生表页面上显示哪些 PDT。例如,您可以按上次 build 状态进行过滤,以仅查看出现 build 错误的 PDT;也可以按模型进行过滤,以限制显示特定模型的 PDT。
如需过滤永久性派生表页面,请执行以下操作:
- 点击过滤器图标 。
- 从过滤器菜单中的第一个过滤条件选择器中选择一个过滤条件选项。您可以使用以下选项:
- 在过去未触发 - 按在指定时数和分钟数内未触发的 PDT 过滤永久性派生表页面。
- Triggered in the Last(在过去)- 按在指定时长内触发的 PDT 过滤永久性派生表页面。
- 模型 - 过滤永久性派生表页面,以查找指定模型中包含的 PDT。
- 持久性规则 - 按 PDT 持久性类型过滤永久性派生表页面。
- 上次尝试状态 - 按指定的 PDT 状态过滤永久性派生表页面。
- 已发布为稳定版视图 - 一个布尔值,用于过滤永久性派生表页面中的 PDT,并根据其
publish_as_db_view
参数值,针对已发布为稳定版视图的 PDT 显示 Yes,针对未发布为稳定版视图的 PDT 显示 No。 - 上次构建时长超过 - 根据构建时间超过指定秒数的 PDT 过滤永久性派生表页面。
- 项目 - 按指定 LookML 项目中的 PDT 过滤永久性派生表页面。
- 在第二个过滤条件选择器中,选择要用于过滤永久派生表页面的值。对于在过去未触发或在过去触发选项,请输入小时数或分钟数。对于上次构建时长超过选项,请输入秒数。
- 点击添加过滤条件以添加更多过滤条件,然后针对要添加的每个过滤条件重复第 2 步和第 3 步。
- 如需清除所选过滤条件并随时重新开始,请点击全部清除。
- 如需移除任何其他过滤条件,请点击要移除的过滤条件的清除选项。
- 如需将所选过滤条件应用于永久派生表页面,请点击应用。
您会在永久派生表页面顶部看到已应用的过滤条件。
在永久派生表页面上,点击已应用的过滤条件旁边的 X,即可从永久派生表页面中移除该过滤条件。点击全部清除可清除所有过滤条件。
了解 PDT 页面
以下部分介绍了永久派生表页面上的信息。
“生产”和“开发”标签页
如果您是处于开发模式的 LookML 开发者,则“永久性派生表”表将包含两个标签页:
默认情况下,系统会选择正式版标签页,并显示正式版 PDT。这些是已部署到实例的生产环境 PDT;这些 PDT 会为用户的“探索”查询提供数据。(如果您处于正式版模式或没有
develop
权限,则“永久派生表”页面不会显示任何标签页,并且该页面仅会显示正式版 PDT 的信息。)开发标签页会显示开发 PDT。开发 PDT 尚未推送到生产环境。
当处于开发模式的 LookML 开发者进行更改,而这些更改会影响 PDT 中的数据或 PDT 的查询方式时,Looker 会创建开发 PDT。这些更改会促使 Looker 创建开发 PDT,但除非在进行更改后查询 PDT,否则 Looker 实际上不会构建 PDT。开发标签页可帮助您确定 Looker 创建了哪些开发 PDT 以及这些 PDT 是否已构建。
如需详细了解促使 Looker 创建开发 PDT 的原因以及开发 PDT 在数据库中保留的时长,请参阅 Looker 中的派生表文档页面。
“资讯一览”部分
一目了然部分会以直观的方式汇总当前在 PDT 表中显示的 PDT 的状态。如果您为表格定义了过滤条件,或者使用了页面顶部所有关联旁边的箭头将表格缩小到特定关联,资讯一览部分将缩小结果,以匹配 PDT 表格中显示的内容。
点击该部分顶部的关闭/打开图标,即可显示或隐藏资讯一览部分。
表列
以下部分介绍了永久派生表页面上的表格列。您可以点击选择要显示的列图标,隐藏或显示某些表格列。如需了解详情,请参阅本页面上的自定义表格部分。
PDT 名称
PDT 名称列会显示 PDT 的名称,该名称在 PDT 的 LookML 视图文件的 view
参数中定义。
PDT 名称列会在 PDT 名称下显示以下其他信息(如果适用):
- 旧 build 表示该行显示的是旧 PDT build 的相关信息。如需详细了解此消息,请参阅选项菜单中的 PDT 详细信息弹出式窗口。
- 增量表示 PDT 是增量 PDT。
- 具体化视图表示 PDT 是数据库上的具体化视图。
上次尝试状态
上次尝试状态列会显示上次尝试构建每个所列 PDT 的状态:
- 正在重新生成表示可以查询 PDT,并且当前正在构建更新后的表。时间戳,表示 PDT 开始构建的时间。
- 成功表示 PDT 已成功构建。
- 正在构建表示 PDT 目前正在构建中,在构建完成之前无法查询。
- 未构建表示 PDT 目前未构建。
- 构建错误表示构建过程中发生了错误。您可以点击构建错误查看错误的来源,并前往 PDT 的 LookML(如果您拥有查看 LookML 的适当权限)。如需详细了解如何从永久性派生表页面排查 PDT 问题,请参阅本页上的选项菜单部分。
上次尝试时间
上次尝试时间列表示上次尝试构建 PDT 时的时间。
上次成功构建时间
上次成功构建时间列表示上次成功构建 PDT 的时间。
上次构建时长
上次构建时长列会显示该 PDT 的最新 build 所用时间(以秒为单位),以及构建该 PDT 的平均用时(以秒为单位)。
持久性规则
持久化规则列显示应用于 PDT 的持久化类型,如 PDT 的视图文件中所定义。它还会指示上次检查成功构建的 PDT 的时间(对于触发器类型的 PDT)或成功构建的 PDT 的到期时间(对于持久化类型的 PDT)。“持久化规则”列中会显示两种类型的持久化:
- 对于使用
persist_for
参数保留的 PDT,系统会显示保留时长:(时间)。 - 对于使用
datagroup_trigger
参数保留的 PDT,系统会显示 Trigger: (datagroup name)。您可以点击数据集组名称链接,查看datagroup
参数的sql_trigger
值。 - 对于使用
sql_trigger_value
参数保留的 PDT,系统会显示 Trigger: SQL。您可以点击链接查看sql_trigger_value
语句。 - 系统会针对物化视图显示物化视图,这种视图会利用数据库的功能在数据库中保留派生表。
项目
“项目”列表示定义 PDT 的 LookML 项目的名称。
连接
如果从连接选择中选择了所有连接,系统会显示连接列,并显示启用了 PDT 的连接的名称。
模型
Model 列会显示包含 PDT 视图文件的模型文件的名称。
选项菜单
三点状 Options 菜单
特别适合用于排查意外行为。借助该页面提供的选项,您可以查看表的上次构建时间、构建所用时间、最新构建时间与平均构建时间的对比情况,以及触发器是否正常运行。您可以选择以下任一选项:- 前往 LookML - 如果您拥有查看 LookML 的适当权限,则会打开定义 PDT 的视图文件。
- PDT 活动信息中心 - 打开 PDT 活动信息中心,该信息中心会进行过滤,以显示所选 PDT 在过去四周内的活动。
- PDT 详细信息 - 打开一个弹出式窗口,其中包含特定 PDT 的更多信息和统计数据。如需了解详情,请参阅本页的 PDT 详情模态部分。
如需获取问题排查提示,请参阅 Looker 中的派生表文档页面中的“监控和排查 PDT 问题”部分。
PDT 详情模态窗口
点击 PDT 的三点状 Options 菜单
中的 PDT Details 选项,查看 PDT 详情模态。模态窗口中的信息取决于 PDT 的配置。您可能会看到以下信息:
- 表名称:最近一次成功构建的 PDT 的哈希值。
- 模型:包含 PDT 的视图文件的模型文件的名称。
- 稳定名称:PDT 在数据库中的稳定版数据库视图的名称(如果 PDT 已发布为稳定版视图)。您可以通过向派生表添加
publish_as_db_view: yes
语句,或使用materialized_view: yes
语句将派生表转换为具体化视图,将 PDT 作为稳定视图发布到数据库中。 - 连接:启用了 PDT 的连接的名称。
- 旧 build:一个布尔值,如果 build 是旧 PDT build,则显示 Yes;如果不是,则显示 No。
- 表类型:对于旧版 build,此字段会显示,并显示表类型。值包括旧版表和替代表。
- 增量 PDT:如果 PDT 是增量 PDT,则显示 Yes;如果不是,则显示 No。这是一个布尔值。
- 状态:提供上次尝试状态。对于失败的 build,如果用户具有查看 LookML 的适当权限,则会提供 SQL 错误消息和指向模型的 LookML 的链接。
- 依赖项:点击显示依赖关系图按钮,即可显示此 PDT 依赖的所有派生表的关系图。图中的每个节点都对应于一个派生表。每个节点的颜色都与派生表的状态相对应,如下所示:
- 上次 build:
- 最近一次成功构建的时间:最近一次成功构建 PDT 的日期和时间。
- 最新 build 时长:最近一次 PDT build 的用时(以秒为单位;如果表格尚未构建,则显示 –)。
- 平均构建时长:构建 PDT 的平均用时(以秒为单位;如果表格尚未构建,则显示 –)。
- 构建原因:构建 PDT 的原因(对于初始 build,为 inception;如果 PDT 使用数据集进行持久化,则为 datagroup triggered;如果 PDT 的 SQL 触发器值发生了更改,则为 trigger value change)。
- 增量键:适用于使用增量 build 的 PDT 的
increment_key
参数。 - 增量偏移量:适用于使用增量 build 的 PDT 的
increment_offset
参数。 - 增量 build 添加/移除的行数:上次递增表时向表中添加或从表中移除的行数(如果表的持久化策略上次触发递增时未添加或移除任何行,则显示 –)。
- 上次尝试的 SQL:用于查询数据库以创建表的上一个 build 的 SQL。
- 持久性规则:
- Type:表所使用的持久性类型。如需了解可能的值,请参阅此页面上的持久化规则列部分。
- 保留时长:对于 Persist 类型的 PDT,为保留时长值。不适用于触发器类型的 PDT。
- 数据集群:对于数据集群触发器 PDT,提供数据集群的名称。
- SQL 代码块:对于数据集群和 SQL 触发器 PDT,代码块将显示触发器的 SQL 语句。对于数据集触发器,这是数据集的
sql_trigger
参数的 SQL。对于 SQL 触发器,这是sql_trigger_value
参数的 SQL。 - 触发器值:对于触发器类型的 PDT,触发 PDT 构建的值(对于使用
datagroup_trigger
持久化的成功构建的 PDT,显示 –;如需查看数据集群的最新触发器值,请参阅管理面板中的数据集群页面)。 - 上次检查时间:对于触发器类型的 PDT,上次检查触发器值的时间。
- 到期时间:PDT 的到期时间(如果适用,不适用于数据集群触发器)。
PDT 活动信息中心
PDT 活动信息中心会显示与 PDT、其重新构建和查询相关的信息。
PDT 活动信息中心默认显示过去四周的活动信息。您可以使用信息中心顶部的过滤条件栏更改显示的时间段。PDT 活动信息中心包含显示以下信息的功能块:
- PDT 的摘要,其中包含定义 PDT 的 LookML 模型和视图的名称、PDT 使用的数据库连接的名称、PDT 成功和失败的 build 尝试次数的总和,以及失败的 build 尝试次数占总尝试次数的百分比。
- PDT 最近一次完整重建的日期和时间。
- 如果 PDT 是增量 PDT,则为 PDT 最近一次增量重新构建的日期和时间。
- 如果 PDT 是增量 PDT,则表示自最近一次完整重新构建以来发生的增量重新构建次数。
- 重新构建 PDT 所需的平均时间。
- 一个可视化图表,显示最近发生的所有创建事件,按导致事件的操作类型的摘要进行分组。
- 信息中心所涵盖时间段内发生的所有 PDT 重新构建的列表,包括每次重新构建的完成日期、每次重新构建所用的时间(以秒为单位)、重新构建是否为增量构建、导致每次重新构建的触发器,以及 PDT 构建的数量。
- 所有失败的重新构建尝试的列表,包括失败的重新构建开始的日期和时间、导致失败的错误类型、错误消息和创建失败的次数。
- 所有 PDT 重新构建触发器事件的列表,包括事件 ID 编号、事件日期、事件类型以及触发器事件包含的数据。
- 所有 PDT 重新构建事件的列表,包括事件 ID 编号、事件日期、事件类型以及重新构建事件包含的数据。
- 直接查询字段的查询数量,按查询来源分组,以及每个查询来源的平均运行时。
- 在 PDT 上运行的查询总数。
- 查询的所有 PDT 字段的列表,包括定义字段的 LookML 视图和模型、字段名称、包含该字段的探索运行的名称,以及该字段在查询中出现的次数。
PDT 事件日志模型
Looker 包含一个名为 system_activity
的预构建模型,可让您轻松探索 PDT 事件日志。PDT 事件日志是数据库连接的临时架构中的一个表,用于跟踪 PDT 的触发器和构建活动。
您可以通过 Persistent Derived Tables 页面 Options 三点状菜单 中的 Recent Build Events 和 Recent Trigger Events 链接访问该模型,也可以通过 Looker Admin 面板中的 Connections 页面访问该模型。
如需从连接页面访问 PDT 事件日志“探索”,请为每个连接从齿轮图标下拉菜单
中选择显示 PDT 事件日志选项。您可以像探索任何其他 Looker 探索一样探索该模型。从连接页面访问时,系统会针对整个连接过滤 PDT 事件日志探索。从永久性派生表页面访问时,系统会按特定 PDT 过滤 PDT 事件日志“探索”。
以下是 PDT 事件日志“探索”部分中可用字段的简要指南:
字段 | 说明 |
---|---|
操作 | 描述所发生的操作;这可能包括重新生成、丢弃、创建和收割活动。如需详细了解如何查看和了解 PDT 日志操作及其对应的操作数据,请参阅了解 PDT 日志操作文档页面。 |
操作数据 | 提供有关操作的更具体详细信息,包括所使用的触发器、触发器的值、永久表的到期时间、重新构建的原因、错误消息的文本等。如需详细了解如何查看和了解 PDT 日志操作及其对应的操作数据,请参阅了解 PDT 日志操作文档页面。 |
连接 | 派生表所在连接的名称。 |
哈希 | 每个派生表都包含用于创建它的 SQL 的哈希值。 |
ID | 生成 PDT 的 Looker 实例的唯一 ID。在许多情况下,指向数据库的 Looker 实例只有一个,因此您只会看到一个 ID。不过,如果您有预演版实例或类似实例,则可能会看到多个 ID。 |
模型名称 | 用于生成表格的模型的名称。 |
发生日期 | 事件发生的日期和时间。 |
Occur Utc Display Date | 事件发生的日期和时间(世界协调时间/UTC)。 |
序列 | PDT build 中的步骤编号。 |
短哈希 | 用于创建派生表而编写的 SQL 的经过截断的哈希版本。 |
表名称 | PDT 的完整名称,包括表类型前缀、哈希和视图名称。 |
Tid | 交易 ID。 |
视图名称 | 派生表的视图名称。 |