Раздел 26 · Data Engineering

Kafka Connect: интеграция без кода

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

В прошлом уроке мы договорились о формате сообщений. Теперь Отто просит две вещи: заказы из базы приложения должны попадать в Kafka, а из Kafka в хранилище, откуда он строит отчёты. Можно написать продюсер, который читает базу, и консьюмер, который пишет в хранилище. А потом ещё пару для платежей, ещё пару для курьеров. Это снова ад точечных интеграций, только теперь с кодом. Сегодня разберём, как обойтись без него.

Переходник вместо паяльника

Ты привёз из поездки зарядку с чужой вилкой. Можно разобрать её и перепаять вилку. А можно купить переходник: воткнул и работает. Переходник не знает, что ты заряжаешь, он знает только форму розетки с одной стороны и вилки с другой.

Для Kafka такие переходники уже сделаны для сотен систем: PostgreSQL, MySQL, S3, ClickHouse, Elasticsearch. Их не программируют, а настраивают.

Что такое Kafka Connect

Kafka Connect это сервис, который входит в Apache Kafka и переносит данные между Kafka и другими системами. Сам перенос делают коннекторы. Их два вида:

  • Источник (source connector) читает внешнюю систему и пишет в топик. Например, забирает новые заказы из базы.
  • Приёмник (sink connector) читает топик и пишет во внешнюю систему. Например, складывает заказы в хранилище.

Коннекторы работают внутри процесса Connect, его называют воркером. Воркер может работать один, это режим standalone для экспериментов. Или вместе с другими, это режим distributed: воркеры делят работу, а если один упал, его коннекторы переезжают на остальные.

Работу коннектора делят на задачи, их число задаёт tasks.max. А как превращать данные в байты топика, решает конвертер: строкой, JSON или Avro со Schema Registry из прошлого урока.

урок из курса

Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.