Раздел 26 · Data Engineering

Batch против streaming

junior~15 мин

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

Пайплайн «Гонца» запускается каждую ночь в 06:00 и везёт в хранилище заказы за вчера. Отто доволен отчётом, но однажды спрашивает: «А можно, чтобы как в такси, в реальном времени? Я хочу видеть заказы сразу». В прошлом уроке мы видели, что координаты курьеров приходят потоком. Так, может, и заказы возить потоком, а ночной пайплайн выкинуть? Прежде чем соглашаться, посчитаем, что Отто получит и сколько это будет стоить.

Автобус и такси

До аэропорта можно доехать на автобусе. Он уходит по расписанию, раз в час, и везёт всех, кто успел. Билет дешёвый, водитель один на сорок пассажиров, и если автобус сломался, следующий рейс заберёт всех заново.

А можно вызвать такси. Оно приедет через пять минут и повезёт только тебя. Это быстро, но дорого: таксист ждёт заказа весь день, и кто-то должен держать машины наготове круглые сутки.

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

Данные возят так же. Батч это автобус. Поток это такси. А маршрутка это микробатч, батч с коротким периодом.

Сколько ждут данные

Главная величина при выборе это свежесть: сколько проходит от заказа до момента, когда Отто его увидит. Посчитаем её на настоящих заказах 1 июня. Ночная выгрузка в 06:00 следующего дня, почасовая и раз в 15 минут; сама выгрузка идёт около 4 минут.

Сколько заказ ждёт, пока его увидит Отто

База · courier

Загружаю редактор…

База загрузится, когда ты выполнишь запрос или откроешь таблицы.

Выполни запрос, чтобы увидеть результат.

Выполни весь запрос кнопкой или Ctrl/Cmd+Enter. Ctrl+Space открывает подсказки. Можно писать несколько команд через точку с запятой, менять данные и открывать транзакции. У каждой песочницы своя база, изменения живут до ухода со страницы. «Сбросить базу» возвращает учебные данные, но не меняет SQL.

При ночной выгрузке заказ в среднем ждёт 800 минут, больше 13 часов, а утренний заказ почти 21 час. Почасовая выгрузка сокращает ожидание до 34 минут в среднем и часа в худшем случае. Раз в 15 минут уже 12 и 19 минут. Попробуй сам поменять период: '5 minutes' и interval '9 minutes'.

Обрати внимание, что поток в таблице не нужен: при нём заказ виден через пару секунд. Вопрос в другом: нужны ли Отто эти секунды.

урок из курса

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

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