Compte-rendu petit-déjeuner : Calculez vos indicateurs en temps réel, en partenariat avec EDF R&D
Intervenants :
Marie-Luce Picard, Chef de Projet à EDF R&D
Benoît Grossin, Ingénieur de Recherche à EDF R&D
Julien Cabot, Directeur du pôle Big Data Analytics chez OCTO Technology
Rémy Saissy, Architecte chez OCTO Technology
Les slides de la présentation sont disponibles sur notre Slideshare : cliquez ici.
Un compte-rendu du petit-déjeuner est disponible ici.
Agenda:
Etat des lieux du Big Data
Les enjeux du Big Data chez EDF par EDF R&D
Retour d'expérience sur une expérimentation d'analyse d'indicateurs en temps réel avec Storm chez EDF R&D
Bilan
1) Etat des lieux du Big Data
Les pratiques et les outils associés au Big Data viennent des Géants du Web.
Le positionnement actuel d'Hadoop est sur des applications orientées stockage et programmation parallèle : c'est l'axe Big Data. Storm se positionne sur les applications orientées flux évènementiel et transactionnel. Ainsi Storm ajoute à Hadoop une brique sur l'axe Fast Data.
On constate principalement deux types de projets en 2013-2014 :
- Projets de data mining sur signaux forts et faibles, sur des données endogènes et exogènes
- Projets de dépassement du "mur capacitaire" des appliances décisionnelles
Trois grandes familles de solutions d’analyse en streaming :
- Complex Event Processing
- In Memory
- Streaming Grid : Storm entre dans cette catégorie
2) Les enjeux du Big Data chez EDF par EDF R&D
Du fait du développement des smart-grids et du déploiement des compteurs communicants, les utilities vont devoir faire face à une augmentation du volume et de la variété des données qu’elles exploitent. Si la technologie est prête, cela implique pour ces sociétés, un changement de culture et une évolution des compétences afin qu’elles puissent placer la donnée au centre de leurs processus.
Les volumes en jeu sont importants mais n’atteignent pas les ordres de grandeur manipulés par les Telco ou les acteurs du Web. En revanche, les traitements peuvent être complexes : les données sont majoritairement des séries temporelles (ex. courbes de consommation ou de production), les études peuvent être multi-échelles, certains traitements doivent être mis en œuvre avec une faible latence.
Le « Proof Of Concept » (POC) Storm mené avec OCTO Technology s’inscrit pleinement dans les objectifs d’EDF R&D sur le Big Data (projet SIGMA²), notamment la maîtrise des technologies Big Data en lien avec le contexte EDF présent ou à venir.
Plus précisemment, les objectifs poursuivis sont les suivants
- Mieux connaître Storm et le positionner par rapport aux outils de streaming/CEP déjà maitrisés
- Juger de la capacité de Storm à répondre à un scénario riche de « traitements EDF » à la volée sur des données en provenance de compteurs communicants : couverture fonctionnelle ? Capacité à absorber le flux ?
3) Retour d'expérience sur une expérimentation d'analyse d'indicateurs en temps réel avec Storm chez EDF R&D
Storm est une solution de complex event processing distribuée en java qui permet :
- de traiter les données en flux continu avec possibilité d'effectuer des calculs préliminaires et de stocker les agrégats
- d'effectuer de manière distribuée des calculs consommateurs de CPU à partir de plusieurs agrégats
- de traiter le flux de données en mini-batch ordonnés (via Trident)
La méthodologie de travail qui a été utilisée dans le cadre de l’expérimentation est une approche itérative, avec priorisation des tâches par importance. Cette méthodologie a permis de répondre à une contrainte d'étude en temps limité.
Le cluster utilisé pour le projet est un cluster commodity de 8 serveurs dans un rack :
- 2 nœuds maitres
- 7 nœuds de traitements (dont 1 nœud mixte maitre et traitements)
La solution est composée de 3 composants principaux :
- Redis pour stocker les relevés de compteurs
- Cluster Storm pour les traitements
- Une interface web de restitution pour suivre l'évolution des indicateurs
Trois fonctionnalités ont été implémentées :
- Calculs d'agrégats de consommation par date et groupe tarifaire
- Calcul de score de normalité : réutilisation des résultats précédents et modélisation SAX (Symbolic Aggregate approXimation) des séries temporelles
- Prévisions de consommation sur différentes mailles d’agrégation : utilisation de modèles EDF R&D existants en R. Les modèles pré-calibrés (i.e. calés sur un historique long, hors ligne) ne posent pas de problème majeur à un traitement flux, par contre les modèles adaptatifs (i.e. dont certains paramètres sont recalculés en ligne) peuvent provoquer des ralentissements lors des phases de mise à jour du modèle. Ces ralentissements sont toutefois compatibles avec les contraintes fonctionnelles de latences.
Spécificités et limites d’une implémentation Storm :
- Le niveau d'abstraction de Trident rend l'implémentation de certains algorithmes ardus
- Les calculs doivent être incrémentaux pour ne pas dégrader les performances
- Les performances sont très dépendantes de la qualité de l'implémentation, des compétences pointues en java sont requises
- L'utilisation de R ne peut pas être faite en flux continu : la mise à jour des prévisions est effectuée à un intervalle dépendant du temps d'exécution de la fonction de prévision en R. jRI, permet une interopérabilité R - Java mais pose la contrainte d'une instance de R par JVM
- Les topologies sont développées en conséquence afin de diriger certaines parties de données vers les bonnes instances de R
4) Bilan
La mise en œuvre d’une solution d’analyse d’indicateurs en temps réel basée sur Storm a permis de montrer les qualités et défauts suivants de Storm :
Points positifs :
- La solution est crédible, elle couvre les besoins fonctionnels exprimés
- Le coût (solution open source)
- Facilité de mise en œuvre et de configuration
- Polyvalence de la solution
- Storm est un produit jeune et pourtant il est bien documenté et stable
- Prévision quasi temps réel avec traitement de gros volumes de données au fil de l'eau
- Une intégration de Storm dans Hadoop est prévue
Points négatifs :
- Storm est un nouvel outil et une nouvelle logique de programmation que les équipes vont devoir apprendre à maitriser
- Il n’y a pas de studio de conception, qui ouvrirait le produit à un public moins technique
- Technicité des développements
- Difficultés de supervision, de debug et d'optimisation
Le projet n’a pas permis d’approfondir les points suivants :
- Réaliser des mesures de performances
- La gestion des erreurs fonctionnelles
- L’intégration de Storm dans Hadoop