【发布时间】:2015-06-10 17:28:24
【问题描述】:
我正在使用 Google BigQuery 从 Google Analytics Premium 查询数据。目前,我有一个查询用于计算一些指标(如总访问量或转化率)。此查询包含几个嵌套的 JOIN 子句和嵌套的 SELECT。只查询一张表时出现错误:
Error: Resources exceeded during query execution.
使用 GROUP EACH BY 和 JOIN EACH 似乎不能解决这个问题。
未来将采用的一种解决方案涉及仅提取此查询所需的相关数据并将其导出到单独的表中(然后将对其进行查询)。这个策略原则上是有效的,我已经有了一个工作原型。
但是,我想探索适用于原始表的此查询的其他优化策略。
在此演示文稿中You might be paying too much for BigQuery 中提出了一些建议,即:
- 缩小扫描范围(已经在做)
- 使用查询缓存(不适用)
《Google BigQuery Analytics》一书也提到了调整查询功能,即:
- GROUP BY 子句生成大量不同的组(已经 这样做了)
- 需要与输入值数量成比例的内存的聚合函数(可能不适用)
- 加入操作生成的输出数量多于输入(似乎不适用)
另一种选择只是将此查询拆分为其组成的子查询,但目前我无法选择此策略。
我还能做些什么来优化这个查询?
【问题讨论】:
-
如果您为失败的查询提供作业 ID,Google 工程师可以查找问题所在,并可能提供解决该问题的策略。
-
谢谢,那太好了!作业 ID 为:job_Igf4PUrzzeUAKgD2nPlSEKb2KbU
标签: google-analytics google-bigquery