В блоке про профессию дата-инженера мы построили для Отто, операционного директора доставки «Гонец», ночной пайплайн: раз в сутки заказы едут из приложения в хранилище, и утром на дашборде уже вчерашний день. Для отчётов этого хватает, но некоторые вопросы Отто до утра ждать не могут. Этот блок про то, как данные о заказах доезжают от приложения курьера до дашборда за секунды. Начнём с вопроса, который мы уже задавали со стороны батча: как часто возить данные.
Почта и телефон
Есть два способа узнать новости от друга. Можно ждать письма: раз в неделю почтальон приносит конверт, в нём всё, что случилось за неделю. А можно получать сообщения в телефон: друг пишет, и ты сразу видишь.
Письмо удобно. Его читают за один раз, в нём всё собрано и упорядочено. Но если в понедельник у друга сломалась машина, ты узнаешь об этом в воскресенье.
Сообщения приходят по одному и без перерыва. Зато про машину ты узнаешь через минуту.
С данными так же. Письмо это батч, сообщения это поток.
Батч: всё за период одной пачкой
Батч собирает данные за период и обрабатывает их разом. В «Гонце» это выглядело бы так: раз в час задание забирает из базы приложения все заказы за прошедший час, считает опоздания по зонам и кладёт результат в хранилище, откуда его читает дашборд Отто.
12:00 задание стартует
12:00 читает заказы с 11:00 до 12:00
12:03 считает опоздания по зонам
12:04 дашборд обновился
13:00 всё сначала
У батча честные плюсы:
- Просто. Это скрипт по расписанию. Если он упал, его перезапускают, и он обработает тот же час заново.
- Дёшево. Машина работает несколько минут в час, остальное время свободна.
- Удобно считать. Все заказы часа лежат перед тобой, их можно отсортировать, сгруппировать, сравнить.
Главный минус в том, что данные стареют, пока ждут выгрузки. Заказ, созданный в 12:02, попадёт на дашборд только в 13:04, через час с лишним.
урок из курса
Урок из курса «Data Engineering». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.