我正在编写一个后台工作来自动处理BigQuery中的A/B测试数据,并且我发现在执行大型GROUP EACH BY语句时,我正在点击"在查询执行期间超出资源".我在查询执行期间从Resources Exceeded中看到,减少组的数量可以使查询成功,因此我将数据拆分成较小的部分,但我仍然遇到错误(尽管不常见).能够更好地直观了解导致此错误的原因会更好.特别是:
有问题的查询看起来像这样(实际上,它用作子查询,外部查询聚合结果):
SELECT
alternative,
snapshot_time,
SUM(column_1),
...
SUM(column_139)
FROM
my_table
CROSS JOIN
[table containing 24 unix timestamps] timestamps
WHERE last_updated_time < timestamps.snapshot_time
GROUP EACH BY alternative, user_id, snapshot_time
Run Code Online (Sandbox Code Playgroud)
(这是一个失败的工作示例:124072386181:job_XF6MksqoItHNX94Z6FaKpuktGh4)
我意识到这个查询可能会遇到麻烦,但在这种情况下,该表只有22MB,并且查询结果在一百万个组之下,并且它仍然因"超出资源"而失败.减少要立即处理的时间戳的数量可以修复错误,但是我担心我最终会达到一个足够大的数据范围,这样整个方法就会停止工作.