本页中提及的
persist_for
参数是探索的一部分。
persist_for
也可用作模型的一部分,如persist_for
(适用于模型)参数文档页面所述。
persist_for
也可以用作派生表的一部分,如persist_for
(针对派生表)参数文档页面中所述。
用量
persist_for: “1 小时”
}
层次结构
persist_for |
默认值
模型的 persist_for 设置接受
包含整数,后跟时间范围(秒、分钟或小时)的字符串特殊规则
explore 级别的 persist_for 设置将替换模型级别的 persist_for 设置
|
定义
请考虑改用
datagroup
和persist_with
,如缓存查询和使用 datagroups 重建 PDT 文档页面中所述。
persist_for
允许您修改缓存的查询结果用于给定探索的时间。Looker 中的默认缓存长度为 1 小时。缓存结果会存储在您的 Looker 实例的加密文件中。
Looker 中的缓存机制的工作原理如下:在用户运行特定查询后,系统会缓存该查询的结果。如果再次运行相同的查询(所有查询都必须相同,包括行数上限等),则在 persist_for
指定的时间段内,系统将返回缓存的结果。否则,将对数据库运行新查询。
persist_for
时间到期后,只要停用即时信息中心的 Looker Labs 功能,系统就会从缓存中删除数据。如需了解数据在缓存中存储的时长,请参阅使用 datagroups 缓存查询和重建 PDT 文档页面。
如果“探索”和其模型都设置了 persist_for
,那么对于探索,查询的优先级将设为基于该查询的查询。
在“探索”中,您可以查看是否从缓存返回了查询或强制从数据库生成新结果。如需了解详情,请参阅缓存查询并使用 datagroups 重建 PDT 文档页面。
示例
将缓存长度调整为 2 小时:
explore: my_explore {
persist_for: "2 hours"
}
将缓存长度调整为 30 分钟:
explore: my_explore {
persist_for: "30 minutes"
}
关闭缓存,以防止用户看到查询的缓存结果:
explore: my_explore {
persist_for: "0 seconds"
}
注意事项
当 persist_for
设置为 0 seconds
时,用户的查询将不会从缓存中检索数据。但是,Looker 需要磁盘进程来执行内部进程,因此,即使 persist_for
设置为 0 seconds
,加密数据也始终会写入缓存。写入缓存后,系统会将其标记为删除,但最多可能需要在磁盘上保留 10 分钟。如需了解详情,请参阅缓存查询并使用数据组重建 PDT。
“persist_for
”未必与您的数据导入一致
许多公司每天都会将数据导入他们的分析数据库。有时,如果数据没有持续更新,它们会认为没有运行全新查询的目的,因此它们会将缓存长度设置为 24 小时(例如 persist_for: 24 hours
)。不过,这不会阻止用户获取早于最近刷新时间的数据。
例如,在 1 月 1 日中午运行查询,1 月 2 日上午导入新数据,然后在 1 月 2 日中午再次运行查询。由于查询是在 persist_for
指定的 24 小时时段内运行的,因此系统将返回 1 月 1 日的数据,即使新数据是在 1 月 2 日加载的。
如果您想让缓存与数据导入保持一致,请使用数据组和
persist_with
(如此页面介绍缓存中所述)。
预定外观将缓存结果
在运行计划 Lookout 时,它会创建缓存结果集,与用户创建查询的方式相同。如需预缓存特定报告,请考虑先保存并安排定期生成报告。