Аналитика в реальном времени: когда это работает, а когда это дорогой театр
Стриминговые данные и дашборды в реальном времени стали модным требованием. Разбираю, когда это решает настоящую проблему.
Почти в каждом разговоре о новой аналитической системе в какой-то момент звучит: "а можно сделать в реальном времени?" Иногда это настоящее бизнес-требование. Чаще - это сигнал, что кто-то видел красивый дашборд и хочет такой же.
Разница важна, потому что аналитика в реальном времени стоит значительно дороже в строительстве и в обслуживании, чем аналитика с задержкой. Прежде чем принять это решение, стоит разобраться, за что именно платишь.
В чём реальная разница
Аналитика с задержкой - батч-обработка - означает: данные собираются за период, обрабатываются, результаты доступны через час, через ночь, через сутки. Это предсказуемо, дёшево в обслуживании, просто в отладке.
Аналитика в реальном времени - стриминг - означает: данные обрабатываются в момент появления, результаты доступны через секунды или минуты. Это требует стриминговой инфраструктуры, отдельной архитектуры обработки, другого подхода к ошибкам и повторной обработке.
Разница в стоимости - кратная. Разница в сложности обслуживания - тоже кратная.
Когда реальное время оправдано
Есть два типа ситуаций, когда задержка действительно стоит денег.
Первый тип - операционные решения. Если по результату аналитики принимается решение, которое должно быть принято прямо сейчас, и задержка делает это решение бессмысленным. Примеры: обнаружение фрода в момент транзакции, балансировка нагрузки в реальном времени, мониторинг производственного оборудования с немедленной реакцией.
Второй тип - конкурентное преимущество. Если скорость получения информации является источником ценности для клиента или для операций. Торговые платформы, маркетплейсы с динамическим ценообразованием, операционные центры управления.
В обоих случаях есть конкретный ответ на вопрос: что именно перестаёт работать, если данные появляются с задержкой в 15 минут? Если ответа нет - реального времени, вероятно, не нужно.
Где это становится дорогим театром
Я вижу аналитику в реальном времени как декорацию тогда, когда:
- дашборд обновляется каждую минуту, но смотрят на него раз в день;
- данные приходят в реальном времени, но решения принимаются по итогам недели;
- стриминговая система поддерживает команда из одного человека, который заменить себя не может;
- система дорогая в обслуживании, но никто не может назвать конкретное решение, которое она ускорила.
В этих случаях задержка в 30 минут или в час не изменила бы ничего - кроме стоимости системы.
Как принимать решение
Три вопроса, которые помогают выбрать подход:
- Какое конкретное решение принимается по этим данным и насколько быстро оно должно быть принято?
- Что происходит, если задержка составит 15 минут? Час? Сутки? На каком пороге задержка начинает стоить денег?
- Кто и как будет обслуживать стриминговую инфраструктуру, если мы её построим?
Если первый вопрос дал чёткий ответ с конкретными деньгами - стриминг оправдан. Если нет - стоит начать с батч-обработки, которую можно улучшить позже, и не переплачивать за скорость, которая не нужна.
Большинство аналитических задач в обычном бизнесе прекрасно решаются с задержкой. Это не компромисс. Это правильный инструмент для большинства задач.