在BigQuery上使用STRING_AGG时,能够发现内存不足错误吗?
问题描述:
This question解释当您尝试使用BigQuery中的STRING_AGG聚合太多内容时发生的情况。在BigQuery上使用STRING_AGG时,能够发现内存不足错误吗?
有没有办法让我可以做一些像“尝试STRING_AGG,但如果数据太多,返回null(或其他)”?所以我可以从错误中回退而不会失败。
答
在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));