persist_for(适用于派生表)

本页介绍属于 derived_tablepersist_for 参数。

persist_for 也可以用作探索的一部分,如 persist_for(适用于探索)参数文档页面中所述。

persist_for 还可以用作模型的一部分,如 persist_for(针对模型)参数文档页面中所述。

用法

view: my_view {
  derived_table: {
    persist_for: "24 hours"
    ...
  }
}
层次结构
persist_for
默认值

接受
一个字符串,包含一个整数,后跟一个时间范围(秒、分钟或小时)

定义

请考虑改用datagroup 参数datagroup_trigger 参数,如缓存查询文档中所述。

借助 persist_for,您可以设置持久性派生表在重新生成之前可使用的最长时间。当用户运行依赖于persist_for 派生表的查询时,Looker 会根据 persist_for 检查该表的存在时间。如果年龄大于 persist_for 设置,则在运行查询之前重新生成派生表。如果年龄小于 persist_for 设置,则使用现有的派生表。

PDT 的 persist_for 独立于模型探索persist_for 参数运行。

如果您的管理员已授予您 develop 权限,您可以在派生表达到 persist_for 年限之前强制重新生成该表。从探索操作齿轮下拉菜单中选择重建派生表并运行选项。

如需详细了解重新构建派生表并运行选项,请参阅 Looker 中的派生表文档页面。

示例

如果派生表已存在超过 1 小时,则重新生成该派生表

persist_for: "1 hour"

如果派生表已存在超过 1.5 小时,则重新生成该派生表

persist_for: "90 minutes"

如果派生表已超过 1 天,则重新生成该表

persist_for: "24 hours"

注意事项

persist_for 要求您已启用永久性派生表

除非您在 Looker 实例上为派生表启用了持久性,否则 persist_for 将不起作用。大多数客户在首次配置 Looker 时都会设置永久性派生表。此规则最常见的例外情况是,客户将 Looker 连接到 PostgreSQL 只读热插拔副本数据库。

persist_for 在开发模式和生产模式下的运作方式不同

persist_for 在生产模式下应按预期运行。在开发模式下,所有派生表最多会保留 24 小时,即使您将 persist_for 设置为更长的时间也是如此。

如需了解详情,请参阅 Looker 中的派生表文档页面中的开发模式下的持久化表部分。

persist_for 的替代方案

persist_for 时间段过期后,Looker 不会自动重新生成新的派生表。而是会舍弃该表,并在用户下次查询时生成新的派生表。您可以使用 sql_trigger_value 安排自动重新生成派生表,而不是等待用户查询触发派生表的生成。

datagroupmax_cache_age 之间的区别

datagroup 参数与 datagroup_trigger 参数搭配使用,可让您更灵活地触发 PDT 重建。不过,max_cache_age 参数只会使缓存失效,不会导致 PDT 过期。如果您想设置一个最长时间段,以便在将 PDT 从临时架构中舍弃之前使用,请将 persist_for 与派生表搭配使用。