本页面指的是属于模型的
persist_for参数。
persist_for也可以用作探索的一部分,如persist_for(适用于探索)参数文档页面中所述。
persist_for还可以用作派生表的一部分,如persist_for(适用于派生表)参数文档页面中所述。
用法
persist_for: "5 hours"
|
层次结构
persist_for |
默认值
1 小时
接受
一个字符串,包含一个整数,后跟一个时间范围(秒、分钟或小时)
|
定义
请考虑改用
datagroup和persist_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。