【发布时间】:2019-12-05 22:12:56
【问题描述】:
我有一个包含 220 亿行的表,我被要求对某些指标进行 30 天的尾随求和,按天分区,然后按产品分区。我在网上找到的答案建议使用自联接来确定这个尾随总和,但是在一个如此大的表上,我什至从基于成本的角度来测试它都非常犹豫。
有没有一种方法可以在不进行极其昂贵的自联接的情况下计算尾随总和?
【问题讨论】:
-
第一次运行后,您很可能会通过添加新部件并移除太旧的部件来获得更快的方法......(将结果移动一天,而不是 220 亿)跨度>
-
对不起,我应该更清楚。我被要求汇总一个指标,将每一天除以每个产品组,当天的每个总数都是过去 30 天的尾随总和;
-
如果近似结果很好,使用 HyperLogLog 会以极快的速度做到这一点stackoverflow.com/a/54816697/132438
-
好的,我想出了一个解决方案。在 bigquery 分析中使用 Over 函数来减少它正在执行自连接的范围,然后将尾随结果存储在管道中自己的表中。然后使用特定于请求的分区来处理它以获得我需要的东西。
标签: sql google-bigquery