我有三个与BigQuery's cache相关的问题,因为从缓存中获取结果的能力大大降低了大型查询的成本。
如果数据尚未修改,是否有办法将缓存扩展的时间超过默认的~24小时。例如,如果我的静态数据集在6个月内没有更改,该怎么办?
如果对查询进行了微妙的更改并且不会影响它检索的信息,是否有办法从缓存中检索结果?例如:
SELECT first_name, last_name FROM mytable
vs SELECT last_name, first_name FROM mytable
(订购)SELECT id, last_name FROM mytable
vs SELECT id, last_name AS last, FROM mytable
(别名)select id from table
vs SELECT id FROM table
(上限)如果修改了数据集,缓存是否会自动失效?如果没有,有没有办法手动使该表的所有缓存无效?
答案 0 :(得分:3)
1 - 无法使缓存超过24小时,而不是将其复制到永久表中然后使用它。通常结果尺寸比原始表小得多,因此这对您有用。另外请记住,如果您的数据在90天内没有变化 - 其存储成本降低了50% - 所谓的long term storage
2 - 是的。从技术上讲,您可以将该临时(匿名)表用作常规表并进行查询。它虽然没有官方支持!! Yo可以在各自的工作信息中找到完全合格的路径
3 - 它是!