在 BigQuery 上使用 STRING_AGG 时,我可以捕获内存不足错误吗?
Can I catch out of memory errors when using STRING_AGG on BigQuery?
解释了当您尝试在 BigQuery 中使用 STRING_AGG 聚合太多内容时会发生什么。
有什么方法可以做类似 "Try STRING_AGG, but if it's too much data, return null (or something) instead" 的事情吗?所以我可以在查询失败的情况下从错误中回退。
在 中,Elliott 解释了为什么 STRING_AGG 可能会产生内存不足错误。
为防止此错误,您可以使用 LIMIT 在一定数量的字符串后停止聚合:
#standardSQL
SELECT STRING_AGG(CONCAT(word, corpus) LIMIT 10) AS words
FROM `bigquery-public-data.samples.shakespeare`
CROSS JOIN UNNEST(GENERATE_ARRAY(1, 1000));
有什么方法可以做类似 "Try STRING_AGG, but if it's too much data, return null (or something) instead" 的事情吗?所以我可以在查询失败的情况下从错误中回退。
在
为防止此错误,您可以使用 LIMIT 在一定数量的字符串后停止聚合:
#standardSQL
SELECT STRING_AGG(CONCAT(word, corpus) LIMIT 10) AS words
FROM `bigquery-public-data.samples.shakespeare`
CROSS JOIN UNNEST(GENERATE_ARRAY(1, 1000));