par Dr. Thomas Bonfert, Jonathan Bräuer, Fabian Ade, Maxim Hammer, Florian Gorzitzke, David Crescence, Christa Simon, Jörg Zimmermann et Hannes Schneider
Une seule campagne d'essais automobiles produit des centaines de milliers d'enregistrements de mesures et des centaines de téraoctets de données de capteurs sous forme de séries temporelles. Ces données sont stockées dans des formats binaires tels que ASAM MDF4 et sont traditionnellement analysées à l'aide d'outils de bureau comme NI DIAdem ou MATLAB. Les ingénieurs du domaine apprécient ces outils pour une bonne raison. Ils peuvent se concentrer sur l'analyse proprement dite, en décidant quels signaux comparer et quelles conditions définissent un événement critique, sans avoir à devenir des experts en frameworks de Big Data et en informatique distribuée. Cependant, ces outils ne sont pas évolutifs, les analyses basées sur des scripts isolés sont difficiles à reproduire, et les données échappent à la gouvernance sur laquelle repose le reste d'une entreprise moderne.
Impulse est une bibliothèque d'analyse basée sur Python, publiée en tant que projet Databricks Labs, qui comble cette lacune sur la Databricks Intelligence Platform. À la base (Figure 1), Impulse fournit trois ingrédients clés :
Dans cet article de blog, nous montrons comment Impulse alimente le Lakehouse de données de mesure d'AVL sur Databricks. AVL est une entreprise technologique de mobilité de premier plan mondial, spécialisée dans le développement, la simulation et les essais de systèmes de véhicules et d'énergie. Elle travaille avec des données de mesure et de simulation pour valider les conceptions, comprendre le comportement des systèmes et accélérer le développement de produits axés sur les données, des modèles virtuels aux essais en conditions réelles. Nous détaillons l'architecture lakehouse, trois modes d'utilisation complémentaires qui s'adressent aussi bien aux ingénieurs du domaine, aux ingénieurs de données qu'aux data scientists, ainsi que l'impact constaté par AVL en production. Impulse s'appuie sur un modèle de données hiérarchique de couche Silver co-développé avec Mercedes-Benz et décrit dans notre article de blog précédent.
La plateforme d'AVL suit l'architecture Medallion, Unity Catalog assurant la gouvernance sur toutes les couches et Databricks Workflows orchestrant le pipeline (voir Figure 2).
1. Source et ingestion : Les fichiers de mesure bruts (par exemple au format ASAM MDF4) sont ingérés dans la couche Bronze à l'aide d'un Databricks Solution Accelerator. AVL a étendu cet accélérateur pour fonctionner avec AVL Concerto, son système de gestion des données de mesure qui prend en charge plusieurs formats de fichiers propriétaires. Les métadonnées contextuelles (identifiants de véhicules, versions de logiciels, balises de projet, etc.) sont ingérées en même temps que les fichiers enregistrés.
2. Couche Silver : Les données Bronze sont transformées en un modèle de données hiérarchique pour les données de mesure. Le modèle organise les données de mesure autour de conteneurs (c'est-à-dire des fichiers individuels) et de canaux (signaux de capteurs), chacun étant enrichi d'attributs/balises et de métriques au niveau du conteneur et du canal. La couche Silver stocke des données validées et de qualité garantie, prêtes pour le traitement analytique. Les règles d'assurance qualité des données sont implémentées à l'aide du framework Databricks DQX et sont entièrement configurables et personnalisables pour répondre aux besoins d'analyse spécifiques en aval. Veuillez consulter notre article de blog publié précédemment pour plus de détails sur le modèle de données de la couche Silver.
3. + 4. De Silver à Gold : La couche Silver alimente Impulse, qui traduit la logique d'analyse déclarative en exécution Spark distribuée. Les sorties peuvent être un schéma en étoile de couche Gold pour le reporting, des DataFrames ad hoc pour l'exploration, ou des matrices de caractéristiques pour le ML (voir Section 5).
5. Service et analyse : Les outils de BI comme les Databricks Dashboards ou les Lakehouse Apps consomment les données de la couche Gold via des SQL Warehouses, permettant une exploration interactive sans toucher au pipeline de calcul.
La meilleure façon de comprendre Impulse est de le voir en action. Dans cette section, nous présentons un exemple minimal mais réaliste : la sélection de capteurs de température de batterie, la définition d'un événement de risque d'emballement thermique basé sur ces capteurs, et le calcul d'un histogramme pondéré par la durée, le tout à l'aide du Time Series Analytics Language (TSAL).
Sélection de canaux physiques et définition de canaux virtuels
Le point de départ de toute analyse est la sélection des canaux de capteurs physiques d'intérêt. Le QueryBuilder recherche dans les tables de métadonnées de la couche Silver et renvoie une expression TSAL. Dans l'exemple ci-dessous, nous récupérons les températures de cellule les plus élevées et les plus basses de notre plateforme EV et calculons le déséquilibre de température (delta) :
Notez que la simple ligne définissant le canal virtuel code un calcul non trivial. Le framework effectue automatiquement la résolution des alias de canaux, la conversion des unités, l'alignement des canaux sur un axe temporel commun et l'interpolation des points de données avant d'effectuer l'opération arithmétique.
Définition d'un événement
Les événements sont des fenêtres temporelles dérivées des conditions de signal. Ici, nous définisons un événement de sécurité critique où la température maximale absolue de la cellule dépasse un seuil de sécurité (60 °C) OU la variation de température entre les cellules est anormalement élevée (supérieure à 5 °C) :
Les expressions TSAL sont entièrement composables : les canaux virtuels, les conditions booléennes et les agrégations peuvent se faire référence mutuellement.
Calcul d'un histogramme au sein de l'événement
Enfin, nous définissons un histogramme pondéré par la durée de la température maximale de la cellule, limité à l'événement de risque thermique. L'histogramme comptabilise le temps passé dans chaque intervalle de température, produisant des résultats physiquement significatifs, quel que soit le taux d'échantillonnage du capteur :
Exécution de l'analyse
Deux appels de méthode déclenchent le calcul distribué sur tous les enregistrements de mesure correspondants et enregistrent les résultats sous forme de tables de schéma en étoile de niveau Gold dans Unity Catalog. L'ensemble de l'analyse, de la sélection des canaux au calcul des signaux virtuels, en passant par la définition des événements, l'agrégation des histogrammes et la persistance, prend environ 10 lignes de Python. L'utilisateur n'écrit jamais de transformation de DataFrame, de fonction définie par l'utilisateur, de jointure ou de fonction de fenêtre.
Impulse prend en charge trois modes d'utilisation complémentaires (Figure 3), tous basés sur le même langage d'expression TSAL et le même moteur de requête. En mode de reporting structuré, les ingénieurs du domaine définissent des événements et des agrégations qui sont exécutés en parallèle sur tous les enregistrements correspondants et enregistrés dans un schéma en étoile de niveau Gold, prêts pour les AI/BI Dashboards ou les Lakehouse Apps. Le pipeline peut être planifié en tant que Databricks Workflow pour se mettre à jour automatiquement à l'arrivée de nouvelles mesures. En mode ad-hoc, les expressions TSAL sont évaluées directement par le moteur de requête et renvoyées sous forme de Spark DataFrames pour une exploration interactive dans des notebooks, sans écriture dans la couche Gold. En mode ML, les statistiques à l'échelle de l'événement et les distributions d'histogrammes sont extraites sous forme de matrices de caractéristiques plates qui peuvent être transmises directement à MLflow, AutoML ou à des pipelines d'entraînement personnalisés.
Comment AVL utilise Impulse en pratique
En pratique, AVL tire parti des forces du framework Impulse en utilisant principalement son mode de reporting structuré pour créer des packages d'analyse configurables et standardisés (« boîtes à outils »). Ces boîtes à outils sont exécutées par des ingénieurs du domaine sur les campagnes de mesures entrantes, en fonction de leur tâche d'ingénierie spécifique ou de leur objectif analytique.
Les résultats de la couche Gold qui en découlent sont intégrés de manière transparente dans les Databricks Dashboards et les Lakehouse Apps, où les ingénieurs peuvent explorer les résultats de manière interactive et créer des histogrammes, des cartes de chaleur et d'autres visualisations statistiques pour soutenir les décisions d'ingénierie basées sur les données.
Grâce au framework Impulse et à la Databricks Data Intelligence Platform, AVL a mis en place une plateforme de données d'ingénierie de bout en bout pour soutenir le développement de produits basé sur les données. La plateforme introduit une nouvelle norme dans l'analyse des données automobiles et apporte des améliorations sur plusieurs plans :
Améliorations quantitatives
Améliorations qualitatives
Impulse est publié en tant que projet Databricks Labs (veuillez consulter ici), ouvert aux contributions de la communauté pour de nouvelles agrégations, des résolveurs de requêtes et des extensions spécifiques au domaine. Le framework est fourni avec un jeu de données de démonstration public, une documentation complète et des notebooks Databricks pour illustrer les modes d'utilisation du reporting et du ML.
Pour AVL, le déploiement d'aujourd'hui n'est que la fondation de leur lakehouse pour les données de mesure. La feuille de route étend Impulse à la validation de l'ADAS et de la conduite autonome, à la maintenance prédictive et aux données de simulation, en vue d'un développement de produits de bout en bout basé sur les données.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.