#apache-kafka #apache-kafka-connect #s3-kafka-connector
Вопрос:
{
"name":"{{name}}",
"tasks.max": "6", //have 6 partitions for this topic
"topics": "{{topic}}",
"connector.class": "io.confluent.connect.s3.S3SinkConnector",
"key.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schemas.enable": "true",
"key.converter.schema.registry.url": "xx",
"key.converter.key.subject.name.strategy": "io.confluent.kafka.serializers.subject.TopicRecordNameStrategy",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter.schemas.enable": "true",
"value.converter.schema.registry.url": "xx",
"value.converter.value.subject.name.strategy": "io.confluent.kafka.serializers.subject.TopicRecordNameStrategy",
"errors.retry.timeout":"600000",
"errors.log.enable":"true",
"errors.log.include.messages":"true",
"schema.compatibility": "BACKWARD",
"format.class": "io.confluent.connect.s3.format.avro.AvroFormat",
"flush.size": "100000",
"rotate.schedule.interval.ms": "3600000",
"rotate.interval.ms": "3600000",
"enhanced.avro.schema.support": "true",
"connect.meta.data": "false",
"partitioner.class": "{{partitioner}}somepartitioner",
"partition.duration.ms": "3600000",
"path.format": "'avro/event=?eventClass?/tenant=?tenant?/date'=YYYY-MM-dd/'hour'=HH",
"locale": "en",
"timezone": "UTC",
"timestamp.extractor": "RecordField",
"timestamp.field": "{{timestampField}}",
"storage.class": "io.confluent.connect.s3.storage.S3Storage",
"s3.bucket.name": "somebucket",
"s3.region": "region",
"s3.part.size": "5242880",
"offset.flush.interval.ms": "1200000"
}
Количество страниц в этой теме составляет около 739 180, а размер-1,1 Гб
Я не совсем уверен, полностью ли верна моя конфигурация или нет, могу ли я как-то ее улучшить. Я хочу промыть в двух случаях, ежечасно или если размер достигает 5 ГБ.
Комментарии:
1. Итак, во-первых, вы не должны использовать оба
rotate.*.ms
свойства. Кроме того, нет возможности записывать файлы в зависимости от размера файла, только количество сообщений. Итак, если вы знаете средний размер каждой записи, вы можете приблизить необходимый размер flush.size…. Кроме того, если вы получаете разные схемы Avro в рамках темы, файл всегда записывается, когда это происходит2. какой из них мне следует использовать? И как я могу получить средний размер записи. вышеупомянутое количество/общий размер. 739 180/1,1 Гб(преобразовано в кб). я вижу два файла в ежечасном пути s3. каждый с размером в несколько килобайт.
3. Для ротации обратитесь к — github.com/confluentinc/kafka-connect-storage-cloud/issues/… и, как я уже сказал, если вы получите разные записи avro в этой теме, то вам следует ожидать много крошечных файлов, и вам нужно будет исправить, чтобы все ваши производители были на одной и той же версии. В противном случае у меня нет других предложений по созданию файлов большего размера; ваши единственные варианты основаны на времени (с очень большим количеством записей) или на количестве записей (с большим временем вращения), или на некоторой комбинации того и другого
4. спасибо, я думаю, что получил большую часть этого. Мне пришлось бы наблюдать за продюсером, чтобы в дальнейшем вносить какие-либо изменения