查询错误:查询执行期间资源超出:无法在分配的内存中执行查询
Posted
技术标签:
【中文标题】查询错误:查询执行期间资源超出:无法在分配的内存中执行查询【英文标题】:Query error: Resources exceeded during query execution: The query could not be executed in the allotted memory 【发布时间】:2017-12-04 19:24:27 【问题描述】:我在尝试执行以下查询时遇到错误:
select r.*
from dataset.table1 r
where id NOT IN (select id from staging_data.table1);
它基本上是一个在表上加载增量数据的查询。 dataset.table1 有 360k 行,staging_data 上的增量有 40k。但是当我尝试在我的脚本上运行它以加载到另一个表上时,我收到了错误:
Resources exceeded during query execution: The query could not be executed in the allotted memory
这在上周开始发生,在此之前它运行良好。
我在互联网上寻找解决方案,但所有解决方案都不适用于我的情况。
有人知道怎么解决吗?
我更改了 cronjob 时间并且它起作用了。谢谢!
【问题讨论】:
我很惊讶您会收到这种查询形式的错误。您有示例工作 ID 吗?您是使用标准 SQL 还是使用旧版 SQL? 嗨,Elliot,很抱歉回复晚了,但是当我更改 cronjob 时间时,它开始工作,连续两天没有问题。我正在使用标准sql,顺便说一句。谢谢! 【参考方案1】:您可以尝试将结果写入另一个表,因为 Big Query 对可以处理的最大响应大小有限制。如果您使用的是旧版 SQL 或标准 SQL,则可以这样做,您可以按照in the documentation 的步骤进行操作。
【讨论】:
嗨@Yandrak3,当我更改cronjob 小时时,问题似乎已解决。谢谢! 我知道这有点老了,但是OVER (PARTITION BY ...
有同样的效果吗?以上是关于查询错误:查询执行期间资源超出:无法在分配的内存中执行查询的主要内容,如果未能解决你的问题,请参考以下文章