2014-03-26 29 views

回答

12

隨着價格的變化,也有使用批量優先級主要有兩個原因:

  • 它可以讓你排隊,你的工作。
  • 它允許您以不影響高優先級查詢的方式運行低優先級查詢。

有一些影響交互式(即非批處理)查詢的速率限制 - 最多可同時運行20個,併發字節限制和「大查詢」限制。如果遇到這些限制,則查詢將立即失敗。這是因爲BigQuery假定交互式查詢是您需要立即運行的。

當您使用批處理時,如果您遇到速率限制,則查詢將排隊並在稍後重試。還有類似的費率限制,但它們與交互式費率限制分開運行,所以您的批量查詢不會影響您的交互式費率限制。

一個例子可能是您每天或每小時運行一次定期查詢來構建儀表板。也許你有100個你想運行的查詢。如果您嘗試以交互式方式一次全部運行它們,則有些會因爲併發速率限制而失敗。此外,您不一定希望這些查詢干擾您從BigQuery Web UI手動運行的其他查詢。因此,您可以按批處理優先級運行儀表板查詢,其他查詢將以交互方式正常運行。

另一點需要注意的是批量查詢的調度已經改變,所以平均等待時間應該大大減少。而不是等待半小時左右,批量查詢應該在一兩分鐘內開始(取決於排隊等)。

+0

實際上,我如何估計當我組建一個新儀表板並需要添加定期查詢時,我的查詢是否會遇到併發字節限制? – foxwendy

+0

實際上,這很難估計何時達到併發字節數限制。請注意,有一個錯誤,我們定期點擊shuffle(JOIN EACH和GROUP EACH)查詢卡住,這可能會導致命中併發字節率限制。這是我們正在努力解決的優先級0問題。 –

+1

謝謝@Jordan Tigani。 Row_number()over(partition by)是否遇到相同的shuffle問題?我想它是在場景後面以組的形式執行的,對嗎? – foxwendy

相關問題