Entrepôt des Données, année 2019
Bases de données vs Entrepôts de données
Précédemment:
On a vu comment on pouvait utiliser des bases de données dans des processus d’analyse de données. Cet usage n’est pas l’usage canonique des base de données relationnelles. Ces dernières sont fait pour gérer de gros volumes de données dynamiquement. Elles gères l’ajout, la mise à jour et la suppression de données en toute sécurité
Cette sécurité à un coût: une base de données en production doit: 1. Maintenir des indexes 2. Trouver un compromis entre rapidité en écriture et en lecture 3. Être robuste (à la panne et à la concurrence) via des systèmes de gestions des transactions
On parle de bases de données OLTP pour OnLine Transaction Processing. Pour être efficace, il faut concevoir ces bases de données précautionneusement pour garantir leur performance.
Problématiques de l’analyse de données:
Les services de gestions et stratégiques ont besoin d’avoir accès à des données issues des bases de données en production pour prendre des décisions.
Cela entraîne de nombreuses difficultés:
- Avoir accès à des données éparpillées dans des formats différents
- Les regrouper dans une base de données dédiées à l’analyse de données
Les conceptions de bases de données OLTP ne sont plus adaptées: on veut avant tout pouvoir analyser efficacement les données.
Un autre type conception de base de données peut être utilisée: on parle de bases de donnée OLAP pour OnLine Analytical Processing.
En pratique, les données sont versées dans l’entrepôt de données à intervalle réguliers (journalier, hebdomadaire, …) mais pas en continue pour éviter les conflits liés à l’écriture concurrente.
De l’indexation aux entrepôts de données
La situation classique est d’avoir des sources de données éparpillées en production dans des technologies de bases de données variées, qu’on regroupe dans une base de données spécialisés dans les requêtes d’agrégations.
- Etape 1: Nettoyer, extraire et transformer les données issu des bases en productions
- Étape 2: Charger les données dans une base de données dédiées
- Étape 3: les données pour en accélérer l’analyse.
Analyse multidimensionnel dans un entrepôts de données
Les données présentes dans une base de données OLAP sont structurées en fonction de différentes dimensions d’analyse qui dépendent de la situation à analyser.
Lorsque le nombre de dimensions à analyser est de un ou deux, on peut réaliser un simple tableau croisé.
Exemple.
Dans le TD2 nous avons étudié une table comprenant une entrée pour chaque naissance en France en 2017. Il s’agit d’une table contenant beaucoup d’information, pas toujours très pertinente pour l’analyse.
sexe | anais | mnais | depnais | jrecp | mrecp | arecp | jrecm | mrecm | arecm | jrecc | mrecc | arecc | agemere | agexactm | indlnm | situatmr | indnatm | depdom | tudom | tucom | agepere | agexactp | indlnp | situatpr | indnatp | amar | dmarnais | accouchr | nbenf | durecevp | originom | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
index | ||||||||||||||||||||||||||||||||
0 | 2.0 | 2017.0 | 1.0 | 01 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 34.0 | 33.0 | 4.0 | S | 2.0 | 99 | 9.0 | 41.0 | 40.0 | 4.0 | S | 2.0 | 2014.0 | 1 | ES | 1.0 | 02 | 1 | |
1 | 1.0 | 2017.0 | 3.0 | 01 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 14.0 | 2.0 | 2017.0 | 35.0 | 34.0 | 4.0 | S | 2.0 | 99 | 9.0 | 45.0 | 44.0 | 1.0 | S | 1.0 | 0.0 | ES | 1.0 | 1 | |||
2 | 2.0 | 2017.0 | 12.0 | 02 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 34.0 | 34.0 | 4.0 | S | 2.0 | 99 | 9.0 | 33.0 | 33.0 | 4.0 | S | 2.0 | 2011.0 | 2 | ES | 1.0 | 02 | 1 | |
3 | 2.0 | 2017.0 | 9.0 | 02 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 33.0 | 33.0 | 4.0 | S | 2.0 | 99 | 9.0 | 33.0 | 32.0 | 4.0 | S | 2.0 | 2014.0 | 1 | ES | 1.0 | 03 | 1 | |
4 | 1.0 | 2017.0 | 5.0 | 03 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 29.0 | 29.0 | 1.0 | 1.0 | 99 | 9.0 | 29.0 | 29.0 | 1.0 | NS | 1.0 | 2009.0 | 1 | ES | 1.0 | 05 | 1 |
Le TD demandait de construire un tableau croisé du nombre de naissance en fonction du mois et du département. Une proposition de correction utilisant Pandas peut être trouvé ici. Nous avons étudié plusieurs tableaux croisés issue de cette table:
- Le nombre de naissance par département en fonction du mois de naissances et du sexe.
- Le nombre de naissances en fonction de l’age de la mère (et du père) et du départements de naissances
- Le nombre de naissance en fonction de l’age de la mère et du mois de naissances.
Le cube OLAP
La plupart des données qu’on consulte sont sous la forme de tables: des lignes d’arités fixées où chaque colonne contient une information.
Nous avons vu pour l’instant comment il était possible de gérer de grosses tables afin d’en extraire des tableaux croisées.
L’intérêt des tableaux croisés est de facilité l’analyse de données en ne présentant que deux dimensions d’analyses mise en relations par rapport à un opérateur d’agrégation.
Le cube OLAP est une formalisation de comment extraire ces tableaux croisés à partir de table. Des points de vocabulaire:
- Les tables de faits recensent des faits observés sans analyses particulières.
- Chaque faits peuvent être découpés en dimensions d’analyses plus ou moins homogènes.
- Chaque paires de dimensions regroupent un ensemble de faits. Une paire de dimensions et une fonction d’agrégation nous donne un tableau croisés d’analyse.
- Une rotation consiste à fixer une dimension et à modifier l’autre (on fait tourner le cube).
- Une projection consiste à projeter le cube dans une des dimensions en fixant des valeurs admissibles.
- Agréger/desagréger une dimensions consiste à regrouper des valeurs proches où on contraire exploser des regroupement. Cela permet par exemple d’affiner une analyse ou de regrouper des valeurs proches.
TD3
Vous trouverez à l’adresse suivante la base sirene de la métropole lilloise. Il s’agit d’une base de données de toutes les entreprises de la métropole. Ce fichier n’est pas trop gros (~500 mo). La base de donnée nationale est beaucoup plus volumineuse et nécessiterait un traitement spécifique.
Vous pouvez vérifier que le téléchargement s’est bien passé à l’aide
de la commande md5sum
qui devrait vous retourner
08e751b6664f85e9d3b709de7502e0ce
. La commande
wget
peut également être utile pour éviter la mise en cache
par le navigateur web d’une version corrompue.
En explorant ce fichier, construisez une dataframe Pandas qui modélise un cube d’analyse contenant les dimensions d’analyses suivantes: le nombre d’employé, par communes, en fonction de l’activité de l’établissement, de sa date de création et d’éventuelle fermeture. Vous proposez des fonctions permettant d’agréger les communes par population et les dates par mois et par années.
Compiled the: mer. 04 sept. 2024 12:49:40 CEST