【发布时间】:2021-12-07 10:58:09
【问题描述】:
所以我尝试像这样更新多行(至少 50 行),这将导致时间超过 2 分钟(慢):
query_job_list = []
for data in data_list:
update statement = ...
query_job = client.query(update_statement)
query_job_list.append(query_job)
for query_job in query_job_list:
query_job.result()
执行上述代码会导致:
BadRequest('Could not serialize access due to concurrent update')
我记得它已被锁定,因此在作业仍在运行时我们无法更新。 (对不起,不是 SQL 专家)
我只是想知道在 Bigquery 上更新多行的最快方法是什么?
【问题讨论】:
-
BQ 不适合高水平的单个行级更新(相对于事务数据库 MySQL、PostGreSQL 等)。您将希望将所有新值放在一个
select语句中并一次更新它们。您没有包含更新声明的示例,因此很难说出您在做什么。查看cloud.google.com/bigquery/docs/reference/standard-sql/… -
嗨@Tenserflu,如果我的回答解决了您的问题,请考虑接受并支持它。如果没有,请告诉我,以便我改进答案。
标签: sql python-3.x google-bigquery