簡體   English   中英

如何使用 python 客戶端庫處理 bigquery 中簡單選擇的大型查詢結果?

[英]How do you handle large query results for a simple select in bigquery with the python client library?

我有一張表,我在其中寫了 160 萬條記錄,每條記錄都有兩列:一個 ID 和一個 JSON 字符串列。

我想選擇所有這些記錄並將每行中的 json 作為文件寫入。 但是,查詢結果太大,我得到與此相關的 403:“403 響應太大而無法返回。請考慮在作業配置中指定目標表。”

我一直在查看以下文檔並了解他們建議為結果指定一個表並在那里查看它們,但我想做的就是從表中select * ,這樣實際上只是將其復制過來,我覺得我會在查詢該結果表時遇到同樣的問題。

https://cloud.google.com/bigquery/docs/reference/standard-sql/introduction https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#JobConfigurationQuery.FIELDS.allow_large_results

這里的最佳做法是什么? 分頁? 表抽樣? list_rows

我正在使用問題標題中所述的python客戶端庫。 我當前的代碼是這樣的:

query = f'SELECT * FROM `{project}.{dataset}.{table}`'
return client.query(query)

我還應該提到,ID 不是連續的,它們只是字母數字。

最佳實踐和有效方法是導出數據然后下載,而不是查詢整個表 ( SELECT * )。

從那里,您可以使用 python 代碼從導出的文件(例如 CSV、JSON 等)中提取所需的數據,而無需等待您的代碼完成SELECT *查詢。

暫無
暫無

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

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