Cette deuxième activité sur l'ETL a pour objectif d'implémenter des processus plus complexes visant notamment la création d'une table passerelle.

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.

Schéma dimensionnel
Schéma dimensionnel de la base de données dimensionnelle des pesticides dans les eaux souterraines

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.
Logical Datamap
Logical Datamap spécifiant la transformation des données (cliquez pour agrandir)

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.

Extrait de la dimension Pesticide
Extrait de la dimension Pesticide

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.

Schéma dimensionnel
Schéma dimensionnel et extraits des données de la base de données dimensionnelle des pesticides dans les eaux souterraines (cliquez pour agrandir)

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 groupe 11)
  • 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 :