Apache Druid Segment粒度变更后的生效范围及旧段处理咨询
Apache Druid Segment粒度变更后的生效规则
变更Segment粒度配置后,仅对新增数据生效,已存在的旧Segment会保持原有的粒度,不会自动重新生成。
核心原因
Druid的Segment是不可变(immutable)的,一旦生成就不会被修改或重新加工。Segment的粒度是在数据摄入阶段(批量/实时摄入均可)就确定的核心元数据,后续修改摄入配置不会回溯处理已经完成摄入的历史数据。
场景示例:从日粒度切换到周粒度
- 切换配置前已摄入的所有数据,依然以日粒度Segment存储,查询时按原粒度参与计算
- 切换配置后新摄入的数据,会严格按照周粒度生成新Segment
- 若要让历史数据也统一为周粒度,只能手动重新摄入旧数据(比如重新运行批量摄入任务,指定新的周粒度参数)
额外注意事项
- 实时摄入任务修改粒度配置后,需要重启任务才能让新配置生效
- Druid查询引擎会自动兼容不同粒度的Segment,无需额外配置即可正常查询,但统一Segment粒度能获得更优的查询性能
内容的提问来源于stack exchange,提问作者user1258683
相关产品推荐
相关产品推荐

