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

本页面引用了模型中的 persist_for 参数。

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

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

用量

persist_for: “5 小时”
层次结构
persist_for
默认值
1 小时

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

定义

请考虑改用 datagrouppersist_with,如缓存查询和使用 datagroups 重建 PDT 文档页面中所述。

persist_for 允许您修改给定探索的缓存查询结果的时长。Looker 中的默认缓存长度为 1 小时。缓存结果会存储在您的 Looker 实例的加密文件中。

Looker 中的缓存机制的工作原理如下:在用户运行特定查询后,系统会缓存该查询的结果。如果某人在不到 persist_for 指定的时间段内再次运行完全相同的查询(所有内容都必须相同,包括行数上限等),则返回缓存的结果。否则,将对数据库运行新查询。

persist_for 时间过后,系统会停用缓存中的数据,前提是即时信息中心实验室功能已停用。如需了解数据在缓存中存储的时长,请参阅使用 datagroups 缓存查询和重建 PDT 文档页面。

“探索”功能还支持 persist_for。如果“探索”及其模型都有 persist_for 设置,对于基于该“探索”的查询,系统会为“探索”所设置的值优先。

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

示例

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

persist_for: "2 hours"

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

persist_for: "30 minutes"

关闭缓存,以防止用户看到查询的缓存结果:

persist_for: "0 seconds"

注意事项

始终将数据写入缓存

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

persist_for”未必与您的数据导入一致

许多公司每天都会将数据导入他们的分析数据库。有时,如果数据没有持续更新,它们会认为没有运行全新查询的目的,因此它们会将缓存长度设置为 24 小时(例如 persist_for: 24 hours)。不过,这不会阻止用户获取早于最近刷新时间的数据。

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

如果您想让缓存与数据导入保持一致,请使用 datagroupspersist_with(如缓存查询和使用 datagroups 重新构建 PDT 中所述)。

预定外观将缓存结果

在运行预设的 Look 时,它将创建一个缓存结果集,与用户创建查询的方式相同。如果您想预缓存特定报告,可以考虑先保存并安排定期生成报告。