Раздел 26 · Data Engineering

Где Kafka в карте инструментов данных

junior~15 мин

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

За три урока мы выяснили, что «Гонцу» нужен поток событий (урок 1), что источники и потребители лучше связать через общий лог (урок 2) и что поток окупается там, где бюджет задержки измеряется секундами (урок 3). Перед тем как открыть Kafka, поставим её на карту: рядом с ней живут похожие инструменты, и новички их постоянно путают.

Почтовый ящик, газета, архив и библиотека

Есть четыре способа хранить и передавать бумаги.

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

Подшивка газет. Номера выходят по порядку, каждый новый ложится сверху. Любой может прийти и прочитать подшивку с любого номера. Прочитанный номер никуда не девается, его прочтёт и следующий читатель. Старые номера раз в год выбрасывают.

Картотека. В ней лежит актуальная карточка на каждого клиента. Переехал клиент, карточку переписали. Найти можно любого по фамилии.

Библиотечный архив. Всё, что когда-либо было, разложено по полкам так, чтобы удобно отвечать на вопросы вроде «сколько книг вышло в 1990 году».

Эти четыре образа соответствуют четырём видам инструментов.

Четыре вида инструментов

Очередь сообщений это почтовый ящик. Сообщение ждёт, пока его заберёт один из обработчиков, и после подтверждения исчезает. Самый известный пример RabbitMQ. Очередь хороша для задач вида «сделай это один раз»: отправь письмо, сгенерируй чек.

Лог событий это подшивка газет. События дописываются в конец, каждый читатель помнит, до какого места дочитал, а прочитанное остаётся для следующих. Это Kafka. Похоже устроены потоки Redis, только они живут в памяти одного сервера.

База данных это картотека. В ней лежит текущее состояние: у заказа 9001 статус «доставлен», у курьера 15 рейтинг 4,8. Ищут по любому полю, меняют на месте. Это PostgreSQL, с которым ты знаком по блоку про PostgreSQL.

Хранилище данных это архив. В него сливают историю из разных источников, чтобы Отто мог спросить «как менялось время доставки по зонам за полгода». Подробнее в уроке про DWH.

урок из курса

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

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