我正在使用confluent的kafka s3 connect将数据从apache kafka复制到aws s3。对于我们的用例,我们希望将数据从kafka复制到多个s3 bucket。
一个s3桶有这样的分区策略-
s3.bucket.name=kafka-s3-test1
partitioner.class=io.confluent.connect.storage.partitioner.TimeBasedPartitioner
timestamp.extractor=Wallclock
locale=US
timezone=UTC
partition.duration.ms=3600000
path.format='ds'=YYYY-MM-dd/'hour'=HH
另一个s3 bucket有这样的分区策略-
s3.bucket.name=kafka-s3-test2
partitioner.class=com.custom.CustomFieldPartitioner
partition.field.name= eventPlatform, eventType, eventDate
一个明显的方法是为每个接收器保持两个不同的kafka连接簇。我想知道是否有一种方法可以将相同的数据发送到两个不同的接收器(比如这个用例)?如果没有,我如何扩展这个库来实现相同的功能?
任何帮助都将不胜感激。
1条答案
按热度按时间f4t66c6m1#
你只需要一个集群。bucket是一个可配置的属性(s3.bucket.name)
如果您有不同的awss3凭证来访问bucket,那么您将需要单独的java进程(这可能导致单独的集群,但不是必需的)