Examen pratique et correction
Introduction
Dans ce chapitre, il s’agit d’exécuter un projet commercial qui comprend la plupart des actions effectuées en environnement professionnel. Avant de commencer cet atelier, assurez-vous de comprendre tous les concepts de base afin de comprendre l’objectif de ce projet.
Les données seront extraites de la base de données source (SRC) et filtrées à l’aide du tMap pour remplir la base de données intermédiaire (STG). Deux bases de données de sortie, à savoir les refus et les alertes, seront créées au format de fichier délimité. Ensuite, ces données agrégées seront chargées dans la base de données DWH.
Spécifications
Il s’agit de construire un petit entrepôt de données (Data Warehouse, DWH) pour un opérateur de téléphonie mobile (cette fonctionnalité a bien sûr été choisie comme exemple).
Le chargement se fera en trois phases : d’abord, l’espace de staging est chargé, l’espace est validé, puis l’entrepôt de données est chargé à partir de l’espace de staging.
Cette architecture permet de qualifier les données avant qu’elles ne soient finalement chargées et d’obtenir des données stables lorsque des événements se produisent.
La spécification doit être lue dans son intégralité avant de commencer tout développement.
Architecture du développement des jobs
Sources
Ce chapitre décrit les structures des sources qui vont être manipulées durant la formation.
Les sources de données sont hétérogènes (base Oracle et fichiers plats).
1. Données de référence Client
-
Source : fichier plat
-
Le séparateur de champ est le point-virgule. La première ligne du fichier est le nom des champs.
Données de référence Client
2. Données de référence Offre
-
Source : fichier plat
-
Le séparateur de champ est le point-virgule. La première ligne du fichier est le nom des champs.
Données de référence Offre
3. Données de référence Direction
-
Source : table Oracle - SRC_REFDIRECTION
Données de référence Direction
4. Données de référence Distance
-
Source : table Oracle - SRC_REFDISTANCE
Données de référence Distance
5. Données de référence Produit
Données de référence Produit
6. Données de fait Appels
-
Source : fichier plat
Données de fait Appels
Chargements
Cette section décrit les actions et contrôles à effectuer pour le chargement des données.
1. Description des actions à effectuer
Ce tableau récapitule les différents types d’actions rencontrés dans les associations entre les données sources et les données cibles.
2. Structure de l’espace de travail
Les données ont été chargées dans un espace de travail avec des tables temporaires dont la structure est la même que celle des sources. Ceci a été fait dans le but d’appliquer des règles de formatage et d’effectuer des contrôles de cohérence sur les données.
Structure de l’espace de travail
3. Liste des chargements de l’espace de travail (Staging Area)
Ce planning fournit l’ordre des étapes d’extraction des tables, mais il est à noter que les tables peuvent être chargées indépendamment les unes des autres (à l’exception des deux dernières qui dépendent des données d’autres tables). La façon d’exécuter des flux indépendants en parallèle sera expliquée ultérieurement.
Liste des chargements de l’espace de travail (Staging Area)
Chargement #1 - Direction
Chargement Direction
Chargement #2 - Distance
Chargement Distance
Chargement #3 - Produit
Chargement Produit...
Structure du Data Warehouse
Le Data Warehouse est la base finale qui sera accessible aux utilisateurs. Elle contiendra les données atomiques enrichies ainsi que deux tables agrégées.
Structure du Data Warehouse
Liste des chargements du Data Warehouse
Cette section décrit les traitements et les règles de gestion à effectuer sur les colonnes de chaque table.
-
Chargement de DWH_REF_DIRECTION
Chargement de DWH_REF_DIRECTION
-
Chargement de DWH_REF_PRODUIT
Chargement de DWH_REF_PRODUIT
-
Chargement de DWH_REF_DISTANCE
Chargement de DWH_REF_DISTANCE
-
Chargement de DWH_REF_OFFRE
Chargement de DWH_REF_OFFRE
-
Chargement de DWH_REF_CLIENT
Chargement de DWH_REF_CLIENT
-
Chargement de DWH_FAIT_APPEL
Premier chargement de DWH_FAIT_APPEL
Deuxième chargement de DWH_FAIT_APPEL
-
Chargement de DWH_AGG_APPEL_PRD
Agrégation de la table DWH_FAIT_APPEL
-
Chargement de DWH_AGG_APPEL_DISTANCE
Agrégation de la table DWH_FAIT_APPEL
Correction de l’examen
1. Chargement SRC vers STG
a. JOB_DIRECTION_SRC_STG
Chargement de la table STG_REF_DIRECTION depuis la base de données source SRC_REFDIRECTION
Filtre sur IDD_DIRECTION avec la condition que ID_DIRECTION soit supérieur à zéro
Chargement Direction
b. JOB_DISTANCE_SRC_STG
Chargement de la table STG_REF_DISTANCE depuis la base de données source SRC_REFDISTANCE
Filtre sur LIB_DISTANCE
-
Filtre 1 : si le champ est NULL, mettre à Non renseigné avec la fonction nvl.
-
Filtre 2 : sélectionner seulement les lignes où ID_Distance est supérieur ou égal à zéro OU inférieur à zéro (doit être un entier positif ou négatif).
Chargement Distance
c. JOB_PRODUIT_SRC_STG
Capture du job
Filtre sur les colonnes de Produit
-
Filtre1 : si la ligne de la colonne LIB_PRODUIT est NULL, remplacer par Inconnu sinon sélectionner sa valeur.
-
Filtre2 : mettre les lignes de la colonne LIB_PRODUIT en majuscules.
-
Filtre 3 : sélectionner seulement les lignes où ID_Produit est positif.
Chargement Produit
2. Mapping FILE VERS STG
a. JOB_OFFRE_FILE_STG
JOB_OFFRE_FILE_STG
Chargement Offre
Paramétrage et filtres du tMap JOB_OFFRE_FILE_STG
b. JOB_CLIENT_FILE_STG
Chargement Client
JOB_CLIENT_FILE_STG
tMap du JOB
Expression sur PRENOM_CLIENT
Expression sur DATE_ABONNEMENT
Test console CMD pour connaître le type de la date système
Paramètres des sorties rejets et alerte
c. JOB_FAITAPPELS_FILE_STG
Chargement Appel
Chargement Appel (suite)
-
Filtre1 :
-
Id_Client doit exister dans la BDD STG_REF_CLIENT.
-
Un Inner Join est mis en place entre le fichier en entrée et la base de données, et la clé étrangère est ajoutée dans STG_REF_CLIENT par glisser-déposer.
-
Filtre2 :
-
La Date.appel doit être renseignée.
-
La case Nullable n’est pas cochée et la condition ci-dessous est ajoutée dans l’expression de la sortie tLog ou base de données.
FAITAPPELS_FILE_.Date_appel !=null
-
Une expression...