簡體   English   中英

如何在Node.js中使用bigquery API提取800萬條Google Cloud記錄?

[英]How to fetch 8 million records of Google Cloud using bigquery API in Node.js?

我正在使用Bigquery查詢Google雲數據。

當我運行查詢時,它返回約800萬行。 但這會引發錯誤:

響應太大而無法返回

我如何獲得所有800萬條記錄,任何人都可以幫忙。

1.大查詢響應的最大大小是多少?

正如在配額策略查詢中提到的,最大響應大小:壓縮128 MB(返回大型查詢結果時不受限制)

2.我們如何選擇查詢請求中未使用“導出方法”的所有記錄?

如果計划運行可能返回更大結果的查詢,則可以在作業配置中將allowLargeResults設置為true。

即使結果集很小,返回大結果的查詢也將花費更長的時間執行,並且受到其他限制

  • 您必須指定目標表。
  • 您不能指定頂級ORDER BY,TOP或LIMIT子句。 這樣做會抵消使用allowLargeResults的好處,因為不再可以並行計算查詢輸出。
  • 僅當與PARTITION BY子句一起使用時,窗口函數才能返回較大的查詢結果。

此處詳細了解如何進行分頁以獲得結果並從BigQuery Analytics書籍 (從第200頁開始)開始閱讀,其中解釋了Jobs :: getQueryResults如何與maxResults參數和int的阻止模式一起使用。

更新:

查詢結果大小限制-有時很難知道128 MB壓縮數據的含義。

當您在BigQuery中運行普通查詢時,響應大小限制為128 MB壓縮數據。 有時,很難知道128 MB壓縮數據的含義。 它會壓縮2倍嗎? 10倍? 結果在其各自的列中被壓縮,這意味着壓縮率趨於非常好。 例如,如果您有一列是一個國家的名稱,則可能只有幾個不同的值。 當您只有幾個不同的值時,這意味着沒有很多唯一信息,並且該列通常會很好地壓縮。 如果返回加密的數據塊,則它們可能無法很好地壓縮,因為它們大部分是隨機的。 (這在上面第220頁的鏈接的書中進行了說明)

嘗試這個,

在查詢窗口下,有一個“顯示選項”按鈕,單擊該按鈕,然后您將看到一些選項,

  1. 選擇或創建新的目標表;
  2. 點擊“允許大型結果”

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM