查询执行期间超出资源

时间:2014-09-23 11:17:29

标签: google-bigquery

以下查询正在运行到bigquery上的查询执行期间超出资源错误。处理的数据大约为700 MB,并没有那么多,如bigquery控制台上显示的那样。我们正在使用分组,因为在使用分组时,我们会得到相同的错误以及分别使用的建议。相关的工作ID是

工作ID: fast-chess-620:job_41Fq1q3zFGB3FsACtuAiymTOCIU (每组分组)

工作ID: fast-chess-620:job_VVd2jPGX-nHsdZW5GlEU6bBgpnU (分组)

select col_1,col_2, count(col_3) from
(select col_1, col_2, col_3 from
(select col_1, date(sec_to_timestamp(col_4)) as col_2, count(col_5) as col_3 from 
(TABLE_DATE_RANGE(table_prefix_1_,
date_add(usec_to_timestamp(utc_usec_to_month(now())), -6, "MONTH"), 
date_add(usec_to_timestamp(utc_usec_to_month(now())), -1, "MONTH"))),
(TABLE_DATE_RANGE([table_prefix_2_],
usec_to_timestamp(utc_usec_to_month(now())),
usec_to_timestamp(utc_usec_to_day(now()))))
group each  by 1,2 order by 1,2) x) x
group each by 1,2 order by 1,2

能帮助我们解决问题。

1 个答案:

答案 0 :(得分:3)

看起来问题是ORDER BY。请参阅stackoverflow响应here

查看查询的日志,该组产生的结果超过1500万。为了对它们进行排序,bigquery必须在单个节点中执行排序操作。

你真的需要一个排序结果吗?如果你这样做,你需要所有的结果吗?如果你使用带有LIMIT的ORDER BY,它应该会成功,因为它可以保持最高值。

如果您:

,您应该能够成功运行此查询
  1. 使用GROUP EACH BY(您已有)进行GROUP BY操作。
  2. 删除内部ORDER BY,因为它实际上没有帮助,因为外部查询重新排序。
  3. 它可能只适用于#1和#2,但我还建议删除外部ORDER BY或添加LIMIT约束。