Cloudflare R2 SQL 宣布新增支持聚合查询,包括 GROUP BY 和 SUM,显著增强了其数据分析能力。文章首先强调了聚合在分析中的重要性,通过 SQL 示例演示了使用 GROUP BY、ORDER BY 和 HAVING 子句进行数据汇总、排序和过滤。接着深入探讨了 R2 SQL 实现聚合的两种主要方法:scatter-gather 和 shuffling。scatter-gather 适用于不需要对聚合结果进行排序或过滤的简单聚合,其中分布式工作节点并行计算预聚合(pre-aggregates),由协调器(coordinator)进行合并。shuffling 聚合引入了一个数据混洗阶段,使用确定性哈希分区(deterministic hash partitioning)将相同分组键的数据路由到单个工作节点进行本地聚合。这种设计解决了高基数列聚合(high-cardinality column aggregations)中遇到的协调器瓶颈问题,并采用同步屏障(synchronization barrier)确保数据完整性。最后,通过协调器的 k 路径归并(k-way merge)有效合并本地最终结果。这些分布式执行策略使 R2 SQL 能够高效处理 R2 Data Catalog 中的海量数据集,无需复杂的 OLAP 基础设施。



