本页介绍属于 derived_table 的
persist_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 安排自动重新生成派生表,而不是等待用户查询触发派生表的生成。
datagroup 和 max_cache_age 之间的区别
将 datagroup 参数与 datagroup_trigger 参数搭配使用,可让您更灵活地触发 PDT 重建。不过,max_cache_age 参数只会使缓存失效,不会导致 PDT 过期。如果您想设置一个最长时间段,以便在将 PDT 从临时架构中舍弃之前使用,请将 persist_for 与派生表搭配使用。