Les différentes étapes pour construire le processus ETL générant la dimension Station

Import des Données

La lecture de la logical datamap montre que nous allons utiliser les sources de données suivantes :

  • stations.csv
  • departments_regions_france_2016.csv
  • stations_sage.csv qui est le résultat du traitement préalable du fichier de données géographiques sage_metropole-shp
  • stations_coord.csv qui est le résultat du traitement préalable des coordonnées présentes dans le fichier stations
Logical Datamap
Logical Datamap spécifiant la transformation des données (cliquez pour aggrandir)

Qualité des données

La première étape est l’exploration des données pour en évaluer la qualité. Une analyse rapide nous permet d’identifier 2 problèmes :

  • Les stations ayant des coordonnées à 0 dans le système de Lambert93 vont se retrouver en plein milieu de l’Atlantique. Il s’agit d’une erreur et nous allons supprimer ces stations (une approche plus judicieuse aurait été de retrouver les bonnes coordonnées).
  • Selon la source de données les numéros de départements n’ont pas la même casse (2A et 2a) : nous allons convertir tout ces champs en champs textuels en majuscules.

Processus ETL

Commencez par créer un nouveau projet EasyMorph.

Traitement du fichier departement_regions_france_2016.csv

Commençons par corriger le format des numéros de départements dans le fichier departement_regions_france_2016.csv. Nous allons appliquer le processus suivant en ajoutant de nouvelles actions :

  1. Importez le fichier departement_regions_france_2016.csv en le glissant-déposant dans la fenêtre principale ou avec Add data > Import file > Import delimited text file dans le bandeau d’outils. Assurez-vous que les paramètres d’import soient bien configurés, notamment l’encoding en UTF-8 (nécessaire ici) et la virgule comme séparateur de champ (détails).
  2. Convertissez le champ du numéro de département en champ textuel à l’aide de l’action Convert data type (détails). Vous pouvez aussi obtenir le même résultat par un clic droit sur le libellé de la colonne departmentCode, puis en sélectionnant Convert data type > Everything to Text.
  3. Transformez en lettre majuscules toutes les valeurs du champ du numéro de département à l’aide de l’action Modify column(s) ou par un clic droit sur departmentCode en choisissant Modify > UPPERCASE (détails).
Processus de traitement du fichier `departement_regions_france_2016.csv`
Processus de traitement du fichier `departement_regions_france_2016.csv`

Traitement du fichier stations.csv

Suivez les étapes suivantes pour générer la dimension dim_station :

  1. Importez le fichier stations_coord.csv. Assurez-vous que les paramètres d’import soient bien configurés, notamment l’encoding en UTF-8 et la virgule comme séparateur de champ (détails).
  2. Importez le fichier stations_sage.csv. Assurez-vous que les paramètres d’import soient bien configurés, notamment l’encoding en UTF-8 et le point-virgule comme séparateur de champ (détails).
  3. Importez le fichier stations.csv. Assurez-vous que les paramètres d’import soient bien configurés, notamment l’encoding en UTF-8 et le point- virgule comme séparateur de champ (détails).
  4. Filtrez et supprimez les lignes pour lesquelles les coordonnées sont erronées, c’est à dire que le champ X_FICT_L93 est à 0 (détails).
  5. Récupérez les informations concernant les coordonnées des stations. Pour cela, faites une jointure gauche entre stations.csv et stations_coord.csv sur CD_STATION à l’aide de l’action Merge another table, et récupérez les colonnes lat et long. Nous utilisons une jointure gauche afin que toutes les stations de stations.csv soient conservées et associées à leur latitude et longitude ou à la valeur NULL si elle n’existe pas dans stations_coord.csv. Dans le cas présent toutes les stations sont bien présentes (détails).
  6. Pour résoudre le problème de qualité des données sur les numéros de département, convertissez le champ du numéro de département en champ textuel (détails).
  7. Récupérez les informations concernant les départements et régions associés à chacune des stations. Pour cela, faites une jointure gauche entre stations.csv et departments_regions_france_2016.csv sur NUM_DEP/departmentCode, et récupérez les colonnes departmentName, regionCode et regionName (détails).
  8. Récupérez le SAGE associé à chacune des stations. Pour cela, faites une jointure gauche entre stations.csv et stations_sage.csv sur CD_STATION, et récupérez les colonnes NOM et Code (détails).
  9. Ajoutez maintenant une clef artificielle auto-incrémentée à la table à l’aide de l’action Enumerate rows. Cette étape est indispensable pour nous isoler de la numérotation métier sur laquelle nous n’avons aucun contrôle (détails).
  10. Pour respecter la terminologie de la logical datamap, renommez les colonnes à l’aide de l’action Rename columns (détails).
  11. A l’aide de l’action Keep/remove columns supprimez les colonnes qui ne sont pas documentées dans la logical datamap (détails).
  12. Réordonnez les colonnes selon le même ordre que la logical datamap. Pour cela allez dans la fenêtre active montrant un extrait des données et déplacez directement les colonnes.
  13. A l’aide de l’action Export into delimited text file exportez la dimension dans un fichier dim_station.csv (détails).
Processus de construction de la dimension `Station`
Processus de construction de la dimension `Station`.

Exécution du processus

Dans le bandeau d’outils cliquez sur Run project pour exécuter le processus ETL. Vérifiez que le fichier dim_station.csv a bien été généré.

Retour au processus ETL global