我们正在开始从许多表中提取数据并写入单个表的bigquery查询 . 我们使用Python来运行带有参数的作业:
job = bq_client.run_async_query(jobname, select_query)
job.destination = bq_table
job.write_disposition = 'WRITE_APPEND'
500个工作岗位将在20个时候开始 . 不幸的是,我们会定期遇到错误:
超出速率限制:此表的表更新操作太多 . 有关详细信息,请参阅https://cloud.google.com/bigquery/troubleshooting-errors
问题:
-
这是由于bigquery作业/查询对单个目标表的写入次数过多吗?如果是这样,我很惊讶Google并没有在内部限制bigquery作业的写入吞吐量 .
-
如果是这种情况,我们很难同时测量可以并行执行的作业数,因为每个选择查询的dataload存在很大差异 . 有什么办法可以避免或处理这些错误?退避并重试?
编辑:
这些查询针对的是Google Analytics 360数据 . 例如:
SELECT
...
FROM [{datasetname}.ga_sessions_{date}];
每个数据集可以是不同的数据集,并查询许多日期 .
我不能分享对列的计算,但也许这足以提出一种合并这些查询的方法 .
1 回答
假设SELECT List对于所有查询都是相同的
用于BigQuery标准SQL
for BigQuery Legacy SQL