我在努力理解 flush.size
以及 rotate.interval.ms
s3连接器深度配置。我部署了s3连接器,文件大小从 6 kb
一直到 30 mb
想知道这里是否有人可以帮助我的建议,如何获得几乎相同的文件大小。
以下是我的设置: flush.size= 200000
, rotate.interval.ms=10min
基于这个git中的一个例子,我们也尝试了滚动我们自己的连接器https://github.com/canelmas/kafka-connect-field-and-time-partitioner 但我们仍然无法得到相同大小的文件。
1条答案
按热度按时间olhwl3o21#
s3接收器连接器根据kafka分区和partitione.class定义的分区路径将数据写入分区路径。
基本上,s3连接器将缓冲区刷新到以下条件。
rotate.schedule.interval.ms:如果此时间已过
rotate.interval.ms:时间已经以timestamp.extractor时间表示
注意:这个有用的清除积压数据让我们假设rotate.interval.ms,我们有6个小时的延迟数据,因此每个时间戳通过10分钟刷新将在几秒钟内得到延迟,相反,如果数据不流动,它将等待接收下一个rotate.interval.ms通过
flush.size:假设数据流很高,如果消息在第1点和第2点之前到达flush.size,那么flush将得到一个触发器。同时,如果数据流大小较低,那么flush将根据第1点和第2点触发
对于基于时间的分区器
partition.duration.ms:定义单个编码分区目录中刷新到s3的最长时间。