大查询缓存

时间:2017-03-03 19:49:35

标签: sql caching google-bigquery

我有三个与BigQuery's cache相关的问题,因为从缓存中获取结果的能力大大降低了大型查询的成本。

  1. 如果数据尚未修改,是否有办法将缓存扩展的时间超过默认的~24小时。例如,如果我的静态数据集在6个月内没有更改,该怎么办?

  2. 如果对查询进行了微妙的更改并且不会影响它检索的信息,是否有办法从缓存中检索结果?例如:

    • 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(上限)
  3. 如果修改了数据集,缓存是否会自动失效?如果没有,有没有办法手动使该表的所有缓存无效?

1 个答案:

答案 0 :(得分:3)

  • 1 - 无法使缓存超过24小时,而不是将其复制到永久表中然后使用它。通常结果尺寸比原始表小得多,因此这对您有用。另外请记住,如果您的数据在90天内没有变化 - 其存储成本降低了50% - 所谓的long term storage

  • 2 - 是的。从技术上讲,您可以将该临时(匿名)表用作常规表并进行查询。它虽然没有官方支持!! Yo可以在各自的工作信息中找到完全合格的路径

  • 3 - 它是!