Kafka S3 connect: вращение по времени на основе настенных часов, кажется, не пишет - PullRequest
2 голосов
/ 29 апреля 2019

Мы используем Confluent's Kafka S3 Connector , версия 5.2.1.Работая с одним узлом в настройке Distributed Worker.

За документацию мы сможем установить сброс в S3 как для размера, так и для временного интервала.

Мы используем следующие настройки сброса

{ 
  "rotate.interval.ms": 300000, // 5 minutes
  "flush.size": 1000,
  "timestamp.extractor": "Wallclock" // default
  ... (other settings)
}

, но я не вижу никаких данных, записываемых в теме, которая содержит менее 1000 сообщений, но в которой есть данные.

Однако, когдаЯ изменяю настройку на меньший размер сброса и удаляю интервал вращения:

{ 
  "flush.size": 5, // some small amount
  "timestamp.extractor": "Wallclock", // default
  ... (other settings)
}

При всех остальных настройках я могу сразу увидеть данные в корзине s3.

Я не являюсьизменяя любые другие параметры, я уверен, что есть возможность подключения к s3, и я вижу, что рабочие задачи развертываются.

Я что-то упустил?

1 Ответ

2 голосов
/ 02 мая 2019

Если вы хотите каждые 5 минут, вы должны предпочесть rotate.schedule.interval.ms, что заставляет Connect выводить файлы в этом интервале.

Эта конфигурация гарантирует, что фиксации файла будут вызываться каждый настроенный интервал. ... Фиксация будет выполнена в запланированное время, независимо от времени предыдущего коммита или количества сообщений

rotate.interval.ms будет проверять метки времени записи по первой использованной записи в пакете.

временной интервал определяется с помощью экстрактора метки времени

Если у вас меньше записей, чем размер сброса, то полная партия будет просто ждать в памяти, пока не появятся новые записи с разницей во времени, превышающей первую увиденную запись.

flush.size всегда имеет приоритет над всеми другими настройками времени, когда при записи файлов в последний раз я просматривал исходный код.

...