2015-11-03 72 views
1

嗨,那裏。如何使用BigQuery插槽

最近,我想通過使用「group by」在一些表(表的名稱適合xxx_mst_yyyymmdd)在bigquery Web UI中運行查詢。行將超過1000萬。不幸的是,查詢失敗,此錯誤:

查詢失敗 錯誤:查詢執行過程中的資源超出。

我做了一些改進,與我的查詢語言,該錯誤可能不是這個時間。但我的數據的increasement發生,錯誤也會出現在future.So我檢查的BigQuery的最新版本,也許有兩種方法可以解決這個問題:

1. 2016/01/01之後,Bigquery將更改查詢定價層以滿足「高計算層」,以便「resourcesExceeded error」不會再發生。

2.BigQuery插槽。 我檢查了谷歌的一些文件,並沒有發現關於如何使用BigQuery的Slots.Is有大量查詢插槽的任何樣本或用例的方法嗎?或者我有與BigQuery團隊聯繫,以開啓該功能?

希望有人能幫我回答這個問題,非常感謝!

回答

1

爲了讓您的項目符合使用插槽的條件,您需要聯繫支持人員。

2

幾個要點:

  1. 我很驚訝,一組由10M的基數失敗,資源超標。你能否提供失敗查詢的工作ID,以便我們可以進行調查?您提到您擔心隨着您的數據量增加而更頻繁地遇到這些錯誤;您應該能夠將數據量增加幾個數量級而不會看到這個數據;很可能您遇到了一個錯誤或者您的查詢或數據有些奇怪。

  2. 「高計算層」不一定會擺脫resourcesExceeded。在大多數情況下,resourcesExceeded意味着BigQuery遇到內存限制;高計算層只能解決CPU使用率問題。 (並且注意,它們還沒有被啓用)。

  3. BigQuery插槽使您能夠更快速地處理數據並獲得更可靠的性能。大多數情況下,他們也不會幫助防止resourcesExceeded錯誤。

  4. 目前(如11月5日),你可以可能需要提供具有GROUP BY的每個關鍵字的錯誤。最近發生的變化應使BigQuery的自動選擇執行策略,所以每個不應該是必要的,但也有一對夫婦的情況下,不選擇正確的一個。如有疑問,請在JOIN和GROUP BY操作中添加EACH。

+0

Jordan Tigani,感謝您的建議,因爲您詢問「工作ID是什麼」,因爲該項目中存在一些商業祕密,所以我在Google SupportCenter中提供了SQL和工作ID,如果有的話消息,我會更新這張票。 – xialin

+0

作爲我的SQL的簡要視圖:爲Ct,A,B,C FROM (SELECT甲 SELECT COUNT(*),B,C FROM [數據集。一個] ) GROUP BY A,B,C HAVING克拉> 1 或者是這樣的: SELECT COUNT(*)AS CT,A,B,C FROM [dataset.a] GROUP BY A,B ,C HAVING> 1 數據集的行數約爲11,000,000。 – xialin

+0

更新: SELECT COUNT()AS ct,A,B,C FROM(SELECT A,B,C FROM [dataset.a])GROUP BY A,B,C具有ct> 1→失敗。 SELECT COUNT()AS ct,A,B,C FROM(SELECT A,B,C FROM [dataset.a])GROUP EACH BY A,B,C H> ct> 1→success。 這似乎是每個也是需要的。 – xialin

相關問題