Пайплайн «Гонца» запускается каждую ночь в 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 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.