我们的团队在过渡到BigQuery时遇到了很大的挫折,这是分析功能上的可伸缩性问题。我在这里阅读了许多回复,他们都说无法完成,因为排序必须在单个插槽[1] [2] [3]至{ {1}} [1] [2] [3],或PARTITION
[1] [2] [{{ 3}}] [[3] [4]。
我们面临的问题是,我们需要能够做到这一点,而不必进行分区和限制。我们非常希望不必导出数据,在其他程序中执行分析功能,然后每次都将数据上传回BigQuery。
问题:
示例:
表格大小:3.76 GB
两列:LIMIT
和UNIQUE_ID
1.4亿行
SALES
错误:
SELECT UNIQUE_ID , SALES , NTILE(10) OVER (ORDER BY SALES ASC) AS SALES_DECILE FROM `project.dataset.table`
出于我的目的,在每个十分位数中没有正好10%的记录是可以的,所以Resources exceeded during query execution: The query could not be executed in the allotted memory. OVER() operator used too much memory.
可以解决问题,但我不确定其他团队是否也可以。对于需要精确数量的其他分析功能,问题仍然存在。例如,我需要{1.4.1}行表中的每条记录APPROX_QUANTILES()
,并且具有一个唯一的非数字ID属性,因此我根本无法ROW_NUMBER() OVER()
。否则,我会完全5来做。