Данные в большом городе

  • #Big_Data
  • #Транспорт

О чем материал

Рассказываем, какие данные собирают в ИЦ «Безопасный транспорт» и как они помогают улучшать жизнь горожан 

За какие задачи отвечает ваше управление в ИЦ «Безопасный транспорт»? 

Наша команда строит масштабный Data Lake транспортных данных: мы интегрируем источники, загружаем из них информацию и приводим ее в формат, соответствующий нашей модели. Также готовим данные к передаче в разные цифровые продукты, выделяем аналитические слои и строим витрины.

Расскажите подробнее о технических характеристиках Data Lake.

Сейчас к хранилищу подключено порядка 50 источников. Часть из них передают данные в реальном времени, для остальных применяем загрузку батчами — как правило, ежедневно или ежечасно. Общий объем хранимой информации превышает 500 терабайт, но в ближайшее время мы планируем расшириться еще в 2–3 раза. 

Технологический стек у нас классический: центр платформы — Hadoop, основной оркестратор — Airflow, движок для вычислений — Apache Spark 3, для real-time-потоков используем Apache Kafka, Docker-контейнеры, Python — все в лучших традициях. Но сейчас появляются новые cloud-ready-движки, с которыми хочется поэкспериментировать. Мы рассматриваем Trino в паре с Apache Iceberg и уже в следующем году планируем мигрировать часть хранилища.

Какие именно данные вы собираете?

Практически обо всех событиях, связанных с транспортом в городе. Начало/окончание поездок в такси, передвижение наземного транспорта (от трамваев до МЦК), сессии на каршерингах и СИМ (средствах индивидуальной мобильности) — например, всеми любимых самокатах :) К нам поступает даже информация от городской уборочной техники, грузовиков и самосвалов. Только от real-time-источников набегает более 600 млн записей в сутки. 

Если вы решите запустить сервис аренды велосипедов, то сразу попадете под регуляторику правительства Москвы. Помимо прочего, вас обяжут оборудовать все СИМ датчиками, которые передают информацию о сессиях в нашу систему.

При этом данные, которые мы получаем от сервисов аренды СИМ и тех же каршерингов, всегда обезличены. У нас есть только ID транспортного средства, его номер, координаты и время. Кто начал сессию, мы не знаем — эта информация остается на стороне провайдера. Как бы обидно это ни звучало, нас интересуете не вы, а ваше транспортное средство :)

Как вы поддерживаете качество данных? 

Проблему пустых данных (когда источник вовремя не прислал информацию или прислал не то, что нужно) можно закрыть автоматическими проверками. Мы собрали фреймворк, который генерирует такие проверки — их уже около 25 тысяч, потому что объектов в хранилище много. Результаты агрегируются, и мы получаем сводку по качеству данных на начало/конец дня. Таким образом можно отследить, какие источники не прислали данные, где появились аномалии или началась деградация значений.

Также отмечу чувствительный момент с real-time-потоками. Как правило, данные приходят качественные, а вот общий объем передаваемой информации может падать или расти. В этом случае нужно разбираться: это просто потому, что по городу сегодня ездит меньше машин или часть агентов работают некорректно.

Сначала вы просто начинаете собирать данные, а к вопросу об их качестве приходите позже — на второй или третий год работы, когда источников становится по-настоящему много. Мы начали разрабатывать фреймворк, генерирующий автоматические проверки, когда контролировать объекты вручную стало невозможно.

В чем заключается главная сложность при работе с большими данными города?

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

Над какими проектами вы работаете сейчас? 

Начну с того, чем занимается непосредственно мое управление. Первый проект — платформа больших данных. Это хаб с универсальными загрузчиками, который позволяет интегрировать большое количество источников. Подключение новых систем должно происходить быстро и с минимальными трудозатратами (не считая сложностей с заключением контрактов :)). Также платформа должна на лету генерировать API-интерфейсы для потребителей данных. Работы предстоит много, потому что исторически системы взаимодействовали по принципу «точка-точка», но в какой-то момент связей стало слишком много. Сейчас мы все это распутываем и формируем единую дата-платформу. 

Второй проект — видеоаналитика на базе Computer Vision. В городе стоит огромное количество камер, которые просто дают телеобзор (например, на перекресток). Обычно информацию с таких устройств отсматривают вручную — когда происходит какой-то инцидент. Нам пришла идея, что можно использовать эти данные, чтобы получать новые инсайты о транспортной ситуации. Так появился сервис Traffic Vision: он заточен на детекцию и классификацию транспортных средств. В пилоте участвует даже речной транспорт. 

Теперь приведу примеры сервисов, которые коллеги реализуют с помощью наших данных. Один из первых G2C-продуктов, ради которого создавалось хранилище больших данных, — это сервис информирования жителей о событиях в городе. Например, о перекрытии определенных дорог. Мы считаем неэффективной массовую рассылку на всех: правильнее, когда уведомления получают только те, кого касается это событие. Например, если люди едут через зону с ограничением движения на личном транспорте. У нас есть информация о транспортном поведении жителей, и мы можем почти в реальном времени определить, какие машины движутся в закрытую зону. 

Наконец, для крупного бизнеса и государственных организаций мы с коллегами делаем сервис, моделирующий изменения транспортной обстановки при строительстве новых объектов. На вход системы подаются этажность, площадь здания и другие параметры, и мы анализируем, как строительство нового офисного центра или ЖК повлияет на пропускную способность ближайших станций метро и загруженность парковок. Модель довольно сложная: она учитывает ежедневные миграции граждан к центру и обратно, потенциальное расселение и т. д. Это помогает понять, стоит строить 60-этажную башню в Хамовниках или ни к чему хорошему это не приведет (спойлер: лучше не надо).

Поделитесь планами на будущее.

Ключевой вектор — развитие гибридного хранилища данных. Немалую роль в этом играют вопросы информационной безопасности, потому что вся наша инфраструктура сейчас on-premise, и мы считаем, что правильнее двигаться в сторону гибрида. Во-первых, чтобы разделять потенциально атакуемые поверхности. Во-вторых, у нас есть сервисы, которые должны взаимодействовать с внешним миром, а есть те, которые должны оставаться совершенно закрытыми. 

Мы дěлаем Positive Research → для ИБ-экспертов, бизнеса и всех, кто интересуется ✽ {кибербезопасностью}