调整Kafka的S3文件大小

时间:2019-11-08 20:31:19

标签: amazon-s3 apache-kafka apache-kafka-connect confluent

我试图深入了解S3连接器的flush.sizerotate.interval.ms配置。我部署了S3连接器,文件大小似乎从6 kb一直到30 mb,不知道这里有人可以帮助我提供有关如何获得几乎相等的文件大小的建议。

这是我的设置:flush.size= 200000rotate.interval.ms=10min

我们也基于git https://github.com/canelmas/kafka-connect-field-and-time-partitioner中的示例尝试滚动自己的连接器,但仍然无法获得相同大小的文件。

1 个答案:

答案 0 :(得分:2)

S3 Sink连接器将数据写入每个Kafka分区的分区路径以及partitione.class定义的分区路径。

基本上S3连接器会将缓冲区刷新到以下条件。

  1. rotate.schedule.interval.ms :如果已经过去
  2. rotate.interval.ms :ime在timestamp.extractor时间方面已经过去
  

注意:此有用的清晰的后退数据让我们假设rotate.interval.ms   然后我们有6个小时的延迟数据,因此每个时间戳超过10   相反,如果没有数据,分钟刷新将延迟几秒钟   流动它将等待接收下一个通过的rotate.interval.ms

  1. flush.size :假设数据流量很高,并且如果消息在点1和点2之前到达了flush.size,则将触发刷新。同时,如果数据量不足,则刷新将基于点1和2获得trigget

如果使用基于时间的分区程序

  1. partition.duration.ms :定义单个编码分区目录中刷新到s3的最长时间。