Google bigquery 指向OOM的数组_AGG
我正在尝试运行一个非常简单的查询,但它失败了,出现了一个Google bigquery 指向OOM的数组_AGG,google-bigquery,Google Bigquery,我正在尝试运行一个非常简单的查询,但它失败了,出现了一个超出资源的错误。 我读到,用于分配混频器数量的启发式方法可能会不时失败 SELECT response.auctionId, response.scenarioId, ARRAY_AGG(response) AS responses FROM rtb_response_logs.2016080515 GROUP BY response.auctionId, response.scenarioId 在知道以下情况的情
超出资源的错误。
我读到,用于分配混频器数量的启发式方法可能会不时失败
SELECT
response.auctionId,
response.scenarioId,
ARRAY_AGG(response) AS responses
FROM
rtb_response_logs.2016080515
GROUP BY
response.auctionId,
response.scenarioId
在知道以下情况的情况下,是否有办法修复我的查询:
响应
由38个字段组成(其中大多数是短字符串)
- 单个
响应的max(count())
有点低(165)
查询失败
错误:查询执行期间超出了资源。
作业ID:teads-1307:bquijob_257ce97b_1566; A6A3F27当前的限制是,阵列(通过阵列_AGG
或其他方式生成)必须适合单个机器的内存。然而,我们最近做了一些改进,这些改进应该有助于减少此类查询所需的资源。要确认这是否是问题,您可以尝试以下查询:
SELECT
SUM(LENGTH(FORMAT("%t", response))) AS total_response_size
FROM
rtb_response_logs.2016080515
GROUP BY
response.auctionId,
response.scenarioId
ORDER BY total_response_size DESC LIMIT 1;
这将结构格式化为字符串,作为表示它们需要多少内存的粗略启发。如果结果非常大,那么也许我们可以重新构造查询以使用更少的内存。如果结果不是很大,那么其他一些问题正在起作用,我们将研究如何修复它:)谢谢