BigQuery 中的分析功能问题



自 6 月 2 日以来,我们在分析函数方面遇到了问题。 当查询(而不是分区(传递特定大小时,查询将失败并显示以下错误:

查询执行期间超出的资源:无法查询 在分配的内存中执行。峰值使用:限制的 125%。顶部内存 消费者: 分析 OVER(( 条款: 97% 其他/未归因: 3% .在 [....]

有没有人遇到过同样的问题?

BigQuery 根据正在运行的表的大小为OVER()子句选择多个并行工作线程。当 BigQuery 分配给查询的工作线程处理过多数据时,我们可以看到资源超出错误。

我认为这个问题可能来自OVER()条款和使用的数据量。您需要尝试对查询脚本(特别是OVER()子句(进行一些调整,如错误消息中所述。

要了解有关该错误的更多信息,请查看官方文档。

这就是帮助的是插槽 - 执行SQL查询所需的计算能力单位:

当您注册统一费率定价计划时,您将购买专用的 用于查询处理的槽数。您可以指定 按地点为附属于该项目的所有项目分配名额 计费帐户。如果您是 对统一费率定价感兴趣。

我希望您发现上述信息有用。

通过将原始数据拆分为多个分片并在每个分片上应用分析函数,我们能够克服这一限制。

本质上(对于 8 个分片(:

WITH
t AS (
SELECT
RAND () AS __aux,
*
FROM <original table>
)
SELECT
* EXCEPT (__aux),
F () OVER (...) AS ...
FROM t
MOD (CAST (__aux*POW(10,9) AS INT64), 8) = 0
UNION ALL
....
SELECT
* EXCEPT (__aux),
F () OVER (...) AS ...
FROM t
MOD (CAST (__aux*POW(10,9) AS INT64), 8) = 7       

相关内容

  • 没有找到相关文章

最新更新