Найти в Дзене

Как Самокат за 15 минут доставляет продукты и при чём тут данные

Самокат обещает доставить продукты за 15 минут. Чтобы это работало в 15 тысячах сотрудников и сотнях дарксторов, компания должна знать заранее: что закажут, сколько курьеров понадобится, какие йогурты закончатся через час. Это не магия — это данные в реальном времени. Каждое касание приложения оставляет след. Ты открыл каталог, добавил молоко в корзину, передумал и удалил, потом всё-таки заказал — всё это события, которые записываются мгновенно. Но это только верхушка. Параллельно идут данные из дарксторов: сколько бананов на полке, какой срок годности у творога, когда последний раз пополняли запасы. Плюс курьеры: где находятся, сколько заказов везут, как быстро едут. Каждую секунду — тысячи таких сигналов со всех точек. Представь диспетчерскую аэропорта. Самолёты (данные) прилетают из разных мест, и нужно каждый направить на свою полосу, не создавая хаос. Самокат использует Kafka — это как конвейерная лента, которая принимает поток событий и не теряет ни одного, даже если их миллионы
Оглавление

Самокат обещает доставить продукты за 15 минут. Чтобы это работало в 15 тысячах сотрудников и сотнях дарксторов, компания должна знать заранее: что закажут, сколько курьеров понадобится, какие йогурты закончатся через час. Это не магия — это данные в реальном времени.

🗄 Откуда берутся данные

Каждое касание приложения оставляет след. Ты открыл каталог, добавил молоко в корзину, передумал и удалил, потом всё-таки заказал — всё это события, которые записываются мгновенно.

Но это только верхушка. Параллельно идут данные из дарксторов: сколько бананов на полке, какой срок годности у творога, когда последний раз пополняли запасы. Плюс курьеры: где находятся, сколько заказов везут, как быстро едут. Каждую секунду — тысячи таких сигналов со всех точек.

⚙️ Как данные попадают в систему

Представь диспетчерскую аэропорта. Самолёты (данные) прилетают из разных мест, и нужно каждый направить на свою полосу, не создавая хаос.

Самокат использует Kafka — это как конвейерная лента, которая принимает поток событий и не теряет ни одного, даже если их миллионы в минуту. Дальше данные проходят обработку: Spark берёт сырой поток и превращает его в понятные таблицы, а Airflow следит, чтобы всё происходило вовремя и в правильном порядке. Сломалось что-то ночью? Система сама перезапустит процесс и пришлёт алерт дежурному.

Отдельно работает dbt — инструмент, который превращает сырые данные в готовые «кубики» для аналитиков. Вместо того чтобы каждый раз писать сложный запрос «посчитай средний чек по районам за неделю», аналитик просто берёт готовую таблицу.

🏗 Где всё это хранится

Обычная база данных — как картотека в поликлинике: отлично ищет карточку конкретного пациента. Но попробуй посчитать средний возраст всех пациентов за 10 лет — будешь листать до вечера.

Поэтому Самокат использует ClickHouse — хранилище, заточенное под аналитику. Оно хранит данные не по строкам, а по столбцам. Когда нужно посчитать сумму всех заказов, система читает только столбец «сумма», игнорируя адреса, имена и всё остальное. Запрос, который в обычной базе занял бы минуты, выполняется за секунды.

Холодные данные — история за прошлые годы, логи — уезжают в S3. Это как архив в подвале: достать можно, но не мгновенно.

📊 Как команды видят данные

Утро категорийного менеджера начинается с дашборда в Superset: какие товары заканчиваются, что продаётся хуже плана, где затоварились. Операционщики смотрят другое: загрузка курьеров по районам, среднее время доставки, процент опозданий.

Для более глубокого анализа подключается Tableau — маркетологи строят когорты, продакты смотрят воронки. А Redash используют для быстрых ad-hoc запросов: «а сколько у нас заказов с авокадо было в прошлую пятницу?»

💡 Что интересного

Самокат использует машинное обучение для прогнозирования спроса. Система знает, что в пятницу вечером закажут больше пива, а в воскресенье утром — круассанов. Дарксторы получают рекомендации по закупкам до того, как товар закончится.

Отдельная история — оптимизация маршрутов. Алгоритм учитывает не только расстояние, но и пробки, погоду, загрузку лифтов в конкретных домах. Это экономит минуты на каждой доставке, а в масштабе тысяч заказов в час — огромные деньги.

---

Хотите построить похожую систему для своего бизнеса? Пишите, разберём вашу ситуацию!