persist_for(适用于模型)

本页面指的是属于模型persist_for 参数。

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

persist_for 还可以用作派生表的一部分,如 persist_for(适用于派生表)参数文档页面中所述。

用法


persist_for: "5 hours"
层次结构
persist_for
默认值
1 小时

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

定义

请考虑改用 datagrouppersist_with,如缓存查询文档页面中所述。

persist_for 可让您修改缓存的查询结果用于指定探索的时间量。Looker 中的默认缓存时长为 1 小时。缓存结果存储在 Looker 实例上的加密文件中。

Looker 中的缓存机制如下:用户运行特定查询后,系统会缓存该查询的结果。如果有人在小于 persist_for 指定的时间间隔内再次运行完全相同的查询(所有内容都必须相同,包括行数限制等细微之处),则系统会返回缓存的结果。否则,系统会针对您的数据库运行新查询。

persist_for 时间间隔到期时,系统会从缓存中删除数据。如需了解数据在缓存中的存储时长,请参阅缓存查询文档页面。

探索还支持 persist_for。如果探索及其模型都具有 persist_for 设置,则为探索设置的值将优先用于基于该探索的查询。

在探索中,您可以查看查询是否从缓存中返回,也可以强制从数据库中生成新结果。如需了解详情,请参阅缓存查询文档页面。

示例

将缓存时长调整为 2 小时:

persist_for: "2 hours"

将缓存时长调整为 30 分钟:

persist_for: "30 minutes"

关闭缓存,以便用户永远不会获得查询的缓存结果:

persist_for: "0 seconds"

注意事项

数据始终写入缓存

persist_for 设置为 0 seconds 时,用户的查询将不会从缓存中检索数据。不过,Looker 需要使用磁盘缓存来执行内部进程,因此即使 persist_for 设置为 0 seconds,加密数据也始终会写入缓存。写入缓存后,数据将被标记为待删除,但可能会在磁盘上保留长达 10 分钟。如需了解详情,请参阅缓存查询文档页面。

persist_for 不一定与您的数据导入保持一致

许多公司每天都会将数据导入到其分析数据库中。有时,他们会认为,如果数据不是持续更新的,那么运行新查询就没有意义,因此他们会将缓存时长设置为 24 小时(如 persist_for: 24 hours)。不过,这并不能阻止用户获取比最近一次刷新更旧的数据。

例如,假设在 1 月 1 日中午运行了一次查询,在 1 月 2 日上午导入了新数据,然后在 1 月 2 日中午再次运行了该查询。由于查询是在 persist_for 指定的 24 小时窗口内运行的,因此即使在 1 月 2 日加载了新数据,系统也会返回 1 月 1 日的数据。

如果您希望缓存与数据导入保持一致,请使用数据组persist_with,如缓存查询文档页面中所述。

已安排的 Look 会缓存结果

当运行已安排的 Look 时,系统会以与用户运行查询相同的方式创建缓存的结果集。如果您想预缓存某个 Look,不妨考虑保存并安排该 Look。