Revenir au contenu principal
Solutions

Du banc d'essai au lakehouse : comment AVL modernise l'analyse des données de mesure avec Impulse

par Dr. Thomas Bonfert, Jonathan Bräuer, Fabian Ade, Maxim Hammer, Florian Gorzitzke, David Crescence, Christa Simon, Jörg Zimmermann et Hannes Schneider

  • Impulse est un framework open source de Databricks Labs qui permet aux ingénieurs métiers d'analyser les données de capteurs sur Databricks à l'aide de simples expressions Python.
  • Impulse permet de mettre à l'échelle l'analyse des séries temporelles sur des centaines de téraoctets de données de mesure, tout en garantissant que les analyses restent reproductibles, partageables entre les équipes et gouvernées par Unity Catalog.
  • AVL a remplacé sa plateforme sur site existante par Impulse sur Databricks, réduisant le temps d'analyse de plusieurs jours à quelques minutes et standardisant l'analyse des données de mesure à l'échelle de l'entreprise.

1. Introduction - Impulse : analyse de séries temporelles pour les données de mesure

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 :

  1. Un langage déclaratif d'analyse de séries temporelles, le Time Series Analytics Language (TSAL), qui permet aux ingénieurs d'exprimer l'arithmétique des signaux, les conditions d'événements et les agrégations en Python naturel, sans nécessiter d'expertise Spark.
  2. Un moteur de requêtes enfichable qui compile les expressions TSAL en exécutions Spark distribuées sur des milliers d'enregistrements stockés dans n'importe quelle disposition de données d'entrée.
  3. Des abstractions adaptées au domaine qui correspondent directement à la façon dont les ingénieurs perçoivent leurs données, notamment les conteneurs de mesures, les canaux de capteurs, les événements de fonctionnement et les agrégations pondérées par la durée et la distance.

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.

Architecture d'Impulse.
Figure 1 – Architecture d'Impulse. Le framework comprend trois composants. Le TSAL est un DSL Python déclaratif permettant d'exprimer des signaux, des événements et des agrégations sans nécessiter d'expertise Spark. Le moteur de requêtes enfichable compile les expressions TSAL en plans d'exécution Spark distribués et exécute les requêtes sur les données de la couche Silver. Les agrégations adaptées au domaine comprennent des histogrammes 1D/2D pondérés par la durée et la distance, ainsi que des statistiques limitées aux événements. Impulse écrit finalement les résultats dans un schéma en étoile de la couche Gold.

2. L'architecture - un lakehouse pour les données de mesure

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.

Architecture de référence de haut niveau du Lakehouse
Figure 2 – Architecture de référence de haut niveau du Lakehouse pour les données de mesure. (1) Les fichiers de mesure bruts sont ingérés dans la couche Bronze. (2) Les données sont transformées dans le modèle de données standardisé de la couche Silver. (3+4) Impulse traduit la logique d'analyse déclarative en exécution distribuée et produit des sorties pour la couche Gold. (5) Les outils de BI et les Lakehouse Apps mettent les résultats à la disposition des utilisateurs finaux. Voir le texte pour plus de détails.

3. Mettre Impulse à l'œuvre : une analyse complète en 10 lignes de Python

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.

4. Trois façons d'utiliser Impulse – reporting, analyse ad-hoc et ML

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.

Quatre personas et leur interaction avec Impulse
Figure 3 – Quatre personas et leur interaction avec Impulse. Les trois modes d'utilisation actifs partagent le même cœur TSAL et le même moteur de requête ; les parties prenantes consomment les résultats via des Dashboards et des Lakehouse Apps.

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.

5. Résultats et impact

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

  • Réduction significative du temps d'analyse (de quelques jours à quelques minutes par rapport aux approches traditionnelles)
  • Capacité à traiter un grand nombre d'enregistrements de mesures en un seul passage
  • Économies sur les coûts d'infrastructure par rapport aux solutions sur site

Améliorations qualitatives

  • Autonomisation des ingénieurs du domaine grâce à l'analyse en libre-service
  • Analyses entièrement reproductibles et transparentes
  • Standardisation inter-équipes sur une plateforme de données unique et unifiée

6. Et après ? L'open source et les perspectives d'avenir

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

Recevez les derniers articles dans votre boîte mail

Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.