google-bigquery - BigQuery 中分析函数的可扩展性问题是否有解决方案?
问题描述
BigQuery 中的分析函数可扩展性
我们的团队在过渡到 BigQuery 时遇到的一个相当大的挫折是分析功能的可扩展性问题。我在这里阅读了许多回复,他们要么说它不能完成,因为排序必须在单个插槽 [ 1 ][ 2 ][ 3 ]、到PARTITION
[ 1 ][ 2 ][ 3 ] 或LIMIT
[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ]。
对我们来说,问题是我们需要能够在没有分区和没有限制的情况下做到这一点。我们非常希望不必导出我们的数据,在不同的程序中执行分析功能,然后每次将数据上传回 BigQuery。
问题:
- 是否有改进 BigQuery 中分析功能可扩展性的路线图?
- 是否可以分配更多内存以便在单个节点上容纳更多数据?
示例:
表大小:3.76 GB
两列:UNIQUE_ID
& SALES
1.4 亿行
SELECT
UNIQUE_ID
, SALES
, NTILE(10) OVER (ORDER BY SALES ASC) AS SALES_DECILE
FROM `project.dataset.table`
错误:
Resources exceeded during query execution: The query could not be executed in the allotted memory. OVER() operator used too much memory.
就我的目的而言,每个十分位数中没有恰好 10% 的记录是可以APPROX_QUANTILES()
的,诀窍也是如此,但我不确定其他团队是否可以。当涉及需要精确数量的其他分析功能时,问题仍然存在。例如,我需要ROW_NUMBER() OVER()
一个 1.4 亿行表中的每条记录都具有一个不是数字的唯一 ID 属性,所以我根本做不到PARTITION
。否则,我完全会做这个建议。
解决方案
推荐阅读
- r - 图表中标签的数字格式
- reactjs - 如何从firebase中的引用文档中获取数据?
- python - 如何不解压附加到 .msg 的 .msg
- wordpress - SSL 续订后 CloudFront 分配不工作
- python - 通过选择全部来编辑 Google Colab 中的所有多次出现并将其作为单个操作进行编辑?有什么捷径吗?
- php - 特定服务php的清漆
- flutter - 我如何解决由颤振phone_state包引起的错误
- reactjs - 尽管添加了唯一键,但反应还是会发出警告
- android - 将 android gradle 插件从 2.2.2 迁移到 4.1.3 并构建问题
- c# - 使用工厂方法后使用大括号填充属性