-
Notifications
You must be signed in to change notification settings - Fork 1
Reflexions
- On veut pouvoir collecter des données de plein de sources différentes.
- On veut pouvoir stocker ces données et garder un traçabilité d'où elles viennent
- On veut pouvoir effectuer des calculs entre données
- On veut pouvoir analyser les données (collectées et calculées)
- On veut pouvoir définir une campagne de collecte
(à compléter)
- Source de données
- Entrepôt de données
- Calculs
- Analyses
Les sources de données peuvent être de plusieurs types :
- un formulaire à saisir par un utilisateur
- un fichier de données (Excel, XML, …)
- des données postées à notre webservice
- des paramètres
Une source de données fournit des données sources contenant :
- une valeur
- le type de la valeur (numérique, booléen, texte, …)
- des informations de traçabilité
L'entrepôt de données est organisé avec une structure organisationnelle. La structure organisationnelle possède un niveau d'axe le plus fin qui contient des cellules représentant par exemple :
- des sites
- des projets
- des produits
L'axe le plus fin peut être agrégé par d'autres axes plus grossiers (pays, marque, filiale, …). Cela crée un arbre, avec à la racine, un seul axe de niveau le plus fin.
Les notions de catégories et de temps ne font pas partie de la structure organisationnelle.
Les cellules peuvent contenir des données indexées par des clés textuelles uniques. Chaque donnée contient :
- une valeur
- le type de la valeur (numérique, booléen, texte, …)
- des informations de traçabilité
- une plage temporelle (mais peut-être infinie aussi)
Pour alimenter une donnée dans une cellule, il faut démarrer une collecte de données. Une collecte est définie dans une cellule (de haut niveau généralement) et décrit :
- quelle source de données utiliser
- à quel niveau insérer les données (par ex. au niveau des sites)
- la plage de temps des données récupérées (par ex. l'année)
- est-ce que la collecte est répétée (par ex. d'année en année, ou d'heure en heure pour un relevé automatique)
Les paramètres sont donc stockés dans le data store, et peuvent par exemple être saisis à la main (avec un formulaire) ou importés d'une bibliothèque de paramètres existante.
Chaque donnée peut être temporelle, ou pas (plage temporelle infinie). Cela signifie donc que les paramètres peuvent être intemporels (e.g. coefficients figés) ou temporels (e.g. facteurs d'émissions ajustés chaque année).
Un calcul définit des opérations entre des données. Il n'a pas de notion de temps, et il s'applique à l'ensemble d'un entrepôt de données.
Un calcul identifie une donnée à l'aide de la clé de la donnée dans une cellule.
Chaque calcul est appliqué à toutes les cellule. Si une donnée/clé est introuvable dans une cellule, alors celle-ci est ignorée. Cela permet de gérer les calculs de manière globale et indépendamment des cellules/de la structure organisationnelle. Cela permet également de bien supporter les cas où des collectes ne sont pas terminées, et donc que toutes les données ne sont pas encore récupérées.
Les résultats des calculs ne sont pas stockés dans l'entrepôt de données (c'est à dire qu'un calcul n'est pas une source de données). Cela reste à discuter, ça n'est pas définitif. Cela n'empêche pas non plus que techniquement il y'ait un cache sur les résultats des calculs (considération technique non relevante ici).
L'étape d'indexation n'est pas encore très bien définie : est-ce qu'elle est indépendante de l'analyse ? Des calculs ?
L'indexation va indexer des données : données de l'entrepôt ou résultats de calculs. Les données indexées peuvent ensuite être analysées.
L'indexation se fait selon des axes. Il peut y'avoir plusieurs sources d'axes d'indexation :
- la structure organisationnelle fournit des axes d'indexation
- des indicateurs qui fournissent également des axes
- des axes personnalisés au projet (par exemple des catégories)
Le module d'analyse prend des données indexées et permet de générer des analyses/rapports.
Les analyses se font selon les axes d'indexation, et également selon une granularité temporelle. Comme chaque donnée (de l'entrepôt ou résultat de calcul) s'applique à une plage temporelle, il est possible d'agréger les données temporellement de manière très libre.
Il est par exemple possible de mélanger dans un même graphique des données valables pour une année entière, et des données relevées chaque heure : en analysant avec une granularité d'année, les données seront agrégées par années (somme), en analysant à la granularité de l'heure les données valable pour l'années entière seront ajustées (sous forme de moyenne horaire).