跳转到内容

仪表板缓存

仪表板会缓存其绘制的每个图表的结果。第一个打开仪表板的人会对数据仓库运行其查询;此后打开它的每个人得到的都是已存储的结果,这就是第二次查看比第一次快得多的原因。

缓存的结果会在两种情况下被丢弃,之后的下一次查看会重新查询数据仓库:图表背后的表被重新发布,或者结果达到其缓存生存期的终点。

重新发布表会清除其缓存的结果

Section titled “重新发布表会清除其缓存的结果”

工作流运行重新发布某个表时,读取该表的每个图表都会立即丢弃其缓存的结果。下一个打开仪表板的人会看到刷新后的数字,无需等待,也无需手动强制刷新。

这意味着仪表板永远不会因为缓存而显示刷新之前的数字。如果仪表板在工作流运行后看起来已过时,原因在于工作流而不是缓存,请检查运行是否已完成,以及是否重新发布了您预期的表。

每个缓存的结果也带有生存期,到期后会自行失效。默认值为 1小时。

让仪表板保持最新的不是生存期,而是重新发布。因此,对于仅在工作流运行时才会变化的数据,较短的生存期没有任何好处,却代价高昂:最后一个结果过期之后的任何一次查看,都会从头重新查询数据仓库。成批使用的仪表板(例如晨会回顾、月末结账)几乎每次加载都要付出这一代价。

直到 2026 年 8 月,默认值都是 5 分钟。当时设置得较短,是因为重新发布并不能可靠地清除缓存的结果,所以只有过期才能让仪表板保持最新。现在重新发布会清除它们,一小时既安全,成本也低得多。

对于变化不那么频繁的表,可以进一步调高,例如在夜间重新加载的表适合设置为一天,而重新加载该表的工作流仍会在新数据到达的瞬间清除缓存。

以秒为单位设置生存期,可以设置在数据库上,也可以设置在单个数据集上。数据集上的值优先于其数据库上的值,两者都未设置时适用 1 小时的默认值。更改任一项都需要仪表板区域中相应的编辑权限。

对数据库上的每个数据集:

  1. 在仪表板区域中转到 Data → Databases
  2. 点击该数据库上的编辑图标
  3. 打开高级选项卡,然后打开 Performance
  4. 在 Chart cache timeout 中输入以秒为单位的值,例如 3600 表示一小时
  5. 点击 Finish

对单个数据集:

  1. 转到 Data → Datasets
  2. 点击该数据集上的编辑图标
  3. 打开设置选项卡
  4. 在 Cache timeout 中输入以秒为单位的值
  5. 点击保存

有两个值具有特殊含义:0 表示永不过期,因此结果只会通过重新发布来清除;-1 表示对该数据库或数据集完全禁用缓存。

更改适用于此后缓存的结果。缓存中已有的结果会保留其存储时的生存期,直到过期或表被重新发布。

您很少需要这样做,但可以自行丢弃仪表板缓存的结果:打开 Edit dashboard 旁边的菜单,选择 Force refresh dashboard。如果某个图表提供的是较旧的结果,右上角会有一条说明,指出数据缓存于多久之前,点击它即可强制执行同样的刷新。

请优先使用这两种方式,而不是重新加载浏览器页面,因为浏览器重新加载会重新请求图表,但收到的仍是缓存的结果。