Apache Druid Post-Aggregations性能与rollup下指标定义权衡分析
Apache Druid Rollup场景下 后置聚合对比预定义指标的性能权衡
- 查询时延差异
预定义指标是摄入阶段就完成计算落盘的,查询时直接读取结果即可,时延稳定不受计算逻辑复杂度影响。后置聚合(Post-Aggregations)是查询阶段对基础聚合结果做二次运算,查询涉及的segment越多、计算逻辑越复杂,时延上涨越明显,高并发场景下更容易触发性能瓶颈。 - 存储成本取舍
预定义的每一个指标都会占用独立的磁盘存储空间,衍生指标数量越多,存储开销就越高,还会拉低rollup的整体数据压缩比。后置聚合不需要额外存储衍生指标,存储成本更低,适配指标数量多、迭代频率高的场景。 - 摄入性能影响
预定义指标需要在摄入(实时流式摄入/批量离线导入)阶段完成全量计算,会提升摄入环节的CPU、内存开销,复杂的预定义计算逻辑甚至会拖慢摄入速度、抬高实时数据延迟。后置聚合完全不占用摄入环节的资源,适合对数据新鲜度要求高、摄入吞吐量需求大的场景。 - 查询资源消耗差异
预定义指标的查询仅消耗数据扫描的IO和少量CPU资源,同等查询量下集群资源占用更低,可支撑的并发查询量更高。后置聚合会大量消耗Broker、Historical节点的CPU资源,尤其是涉及多指标嵌套运算、基数统计类的复杂后置逻辑时,很容易占满集群CPU,影响其他正常查询的运行。 - 灵活性与长期成本的平衡
预定义指标仅支持提前规划好的计算逻辑,后续新增衍生指标需要重跑全量历史数据回溯,运维成本非常高。后置聚合可随时调整计算逻辑,无需回溯历史数据,灵活性极强,更适配探索性分析、指标需求变化快的业务场景。
内容的提问来源于stack exchange,提问作者Manikanta Dornala
相关产品推荐
相关产品推荐

