【发布时间】:2019-08-05 05:40:46
【问题描述】:
以下 BigQuery DELETE 查询因超时而失败,因为它达到了 6 小时的执行时间限制:
DELETE animals A WHERE EXISTS
(SELECT id from pets P WHERE A.id = P.id)
餐桌上的动物有大约 50.000.000.000 条记录。
餐桌宠物有大约 300.000 条记录。
表没有分区。
编辑:
似乎此查询没有任何改进:
DELETE animals WHERE id IN
(SELECT id from pets)
【问题讨论】:
-
我建议您使用 SELECT 查询,该查询从
animals获取唯一记录,并与pets合并并写入新表。截断数据并将数据加载回原始animals表中。 -
只是为了确认,这是 500 亿行,对吗? @ElliottBrossard - 知道为什么这不是缩放吗?看起来很简单..
-
@GrahamPolley 没错,500 亿行。
标签: google-cloud-platform google-bigquery bigdata sql-optimization