Reindex from druid任务执行成功无数据,如何配置支持新数据重索引
根因说明
你遇到的问题是默认情况下Reindex from Druid任务仅会读取已经完成段移交(Handoff)、被Coordinator正式发布的段。你每15分钟执行任务时,1分钟粒度的实时段还未完成全量移交流程,处于实时节点的未发布状态,因此任务读不到任何数据,空跑后返回成功。等待1小时后所有段都完成发布,任务就能正常读取写入。
解决配置
你需要在Reindex任务的摄入规范(Ingestion Spec)中添加以下配置:
1. 核心配置
在ioConfig下添加includeUnpublishedSegments参数并设为true,允许任务读取未发布的实时段:
{ "spec": { "ioConfig": { "type": "druid", "includeUnpublishedSegments": true, // 其余原有ioConfig配置(如数据源名、查询时间窗口等)保持不变 } } }
说明:该参数默认值为false,仅读取正式发布的段。开启后任务会同时拉取实时节点上还未完成移交的临时段,覆盖刚写入的新数据。
2. 可选优化配置
如果存在段元数据同步延迟的情况,可以在tuningConfig中添加segmentAvailabilityDeadlineMs参数,延长段可用等待时长:
{ "spec": { "tuningConfig": { "type": "index_parallel", "segmentAvailabilityDeadlineMs": 300000, // 其余原有tuningConfig配置保持不变 } } }
说明:该参数单位为毫秒,上述示例配置为等待5分钟,避免因为元数据同步不及时导致任务读取不到段。
内容的提问来源于stack exchange,提问作者MTawk
相关产品推荐
相关产品推荐

