Un monde de données
En informatique, le terme traitement de données renvoie à une série de processus qui permettent d'extraire de l'information ou de produire du savoir à partir de données brutes.
Ces processus, une fois programmés, sont le plus souvent automatisés à l'aide d'ordinateurs.
Si les résultats finaux produits par ces processus sont destinés à des humains, leur présentation est souvent essentielle pour en apprécier la valeur.
Le traitement des données peut impliquer divers processus, notamment:
- Validation - Veiller à ce que les données fournies soient "propre", "correcte" et "utile"
- Tri - prendre les informations dans un certain ordre
- Récapitulation - réduire les données de détail à ses principaux points (ré-échantillonnage pour des séries temporelles).
- Agrégation - combiner plusieurs éléments de données.
- Analyse - collecter, organiser, interpréter et présenter les données.
- Reporting - voir la liste ou sommaires des données ou informations calculées.
- Classification - séparer les données en différentes catégories.
Contexte
Données personnelles
Internet of Things (IoT)
L'Internet des objets représente l'extension d'Internet à des choses et à des lieux du monde physique.
Les données produites par ces nouveaux produit peuvent être stockées dans des bases de données afin d'être utilisée ultérieurement
Suivi des consommations énergétiques
Les "nouveaux" compteurs dits "intelligent" (type Linky) et les box domotiques permettent de mettre à disposition des données importantes concernant les consommations énergétiques des usagers.
Suivi de production
Les systèmes de productions énergétiques renouvelables (solaire thermique, solaire photovoltaïque, éoliens, ...) doivent permettre au producteur de quantifier instantanément sa production, de détecter des pannes, des baisses de rendement, ...
Centrale météorologiques
Les stations météo amateur peuvent se connecter à un serveur de bases de données afin de socker la température extérieure locale et permettre par exemple une comparaison des températures avec les consommations énergétiques destiné au chauffage des habitations et détecter (en temps réel) une dérive des consommations et les notifier.
Autres exemples
Données provenant de :
- systèmes de GTB (Gestion Techniques de Bâtiments)
- GTC (Gestion Technique Centralisée)
- ...
Exemples d'application dans le domaine énergétique
- Détection d'une sur-consommation
- Détection d'une anomalie dans un système de production d'énergie
- Connaissance de "profils" d'usagers
- Prévision de consommations
- Connaissance du potentiel de production
- éolienne
- photovoltaïque
- solaire thermique
- Prévision de productions à partir d'historiques (prévision des séries temporelles)
- ...
Des outils
Devant cette quantité de données, il devient nécessaire d'avoir des outils adaptés.
Critères de choix possibles
- Coût
- Simplicité d'utilisation
- Capacité à traiter le volume de données demandé en un temps voulu
- Complexité des traitements à effectuer sur les données
- Intégration à un système d'information
- Maintenance
- ...
Problématique volume / temps de traitement:
peu de données (moins d'une centaines de valeurs par exemple) et plusieurs minutes de traitement. On peut calculer moyenne, minimum, maximum "à la main"
moins de 65535 valeurs, il reste encore possible d'utiliser une ancienne version d'Excel (ou LibreOffice). Les versions plus récente permettent de dépasser cette limitation mais il s'avère tout de même difficile d'effectuer des traitements statistiques sans passer par des outils complémentaires comme XLstat http://www.xlstat.com/ ou des macros en Visual Basic for Application (VBA). La maintenabilité peut devenir complexe.
de plusieurs dizaines de milliers de données à plusieurs millions de données (données en mémoire) et moins d'une minute de traitement. Les tableurs type Excel ou LibreOffice montrent leurs limites. Plusieurs solutions sont alors possibles:
- solution de reporting / business intelligence type BIRT http://www.eclipse.org/birt/
- logiciels dédiés ou langages de programmation:
- SAS
- SPSS
- R
- Python
- ...
Au delà... le big data!
Lorsque la quantité de données devient telles qu'il est inenvisageable de la stocker dans la mémoire d'un seul ordinateur afin de la traiter, ou qu'il devient trop long de le faire pour un unique ordinateur, on parle de "Big Data". Plusieurs ordinateurs doivent coopérer afin de se partager les tâches.
Quelques noms de technologies (big data) :
- Apache Hadoop
- Apache Spark
- Apache Storm
- ...
Les bases de données relationnelles (telles que MySQL, PostGreSQL...) peuvent devenir moins à même à gérer des très gros volumes. Les bases de données NoSQL (Not only SQL en anglais) https://fr.wikipedia.org/wiki/NoSQL permettent d'aller bien au delà.
Quelques noms de technologies :
- BigTable (Google)
- Apache Cassandra (Twitter, Digg)
- HBase (Facebook)
- MongoDB (SourceForge.net)
- Redis
- ...
Objet de cette présentation / avertissement
Cette présentation ne traitera pas du big data qui est un domaine trop spécifique pour faire en si peu de temps ne serait-ce qu'une introduction.
Cette présentation ne traitera pas non plus des outils type bureautique (tels que Excel) pour lesquels on peut supposer que vous avez déjà une certaine connaissance.
Nous allons aborder ici le langage de programmation Python en tant qu'outil pour:
- interagir avec des équipements de mesure
- stocker des données
- traiter des données
- tracer l'évolution (notamment temporelle) de données
Dans un premier temps nous aborderons les bases du langage Python.
Ensuite nous présenterons les "limites" des structures de données de base du langage (list) qui ont poussés à la création de la bibliothèque Numpy pour manipuler des gros volume de données.
Par la suite nous présenterons les DataFrames (concept issu du langage R) qui se sont imposés pour manipuler les données.
Ainsi stockées et représentées, les données pourront être facilement et rapidement tracés, rééchantillonnées, ...
Ce que l’on faisait en une ou deux boucles (recherche d'une valeur maximum, minimum, moyenne...) se fait alors par un simple appel de fonction.
Dans un dernier temps nous aborderons lors des travaux pratiques divers cas tels que :
- comparaison de la "froideur" d'une année (notion de degrés jour-unifiés)
- étude des données recueillis par un équipement de GTC (gestion technique centralisée)
- étude d'un site pour la production éolienne
- interaction avec un web service ou un équipement de mesure, stockage dans une base de données (MySQL), tracé
Ce cours n'est pas (et ne peut pas), vu le peu de temps consacré, être exhaustif :
- ni sur la problématique des données, leur acquisition et de leur traitement.
- ni sur l'aspect technique
- apprentissage du langage Python
- connaissance des bibliothèques de traitement de données telles que (Numpy, Pandas, Scikit...)
- connaissance des bases de données ...
Si vous deviez à court terme mettre en place un système de traitement de données. La lecture d'un ouvrage plus spécialisé (notamment parmi ceux donnés en référence est plus que vivement conseillée.