资源超过 BigQuery

Aar*_*on_ 6 google-bigquery

运行以下查询时出现错误:

查询执行期间资源超出:无法在分配的内存中执行查询。峰值使用量:限制的 158%。最大内存消费者:用于分析 OVER() 子句的排序操作:98% 其他/未归因:2%

select *, row_number() over(PARTITION BY Column_A ORDER BY Column_B)
from
(SELECT
*
FROM
  Table_1 UNION ALL
SELECT
  *
FROM
  Table_2 UNION ALL
SELECT
  *
FROM
  Table_3
)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我如何更改此查询,或者我们是否有可能更改 bigquery 中的内存限制?

Ben*_*n P 8

欢迎亚伦,

此错误意味着 BigQuery 由于内存限制而无法处理整个查询,该ORDER BY函数占用大量内存,尝试删除它,我希望您的查询运行良好。

如果您需要对结果进行排序,请尝试将无序查询写入表,然后在该表上运行新查询以对结果进行排序。

如果你有兴趣。这是一篇关于 BigQuery 如何在内存中执行的有趣文章:https : //cloud.google.com/blog/products/gcp/in-memory-query-execution-in-google-bigquery

我不相信您可以覆盖或更改此内存限制,但很高兴被证明是错误的。