This question说明当您尝试使用BigQuery中的STRING_AGG聚合太多内容时会发生什么。
有没有办法可以做“尝试STRING_AGG,但如果数据太多,则返回null(或其他东西)”?所以我可以在没有查询失败的情况下从错误中退出。
答案 0 :(得分:2)
在What is the max limit of group_concat/string_agg in bigquery output?中,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));