2017-03-03 74 views
0

我有三個與BigQuery's cache有關的問題,因爲從緩存中獲取結果的能力大大降低了大型查詢的成本。Big Query 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(CAPS)
  3. 如果數據集是是高速緩存自動失效改性?如果沒有,是否有辦法手動使該表的所有緩存失效?

回答

3
  • 1 - 有沒有辦法讓高速緩存離開超過24小時,而不是將其複製到永久表中,然後使用它。通常結果比原始表格小得多,所以這可以爲你工作。另外請記住,如果您的數據在90天內沒有變化 - 其存儲成本降低50% - 所謂long term storage

  • 2 - 是的。從技術上講,你可以使用該臨時(匿名)表作爲常規表並查詢它。雖然沒有官方支持!呦可以找到完全合格的路徑在各自的工作信息

  • 3 - 它是!

+0

謝謝!他們如何確定何時返回一個緩存的查詢集呢?它是查詢的輸入字符串的校驗和嗎?或者是其他東西? – David542

+1

@ David542 - 主要標準 - 您的查詢必須完全相同,並且基礎數據自上次查詢後未更改。有更多的在這裏 - 詳細信息在你的問題 –

+0

正確的,我想我的問題是用於聲明:「'statistics.query.cacheHit返回爲true'」,你需要滿足什麼條件返回'true'? – David542