从6月2日开始,我们就遇到了解析函数的问题。当查询(而不是分区)传递一定大小时,查询失败,出现以下错误:
查询执行期间超出的资源:无法在分配的内存中执行查询。峰值使用: 125%的限制。顶级内存使用者:分析OVER()子句: 97%其他/未归因: 3%。在..。
有没有人遇到过同样的问题?
发布于 2020-06-15 07:35:04
BigQuery根据正在运行的表的大小为OVER()
子句选择几个并行工作人员。当BigQuery分配给您的查询的工作人员正在处理太多数据时,我们可以看到资源超过了错误。
我假设这个问题可能来自OVER()
子句和使用的数据量。您需要尝试对查询脚本(特别是OVER()
子句)进行调优,就像错误消息中所说的那样。
要阅读有关错误的更多信息,请查看正式文件。
这将有助于插槽 --执行SQL查询所需的计算容量单位:
当您注册一个统一费率的定价计划时,您将购买一批专用的插槽用于查询处理。您可以按位置指定附加到该记帐帐户的所有项目的时隙分配。如果您对统一价格感兴趣,请与您的销售代表联系.
我希望你能找到这些有用的信息。
发布于 2022-10-24 15:08:36
我们能够克服这个限制,将原始数据分割成几个碎片,并对每个碎片应用分析功能。
实质上(适用于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
https://stackoverflow.com/questions/62339709
复制相似问题