我們正在開發從許多表中拉出數據並寫入單個表的bigquery查詢。我們正在使用Python來運行帶有參數的作業:將許多BigQuery表導出爲一個
job = bq_client.run_async_query(jobname, select_query)
job.destination = bq_table
job.write_disposition = 'WRITE_APPEND'
500個職位將在時間推出20個職位。不幸的是,我們將定期運行到錯誤:
Exceeded rate limits: too many table update operations for this table. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors
問題:
- 這是由於大量查詢工作/查詢太多寫入到單個目標表?如果是這樣,我很驚訝Google沒有在內部遏制bigquery jobs的寫入吞吐量。
- 如果是這種情況,我們很難判斷可以並行執行多少個作業,因爲每個選擇查詢的dataload存在很大的差異。怎樣才能避免或處理這些錯誤?退避和重試?
編輯:
查詢將針對谷歌Analytics(分析)360點的數據。例如:
SELECT
...
FROM [{datasetname}.ga_sessions_{date}];
其中每個數據集可能是不同的數據集,並且查詢多個日期。
我無法與列共享計算,但也許這足以提出合併這些查詢的方法。
https://cloud.google.com/查詢
bigquery/quota-policy –
想知道:如果所有查詢都追加到同一個表中,您是否可以將所有查詢合併爲一個? –
@MikhailBerlyant不幸的是,在這種情況下,我們無法控制寫入速率,因爲我們正在將SELECT查詢處理到Google –