我正在使用Bigquery查詢Google雲數據。如何在Node.js中使用bigquery API獲取800萬條Google Cloud記錄?
當我運行查詢時,它返回大約8百萬行。 但它拋出錯誤:
反應過大,返回
我怎樣才能得到所有800萬個的記錄,任何人可以幫助。
我正在使用Bigquery查詢Google雲數據。如何在Node.js中使用bigquery API獲取800萬條Google Cloud記錄?
當我運行查詢時,它返回大約8百萬行。 但它拋出錯誤:
反應過大,返回
我怎樣才能得到所有800萬個的記錄,任何人可以幫助。
1.什麼是Big Query Response的最大尺寸?
,因爲它是在Quota-policy查詢的最大響應大小提到:128 MB壓縮(無限返回時,大的查詢結果)
2.我們如何選擇查詢請求的所有記錄不是在「導出方法」?
如果您計劃運行可能會返回更大結果的查詢,則可以在job configuration中將allowLargeResults
設置爲true。
查詢返回較大的結果將需要更長的時間來執行,即使結果集很小,並受到additional limitations:
瞭解更多關於如何進行分頁,以獲得滿意的結果here也從BigQuery Analytics book閱讀,200頁面,其中解釋瞭如何Jobs::getQueryResults一起與maxResults
參數和INT的阻塞模式工作開始頁面。
更新:
查詢結果大小限制 - 有時候,很難知道什麼128 MB壓縮 數據的手段。
當您在BigQuery中運行正常查詢時,響應大小限於壓縮數據的128 MB 。有時候,很難知道128MB的壓縮數據意味着什麼。它壓縮了2倍嗎? 10倍?結果被壓縮在 各自的列內,這意味着壓縮比往往很好。例如,如果您有一列是一個國家/地區的名稱,那麼 可能只有幾個不同的值。當只有幾個不同的值時,這意味着沒有很多獨特信息,並且列 通常會壓縮得很好。如果你返回加密的數據塊,他們將會壓縮不好,因爲它們大多是隨機的。 (在第220頁上面鏈接的書中解釋了這一點)
試試這個,
在查詢窗口中,有一個按鈕「顯示選項」,單擊,然後你會看到一些選項,
運行查詢,看看它是否有效。
目標表將是臨時的還是永久的? –
它將創建一個新表,但您可以稍後刪除它。或者你可以爲此設置一個表格,並且每次都覆蓋它,那麼它就是臨時表格。這只是我解決這個問題的一條短路。 – HaipengSu
一種方法可以將請求拆分爲百萬分之一或類似的東西。 –
是的,我正在拆分記錄,但在此之後,它再次通過錯誤,如響應太大,返回 –
確保您確實希望看到所有800萬行。這是有點荒謬的,你想要的都是,而且很可能你把問題弄錯了,你想要彙總結果並對它們進行分頁。 – Pentium10