Quinze gigaoctets de données par vol : accompagnez-moi dans les coulisses de la maintenance préventive des Boeings 787

Par Christophe Conche, Global Sales Director, chez Teradata

Lorsque vous vous reposez tranquillement à plusieurs milliers de mètres d’altitude, votre Boeing reste à l’écoute de l’ensemble de ses composants. Ce sont en effet environ 10 000 capteurs qui surveillent et mesurent en permanence ce qui se passe dans l’aéronef et son environnement extérieur : le fonctionnement des moteurs, les températures, pression, vibrations, électricité, turbulences, altitude, humidité… les paramètres à étudier sont nombreux. Et lorsqu’un incident se produit, c’est l’enchaînement des événements et l’étude de l’ensemble de ces paramètres qui permettent de comprendre et de réparer.

Mais les capteurs ne sont pas la seule source d’information. Lorsque l’avion se pose, pendant que vous débarquez, et avant que le vol suivant ne soit ouvert, plusieurs types de données sont téléchargées et analysées :

– Le journal de bord de l’équipage tout d’abord, qui contient des informations textuelles, prises en notes par le commandant de bord et son équipe pendant le vol. Ce texte, non structuré, est analysé automatiquement car il peut contenir des informations précieuses sur le déroulement du vol ;
– Les données envoyées en temps réel pendant le vol, lorsqu’un événement est survenu sur l’un des moteurs ; il s’agit le plus souvent d’une anomalie bénigne, passée totalement inaperçue par les passagers, mais susceptible d’alerter les équipes de maintenance sur une opération de vérification à mener ;
– Les données de l’ensemble des capteurs. Ces données, qui ne présentaient pas un caractère d’urgence, sont stockées dans l’appareil pendant le vol, et téléchargées à l’atterrissage.

Le problème : mettre dans le bon ordre 15 Go de données par vol

L’entrepôt de données qui collecte l’ensemble de ces informations, récupère donc de sources diverses, des données, structurées et non-structurées, dont l’analyse permettra de comprendre un événement et de prendre des décisions.
Les équipes de maintenance peuvent être confrontées à situation suivante : le commandant de bord a noté dans le journal de bord avoir entendu, en début de descente, un bruit venant du moteur gauche, pendant quinze secondes. Que faut-il faire ? Y a-t-il lieu de prévoir une opération de maintenance ? D’où pouvait provenir ce bruit et par quels paramètres a-t-il été provoqué ? Et plus directement… l’avion peut-il repartir pour son prochain vol, en toute sécurité pour les passagers et l’équipage ?

Pour réaliser cette analyse, en quelques minutes, il faut connecter l’ensemble des données, et recréer l’enchaînement des événements. Et l’on parle bien ici de Big Data. Chaque vol d’un Boeing 787 va générer environ 15 Go de données, sous forme d’une table de 60 millions de lignes. Et bien sûr, il faut comparer les données d’un vol avec celles d’autres vols, pour éventuellement établir des corrélations. Il y a environ 340 00 vols de 787 par an. Ce sont donc des milliards de lignes et plusieurs pétaoctets de données qui doivent être analysées.

Les capteurs n’envoient pas leurs données exactement en même temps. Il serait impossible de cadencer plusieurs milliers de capteurs à la milliseconde près. Et beaucoup de capteurs n’envoient un signal que lorsque l’information est modifiée. Pas de signal signifie donc que la dernière valeur est toujours d’actualité.
Le premier travail consiste alors à aligner dans le temps l’ensemble des données à la milliseconde près pour répondre à la question : Quel était le statut de l’ensemble des capteurs du vol à un instant précis ?

La solution : une base de données temporelle pour repérer les liens entre les événements

Pour y parvenir, Boeing a utilisé les fonctions d’analyse temporelle. Il s’agit d’un jeu de fonctions supplémentaires, qui optimisent la manipulation et le requêtage des données temporelles.
D’un point de vue technique, les données issues des enregistreurs de vols, sont tout d’abord déversées dans un data lake. Elles y sont alors normalisées puis les données, au travers de Teradata QueryGrid (qui permet de requêter en SQL le lac de données Hadoop), sont injectées dans l’entrepôt de données Teradata, où sont implémentées les fonctions de gestion des données temporelles. Les données sont alors disponibles sous forme d’une « table des faits », et peuvent être requêtées.
Autre objectif, réduire le volume des données en transformant chaque suite d’instants en une période de temps. Ainsi lorsque les données ne changent pas, il devient inutile de conserver l’ensemble des informations. Seuls les points de données sont conservés lorsqu’une donnée est modifiée. Dans la base de données, une « période » devient un type de données temporel, et fait partie de ces nouvelles fonctions que j’évoquais plus haut.
Ce travail permet donc de résoudre deux problèmes : l’alignement temporel des données ; et l’intersection temporelle.
Cette intersection temporelle, permet au travers d’une commande SELECT classique, de connaitre l’état de l’ensemble des capteurs à un instant T, et ainsi d’établir des corrélations entre différents événements.

Des gains évidents en volume de données, et en efficacité de requêtage

Les chiffres parlent d’eux-mêmes. Les 15 Go de données par vol téléchargées depuis l’enregistreur de vol, sont réduits à 190 Mo une fois les données temporelles traitées.
Et en matière d’analyse, les gains sont encore plus impressionnants. Nous évoquions plus haut les 200 heures nécessaires à l’exécution d’une requête sur 100 heures de vols… il suffit maintenant de 17 minutes pour analyser les données de 1000 vols ! D’un point de vue métier, cela signifie que les data scientists peuvent conduire plus d’investigations, plus de recoupements, tester plusieurs modèles d’incidents potentiels, et donc finalement améliorer à la fois la prévision des opérations de maintenance, et la sécurité des vols

Et dans le futur, les données audio et images pourront être collectées et analysées de la même façon, replacées dans une chaîne temporelle d’événements. On pourra alors requêter de la même façon pour savoir si deux sons ou deux images, sont identiques dans une même période de temps. Les mêmes principes de normalisation et de gestion des périodes seront ici appliqués à des données non structurées.

 

Leave a Reply