如何使用Kafka supervisor读取Kafka指定分区数据写入Druid
Druid Kafka Supervisor指定分区消费说明
是否支持仅读取指定分区?
Apache Druid的Kafka Supervisor原生支持仅消费指定Kafka分区,不需要读取整个topic的全量数据,该特性在0.16.0及以上版本可用。
配置方法
你只需要在摄入spec的ioConfig节点下添加partitionAssignments配置项即可,该配置项用于显式声明需要消费的分区ID和对应起始消费位置。
配置规则
partitionAssignments为对象类型,key为目标Kafka topic名称,value为分区配置数组- 每个分区配置包含两个必填参数:
partition:整数类型,对应你需要消费的Kafka分区IDoffset:消费起始位置,可填earliest(从分区最早有效消息开始消费)、latest(从分区最新写入的消息开始消费),也可直接指定具体的整数offset值
配置示例
{ "type": "kafka", "spec": { "ioConfig": { "topic": "your_topic_name", "consumerProperties": { "bootstrap.servers": "your_kafka_address:9092", "group.id": "druid_consume_group" }, "partitionAssignments": { "your_topic_name": [ { "partition": 1, "offset": "latest" }, { "partition": 3, "offset": "earliest" }, { "partition": 5, "offset": 10086 } ] }, "taskCount": 3, "replicas": 1 }, // 其余tuningConfig、dataSchema等配置保持不变 } }
上面的示例配置指定了仅消费该topic的1、3、5三个分区,你可以根据自身业务需求调整分区ID和对应起始offset即可。
注意事项
- 配置
partitionAssignments后,Druid会关闭自动分区发现功能,后续该Kafka topic新增的分区不会被自动纳入消费范围,如需消费新分区需要手动更新spec添加对应配置 - 修改
partitionAssignments配置后,正在运行的supervisor任务会自动重启以应用新的分区规则
内容的提问来源于stack exchange,提问作者Shane
相关产品推荐
相关产品推荐

