Opportunité
« Être coincé dans le trafic ». Que vous soyez conducteurs ou voyageurs, c’est là une expression que vous avez certainement dite ou entendue, surtout à proximité d’un grand centre urbain. En plus de jouer sur l’humeur des automobilistes, la congestion routière est lourde de conséquences sur le bien-être général de la population, sur l’environnement et sur l’économie.
Les raisons de se pencher sur la congestion routière sont donc nombreuses. Chez exo, un transporteur collectif dans le Grand Montréal et un acteur important du transport en commun intelligent au Québec, on s’intéresse à la congestion routière en particulier pour des raisons opérationnelles, afin de modéliser la mobilité ou à des fins tactiques et stratégiques.
Les analystes géomatiques d’exo, en partenariat avec des chercheurs de Polytechnique Montréal, étudient la congestion routière à partir de données historiques sur le trafic automobile au Québec. Ces données, obtenues de HERE Technologies, sont constituées des vitesses des véhicules enregistrées sur chacun des tronçons routiers au Québec, comptabilisées aux heures et/ou aux 5 minutes. Or, comme le réseau routier québécois se découpe en à peu près 1.5 millions de tronçons directionnels, HERE peut fournir grosso modo entre 1 et plus de 12 milliards de nouvelles lignes de données par mois, selon la fréquence horaire ou aux 5 minutes, ce qui résulte en une croissance mensuelle des volumes de plus de 1 To. Il va sans dire qu’avec une telle volumétrie, analyser la congestion routière n’est pas une promenade de santé!
Défi
Conserver toutes ces données dans PostgreSQL, la technologie sur site employée initialement par exo, présente des défis de stockage auxquels s’ajoutent des difficultés d’exploitation :
- Préparer de gros volumes de données à des fins d’analyse prend beaucoup de temps : malgré l’emploi d’un serveur dédié, cette étape dure déjà près de 48 heures chaque mois pour les données de vitesse aux heures;
- Interroger les données par la suite pour produire des résultats en des délais raisonnables nécessite des capacités computationnelles déjà significatives pour les données horaires;
- Le calcul d’itinéraires optimaux entre plusieurs millions d’origines et de destinations, un des principaux cas d’usage des analystes géomatiques d’exo, peut durer des semaines, voire des mois;
- Parce qu’on anticipe alors des coûts et des temps d’exécution démesurés pour le traitement et l’usage des données de vitesse aux 5 minutes, on ne les utilise à peu près pas.
Constatant les limites de sa solution sur site, exo soupçonne que l’emploi de technologies disponibles sur le cloud public peut lui venir en aide, mais lesquelles?
Solution
C’est alors que nous intervenons! Notre rôle est de proposer, mettre en place et gérer une plateforme de données moderne cloud apte à fournir les capacités de traitement recherchées et qui, évidemment, respecte des contraintes budgétaires normales.
Comme exo emploie déjà certaines ressources sur le cloud de Microsoft, c’est sur Azure que nous hébergeons la plateforme élaborée. Nous y utilisons diverses ressources telles :
- Des comptes de stockage pour y archiver les fichiers sources fournis par HERE;
- Des applications web conteneurisées pour y déployer l’engin de calcul OSRM;
- Des fonctions Azure pour exécuter ou orchestrer certaines tâches.
Pour gérer des bases de données volumineuses maintenant, nous employons Snowflake. Plusieurs raisons générales expliquent d’abord ce choix :
- Snowflake est disponible sur les principaux clouds publics, sur Azure en particulier;
- Il se présente comme un Software as a Service : comme tel, Snowflake permet de réduire grandement les tâches opérationnelles comme la sauvegarde ou l’indexation;
- Il offre les capacités de stockage et computationnelles recherchées;
- Puisque Snowflake propose une séparation nette entre ressources de stockage et computationnelles, on peut traiter simultanément plusieurs charges de travail sans dégradation de performance;
- Cette séparation contribue à mieux limiter et contrôler les coûts.
D’autres raisons plus spécifiques aux cas d’usage des analystes géomatiques d’exo justifient l’emploi de Snowflake :
- Il supporte les formats géographiques et expose diverses fonctions géospatiales;
- Les analystes interrogent les bases de données qui s’y trouvent à l’aide du SQL standard qu’ils connaissent déjà;
- De nombreux connecteurs et pilotes étant disponibles, les analystes peuvent continuer de travailler avec des langages et des outils familiers : Python, DBeaver, Tableau, etc.
Nous avons mis en place la plateforme de données il y a quelques mois et les analystes d’exo l’utilisent quotidiennement depuis. Les résultats sont plus que concluants :
- Le traitement mensuel des données de vitesse aux 5 minutes se fait le temps d’une courte nuit de quelques heures;
- Les requêtes exécutées typiquement sur des dizaines de milliards de lignes et plusieurs téraoctets de données fournissent des résultats en quelques secondes seulement;
- La durée du calcul d’un itinéraire optimal est maintenant de 1 ms, ce qui permet de compléter des simulations de plusieurs millions de routes en moins de 2 heures;
- Les analystes produisent et visualisent divers indicateurs de congestion de manière conviviale;
- La plateforme est extensible et pourra s’ajuster automatiquement à des nouvelles charges de travail;
- Le tout avec un budget de consommation cloud des plus raisonnables.
Ces gains en performance sont impressionnants en soi, mais la réalité est encore plus simple à exprimer. Dans les faits, les analystes géomatiques peuvent s’attaquer aujourd’hui à des problèmes qui étaient très complexes, voire impossibles, à résoudre il y a quelques mois à peine. Analyser la congestion routière est maintenant chose routinière chez exo.
Ça, c’est un succès!