首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询不使用目标表,但在目标表“超出资源”时失败。

查询不使用目标表,但在目标表“超出资源”时失败。
EN

Stack Overflow用户
提问于 2020-03-27 08:33:38
回答 1查看 72关注 0票数 0

我有一个查询,它生成大约2000万行,需要通过时间戳DESC进行排序。当我使用“在临时表中保存查询结果”设置时,查询工作正常,但当设置目标表时,查询就会失败,“查询执行过程中超出了资源:无法在分配的内存中执行查询。峰值使用率:限制的126%。顶级内存使用者:按操作顺序: 97%其他/未属性: 3%”。我不想设置限制,因为我需要所有的输出行来继续我的分析。临时表和目标表之间有什么区别。为什么一个人工作而另一个人不工作。最后,我怎样才能解决这个问题?我能想到的唯一方法是减少行数,因此基本上将其分解为多个“相同”的查询,这些查询获取最终结果的分区,但这将使我的成本增加大约5-10倍。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 20:20:20

将评论总结为答复:

  • 您真的不想对2000万行进行排序,然后将它们作为一个表放到BigQuery上。这样做没有多大好处。
  • 真正想要的是按每种激活类型对行进行排序。解决这一问题的一种解决方案是使用OVER(PARTITION BY).
  • As,并使用ARRAY_AGG() --一种将为整个表保持数据排序的替代方法:使用CLUSTERING BY。然后,所有查询都将只查询数据的这一部分.

请参见:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60882407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档