Schéma dimensionnel
Dans cette deuxième partie concernant l’ETL, nous allons nous intéresser à la version complète du schéma dimensionnel étudié dans l’activité Modélisation dimensionnelle - Partie 2. Celui-ci prend donc bien en compte le fait que chaque pesticide soit associé à plusieurs fonctions.
Le schéma dimensionnel à réaliser est présenté sur la figure ci-dessous. Il explicite la structure en tables de faits et dimensions que vos processus ETL devront créer.
Logical datamap
La logical datamap présentée ci-dessous est une évolution de la logical datamap présentée en première partie. Voici les principales évolutions :
- Ajout de la table passerelle
Groupe Fonction
. - Ajout d’une clef dans la dimension
Pesticides
. - Ajout de la dimension
Fonction
.
Données
Téléchargement des données.
Création des processus ETL pour améliorer la gestion des pesticides
Nous allons maintenant mettre à jour nos processus pour prendre en compte la problématique des fonctions associées aux pesticides.
Pour l’installation et la présentation de l’environnement de travail, consultez la section Mise en route de la première partie.
Rappel du contexte
Si nous observons un extrait de la dimension pesticide actuelle (image ci-dessous), nous pouvons nous rendre compte d’un problème au niveau de la description de la fonction d’un pesticide. Si nous prenons l’exemple du Dinitrocrésol
, ce pesticide est utilisé pour ses fonctions insecticide, acaricide, fongicide et herbicide comme l’indique l’acronyme IAFH
. Cela n’est pas satisfaisant car nous aimerions, par exemple, pouvoir simplement filtrer nos données sur les insecticides.
Un pesticide ayant plusieurs fonctions une solution serait d’ajouter autant d’attributs booléen que de fonctions possibles au sein de la dimension. Nous n’allons pas retenir cette solution car elle manque de généricité (si nous voulons ajouter de nouvelles fonctions) et complexifie l’exploitation de nos tableaux de bords (avec une quinzaine de variables booléennes plutôt qu’une seule indiquant la fonction). La solution pour gérer cette cardinalité de type “plusieurs à plusieurs” (un pesticide a plusieurs fonctions et une fonction concerne plusieurs pesticides) est d’utiliser un patron de données appelé “Table passerelle” (Bridge Table en anglais). La table dimensionnelle Groupe Fonction
est donc une table passerelle dans le schéma dimensionnel de nos données.
Le schéma ci-dessus met en évidence que désormais que :
- un pesticide a un unique groupe de fonctions (le pesticide
Dinitrocrésol
appartient au groupe11
) - un groupe de fonctions concerne plusieurs fonctions (le groupe
11
a 4 différentes fonctions)
Ainsi :
- certaines lignes de pesticides sont associées à plusieurs lignes de la table passerelle
Groupe Fonction
- chaque ligne de la table passerelle
Groupe Fonction
est rattachée à une unique fonction.
Processus à implémenter
Nous allons implémenter pas à pas le mécanisme de table passerelle. Attention ! Pour chacune des pages suivantes vous devez créer un nouveau projet EasyMorph :