使用永久性磁盘的另一个示例

本页中提及的 persist_for 参数是探索的一部分。

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

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

用量

探索:探索名称 {
persist_for: “1 小时”
}
层次结构
persist_for
默认值
模型的 persist_for 设置

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

特殊规则
explore 级别的 persist_for 设置将替换模型级别的 persist_for 设置

定义

请考虑改用 datagrouppersist_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 时,它会创建缓存结果集,与用户创建查询的方式相同。如需预缓存特定报告,请考虑先保存并安排定期生成报告。