4

我正在使用Bigquery查詢Google雲數據。如何在Node.js中使用bigquery API獲取800萬條Google Cloud記錄?

當我運行查詢時,它返回大約8百萬行。 但它拋出錯誤:

反應過大,返回

我怎樣才能得到所有800萬個的記錄,任何人可以幫助。

+0

一種方法可以將請求拆分爲百萬分之一或類似的東西。 –

+0

是的,我正在拆分記錄,但在此之後,它再次通過錯誤,如響應太大,返回 –

+0

確保您確實希望看到所有800萬行。這是有點荒謬的,你想要的都是,而且很可能你把問題弄錯了,你想要彙總結果並對它們進行分頁。 – Pentium10

回答

2

1.什麼是Big Query Response的最大尺寸?

,因爲它是在Quota-policy查詢的最大響應大小提到:128 MB壓縮(無限返回時,大的查詢結果)

2.我們如何選擇查詢請求的所有記錄不是在「導出方法」?

如果您計劃運行可能會返回更大結果的查詢,則可以在job configuration中將allowLargeResults設置爲true。

查詢返回較大的結果將需要更長的時間來執行,即使結果集很小,並受到additional limitations

  • 您必須指定一個目標表。
  • 您不能指定頂級ORDER BY,TOP或LIMIT子句。這樣做會否定使用allowLargeResults的好處,因爲不能再同時計算查詢輸出。
  • 僅當與PARTITION BY子句結合使用時,窗口函數才能返回大型查詢結果。

瞭解更多關於如何進行分頁,以獲得滿意的結果here也從BigQuery Analytics book閱讀,200頁面,其中解釋瞭如何Jobs::getQueryResults一起與maxResults參數和INT的阻塞模式工作開始頁面。

更新:

查詢結果大小限制 - 有時候,很難知道什麼128 MB壓縮 數據的手段。

當您在BigQuery中運行正常查詢時,響應大小限於壓縮數據的128 MB 。有時候,很難知道128MB的壓縮數據意味着什麼。它壓縮了2倍嗎? 10倍?結果被壓縮在 各自的列內,這意味着壓縮比往往很好。例如,如果您有一列是一個國家/地區的名稱,那麼 可能只有幾個不同的值。當只有幾個不同的值時,這意味着沒有很多獨特信息,並且列 通常會壓縮得很好。如果你返回加密的數據塊,他們將會壓縮不好,因爲它們大多是隨機的。 (在第220頁上面鏈接的書中解釋了這一點)

1

試試這個,

在查詢窗口中,有一個按鈕「顯示選項」,單擊,然後你會看到一些選項,

  1. 選擇或創建一個新的目標表;
  2. 單擊「允許大結果」

運行查詢,看看它是否有效。

+0

目標表將是臨時的還是永久的? –

+0

它將創建一個新表,但您可以稍後刪除它。或者你可以爲此設置一個表格,並且每次都覆蓋它,那麼它就是臨時表格。這只是我解決這個問題的一條短路。 – HaipengSu

相關問題