首页 文章

查询无法在分配的内存中执行[关闭]

提问于
浏览
0

我有一个简单的查询运行:

update`dataset.mytable`
set field_1 = cast( field_2 as int64) 
where field_2 not in ('AA', 'BB')

我收到了错误:

错误:查询执行期间超出资源:无法在分配的内存中执行查询 .

该表只有10亿行......

1 回答

  • 2

    这真的是一个错误,类似于this report . 在这种情况下,您无法知道,但如果您确实在将来发现了一个错误,那么您可以submit it to the issue tracker,因为更广泛的StackOverflow社区可能无法提供帮助 .

    作为发生的事情的总结:

    • 看起来加载到表中的文件非常大,例如每个大小为千兆字节 . 加载较小的文件不会触发BigQuery错误 .

    • 当将这些文件的内容持久化到BigQuery存储时,BigQuery没有对表进行充分的分析(这是BigQuery方面的错误) .

    • 执行 UPDATE 语句时,BigQuery尝试仅在少量分区上执行大量工作,从而产生 Resources exceeded 消息 .

    • 我能够通过手动指示BigQuery存储重新解析您的表来解决问题 . 除非有错误,否则这是不必要的 .

相关问题