L'entreposage des données (DWH) est crucial dans un environnement commercial où des
informations précises, sûres et à jour sont nécessaires pour les opérations d’une
organisation. La mise en œuvre d'un processus ETL complet aide à extraire les données de
sources hétérogènes vers l'entrepôt de données de manière pratique, en mettant l'accent
sur les phases de cartographie et de modélisation du processus ETL. Les fonctionnalités
ETL faciliteront la mise à disposition de données cohérentes pour la génération de
rapports afin de prendre les meilleures décisions.
Objectif de l’étude
L’objectif de ce projet est de tester L’ETL Informatica Powercenter avec un SGBD Oracle
11g. Dans cette étude, nous allons implémenter un prototype d’une chaîne décisionnelle
avec un Data Warehouse. L’objectif est la mise à disposition aux décideurs des données
cohérentes et structurées afin de pouvoir générer des rapports qui permettrons une
meilleure prise de décision.
Définition
L’informatique décisionnelle ou le Business Intelligence (BI) combine l'analyse
d'entreprise, l'exploration de données, la visualisation de données, les outils et
l'infrastructure de données, ainsi que les meilleures pratiques pour aider les organisations
à prendre davantage de décisions basées sur les données.
Bien plus qu'une "chose" spécifique, la business intelligence est plutôt un terme
générique qui couvre les processus et les méthodes de collecte, de stockage et d'analyse
des données provenant des opérations ou des activités de l'entreprise afin d'optimiser les
performances. Tous ces éléments sont réunis pour créer une vue d'ensemble d'une
entreprise et aider les gens à prendre des décisions plus judicieuses et exploitables. Au
cours des dernières années, la veille stratégique a évolué pour inclure davantage de
processus et d'activités visant à améliorer les performances.
Processus et activités
Data mining : Utilisation de bases de données, de statistiques et de l'apprentissage
automatique pour découvrir des tendances dans de grands ensembles de données.
Établissement de rapports : Partager l'analyse des données avec les parties prenantes
afin qu'elles puissent tirer des conclusions et prendre des décisions.
Mesures de la performance et analyse comparative : Comparer les données de
performance actuelles aux données historiques pour suivre les performances par rapport
aux objectifs, généralement à l'aide de tableaux de bord personnalisés.
Analyse descriptive : Utilisation d'une analyse préliminaire des données pour déterminer
ce qui s'est passé.
Interrogation : Poser des questions spécifiques sur les données et extraire les réponses
des ensembles de données.
Analyse statistique : Prendre les résultats de l'analyse descriptive et explorer davantage
les données à l'aide de statistiques, par exemple pour savoir comment et pourquoi cette
tendance s'est produite.
Visualisation des données : Transformation de l'analyse des données en représentations
visuelles telles que des diagrammes, des graphiques et des histogrammes afin de faciliter
l'utilisation des données.
Analyse visuelle : Exploration des données par le biais de récits visuels pour
communiquer des idées à la volée et rester dans le flux de l'analyse.
Préparation des données : Compiler plusieurs sources de données, identifier les
dimensions et les mesures, les préparer pour l'analyse des données.
L’importance de L’informatique décisionnelle
Le Business Intelligence peut aider les entreprises à prendre de meilleures décisions en
montrant les données actuelles et historiques dans leur contexte commercial. Les
analystes peuvent tirer parti de la BI pour fournir des repères sur les performances et les
concurrents afin de rendre l'organisation plus fluide et plus efficace. Les analystes
peuvent également repérer plus facilement les tendances du marché pour augmenter les
ventes ou les revenus. Utilisées efficacement, les bonnes données peuvent être utiles
dans tous les domaines, de la conformité aux efforts de recrutement. Voici quelques
façons dont la veille stratégique peut aider les entreprises à prendre des décisions plus
intelligentes, fondées sur des données :
Caractéristiques
Orienté sujet
Un entrepôt de données est orienté vers un sujet car il offre des informations concernant
un thème au lieu des opérations courantes des entreprises. Ces sujets peuvent être les
ventes, le marketing, les distributions, etc.
L’ entrepôt de données fournit également une vue simple et concise autour d'un sujet
spécifique en excluant les données qui ne sont pas utiles pour soutenir le processus de
décision.
Intégré
Dans un entrepôt de données, l'intégration signifie l'établissement d'une unité de mesure
commune pour toutes les données similaires provenant de bases de données
dissemblables. Les données doivent également être stockées dans l'entrepôt de données
d'une manière commune et universellement acceptable.
Cette intégration contribue à une analyse efficace des données. Il faut assurer la
cohérence des conventions de nommage, des mesures d'attributs, de la structure de
codage, etc.
Variable dans le temps
Dans un Data Warehouse, les données sont historisées. Un entrepôt de données contient
des données passées qui peuvent être interrogées et analysées sur une période donnée.
Cela contraste avec une base de données transactionnelle qui peut ne contenir que des
données actuelles (c'est-à-dire que les anciennes données ont été déplacées ou
supprimées).
Par exemple, une entreprise peut utiliser un entrepôt de données pour consulter toutes
les adresses passées de ses clients. Elle souhaite peut-être trouver tous les clients qui ont
vécu dans une zone particulière. Une base de données transactionnelle peut ne pas
contenir toutes les adresses passées, mais seulement l'adresse actuelle.
Non-volatile
Cela signifie que les données d'un entrepôt de données ne doivent pas changer. Une fois
qu'elles ont été ajoutées à l'entrepôt, elles doivent rester tel quelle. Les données sont en
lecture seule et sont rafraîchies périodiquement. Cela permet également d'analyser les
données historiques et de comprendre ce qui s'est passé et quand. Il ne nécessite pas de
processus de transaction, de récupération et de mécanismes de contrôle de la
concurrence.
Les activités comme la suppression, la mise à jour et l'insertion qui sont effectuées dans
un environnement d'application opérationnelle sont omises dans l'environnement de
l'entrepôt de données. Les deux seuls types d'opérations effectuées dans l'entrepôt de
données sont les suivants : le chargement des données, l'accès aux données.
Architecture du Datawarehouse
Il existe 3 approches pour construire les couches d'un entrepôt de données : Un seul
niveau, deux niveaux et trois niveaux.
Architecture à un seul niveau : L'objectif d'une couche unique est de minimiser la
quantité de données stockées. Ce but est de supprimer la redondance des données. Cette
architecture n'est pas fréquemment utilisée dans la pratique.
Architecture à deux niveaux : L'architecture à deux couches est l'une des couches de
l'entrepôt de données qui sépare les sources physiquement disponibles et l'entrepôt de
données. Cette architecture n'est pas extensible et ne supporte pas non plus un grand
nombre d'utilisateurs finaux. Elle présente également des problèmes de connectivité en
raison des limitations du réseau.
Architecture d'entrepôt de données à trois niveaux : Il s'agit de l'architecture DW la plus
courante. Elle se compose d'un niveau supérieur, d'un niveau intermédiaire et d'un
niveau inférieur.
Composants du Datawarehouse
Nous allons apprendre les composants de l'entrepôt de données et l'architecture de
l'entrepôt de données avec le diagramme ci-dessous :
Mais dans un entrepôt de données, les ensembles de données sont stockés dans des tables,
chacune d'entre elles ne pouvant organiser les données que dans deux de ces dimensions à la fois.
L'OLAP extrait les données de plusieurs ensembles de données relationnelles et les réorganise
dans un format multidimensionnel qui permet un traitement très rapide et une analyse très
perspicace.
Le cube OLAP : Au cœur de la plupart des systèmes OLAP, le cube OLAP est une base de données
multidimensionnelle basée sur des tableaux qui permet de traiter et d'analyser des données
multidimensionnelles beaucoup plus rapidement et efficacement qu'une base de données
relationnelle traditionnelle.
Un tableau de base de données relationnelle est structuré comme une feuille de calcul, stockant
des enregistrements individuels dans un format bidimensionnel, ligne par colonne. Chaque "fait"
de la base de données se situe à l'intersection de deux dimensions - une ligne et une colonne -
comme la région et le total des ventes.
Le roll up : Le roll up est l'opposé de la fonction drill-down : il permet d'agréger les données d'un
cube OLAP en remontant dans la hiérarchie des concepts ou en réduisant le nombre de
dimensions. Par exemple, vous pouvez remonter dans la hiérarchie des concepts de la dimension
"emplacement" en visualisant les données de chaque pays, plutôt que de chaque ville.
Slice and dice : L'opération de découpage crée un sous-cube en sélectionnant une seule
dimension dans le cube OLAP principal. Par exemple, vous pouvez effectuer un slice en mettant en
évidence toutes les données du premier trimestre fiscal ou calendaire de l'organisation
(dimension temps).
L'opération dice isole un sous-cube en sélectionnant plusieurs dimensions dans le cube OLAP
principal. Par exemple, vous pouvez effectuer une opération en dés en mettant en évidence
toutes les données par trimestre civil ou fiscal d'une organisation (dimension temporelle) et au
sein des États-Unis et du Canada (dimension géographique).
Pivot : La fonction pivot fait pivoter la vue actuelle du cube pour afficher une nouvelle
représentation des données, ce qui permet d'obtenir des vues multidimensionnelles dynamiques
des données. La fonction de pivot OLAP est comparable à la fonction de tableau croisé dynamique
des tableurs, comme Microsoft Excel, mais alors que les tableaux croisés dynamiques dans Excel
peuvent être difficiles à utiliser, les pivots OLAP sont relativement plus faciles à utiliser (moins
d'expertise est nécessaire) et ont un temps de réponse et des performances de requête plus
rapides.
La principale différence entre l'OLAP et l'OLTP réside dans le nom : l'OLAP est de nature
analytique, tandis que l'OLTP est transactionnel.
Les outils OLAP sont conçus pour l'analyse multidimensionnelle des données d'un entrepôt de
données, qui contient à la fois des données transactionnelles et historiques. En fait, un serveur
OLAP est généralement le niveau intermédiaire, analytique, d'une solution d'entreposage de
données. Les utilisations courantes de l'OLAP comprennent l'exploration de données et d'autres
applications de veille économique, les calculs analytiques complexes et les scénarios prédictifs,
ainsi que les fonctions de reporting d'entreprise telles que l'analyse financière, la budgétisation et
la planification des prévisions.
OLTP est conçu pour prendre en charge les applications orientées transactions en traitant les
transactions récentes aussi rapidement et précisément que possible. Les utilisations courantes de
l'OLTP comprennent les guichets automatiques, les logiciels de commerce électronique, le
traitement des paiements par carte de crédit, les réservations en ligne, les systèmes de
réservation et les outils d'archivage.
Un schéma est une description logique qui décrit l'ensemble de la base de données. Dans
l'entrepôt de données, il comprend le nom et la description des enregistrements. Il
contient tous les éléments de données et également différents agrégats associés aux
données. Comme une base de données a un schéma, il est nécessaire de maintenir un
schéma pour un entrepôt de données également. Il existe différents schémas basés sur la
configuration et les données qui sont gérées dans un entrepôt de données.
Schéma en étoile : Dans un schéma en étoile, comme la structure d'une étoile, il y a une
table de faits au milieu et un certain nombre de tables de dimensions associées. Cette
structure ressemble à une étoile et c'est pourquoi on l'appelle un schéma en étoile.
La table de faits est constituée des informations primaires de l'entrepôt de données. Elle
entoure les petites tables de consultation des dimensions qui contiennent les détails des
différentes tables de faits. La clé primaire qui est présente dans chaque dimension est liée
à une clé étrangère qui est présente dans la table de faits.
Cela signifie que la table fact a deux types de colonnes ayant des clés étrangères pour les
tables de dimensions et les mesures qui contiennent des données numériques. Au centre
de l'étoile, il y a une table de faits et les points de l'étoile sont les tables de dimensions.
Les tables de faits sont en forme 3NF et les tables de dimensions sont en forme
dénormalisée. Chaque dimension du schéma en étoile doit être représentée par une seule
table unidimensionnelle. La table de dimension doit être jointe à une table de faits. La
table de faits doit avoir une clé et une mesure.
Le contexte de projet
Pour réussir dans un paysage hautement concurrentiel, la banque X veut comprendre les
comportements de ses clients et savoir où se trouvent les futures opportunités.
Pour y parvenir, les responsables cherchent à mettre en place un système décisionnel
basé sur un Data Warehouse. Le but est de pouvoir gérer et d'analyser efficacement les
données. D'une part, ces dernières doivent être exacts afin de ne pas prendre de
décision sur la base d'informations incorrectes. D'autre part, le futur système doit être
capable de traiter une grande quantité de données.
La fonction de ce nouveau système est de consolider les données et les règles de logique
commerciale pratiquées par la banque. Il permet d'en savoir plus sur les clients,
notamment sur leurs habitudes et modèles d'achat. Le fonctionnement de la banque peut
être compris dans une perspective historique, ce qui permet de mieux suivre les
tendances commerciales et d'y répondre, facilite les efforts de prévision et de
planification, et conduit ainsi à des décisions commerciales stratégiques.
Le but initial du projet est de construire un système capable de produire une meilleure
analyse des comptes bancaires. Autrement dit, un système capable de faire des
découpages en tranches et en dés des produits bancaires (comptes, clients, agences…).
Autrement dit, mettre en place d’une solution sous forme d’une source unique
d'informations intégrées, visant à guider les processus analytiques et opérationnels de la
Banque (reporting)
Les produits offerts par la banque:
Comptes chèques
Comptes d'épargne
Prêts immobiliers
Prêts personnels
Cartes de crédit
Coffres-forts ou casiers
Domaines d'activité :
Comptes chèques
Comptes d'épargne
Prêts hypothécaires
Prêts personnels
Cartes de crédit
systèmes sources :
C'est l'un des services de base fournis par la Banque. Il est nécessaire pour l'analyse et
la comparaison des comptes, l'historique des données clients et la comparaison des
soldes.
Entrées : Numéro de compte, nom du client, montant du crédit/débit, solde,
date.
Sorties : N° de compte, Nom du client, solde (PB), Date
b. Comptes d'épargne
Synopsis:
Ce service est nécessaire pour l'analyse et la des comptes, et la comparaison des
soldes.
Entrées : nom du client, montant du crédit, montant du débit, Numéro de
compte, solde, date.
Sorties : solde, N° de compte, Nom du client, Date
c. Cartes de crédit
Synopsis
Certains clients peuvent demander des services de carte de crédit. Nécessaire pour
l'analyse des transactions par carte de crédit
Entrées : Numéro de carte de crédit, nom du client, montant du crédit,
validité, montant du débit, solde, date, date de remboursement.
Sorties : Numéro de carte de crédit, nom du client, montant du crédit, validité,
montant du débit, solde, date, date de remboursement.
d. Prêts immobiliers
Synopsis
Un client peut demander un prêt immobilier. Un compte de prêt est créé pour les
clients qui le une demande .
Entrées : Numéro de compte de prêt, nom du client, date, montant du prêt,
période de prêt (terme), type d'intérêt, pourcentage d'intérêt, intérêt payé,
date, solde, valeur d'évaluation de la propriété, paiement échelonné, etc.
Sorties : Numéro de compte du prêt, nom du client, date, montant du prêt,
durée du prêt (terme), type d'intérêt, pourcentage d'intérêt, solde.
e. Prêts personnels
Synopsis
Un client peut demander un prêt personnel. Le prêt peut être accordé sur la base des
revenus, et du potentiel de remboursement du client.
Entrées : Numéro de compte de prêt, nom du client, date, montant du prêt,
période de prêt (terme), type d'intérêt, pourcentage d'intérêt, intérêt payé,
date, solde, valeur d'évaluation de la propriété, montant du versement. date,
solde, valeur d'évaluation de la propriété, montant des versements.
Sorties : Numéro de compte du prêt, nom du client, date, montant du prêt,
durée du prêt (terme), type d'intérêt, pourcentage d'intérêt, solde.
Entités
Client
Branche
Compte
Produit
Employé
Ménage
Transaction
Calendrier (Heure)
Agent
1. Client
Synopsis:
C'est un service fourni par la banque. Par exemple, compte d'épargne, compte
chèque, cartes de crédit, cartes de débit, prêt, DD, FD.
Domaine
Gestion des clients, gestion des services bancaires en ligne et en réseau, gestion des
comptes, gestion des guichets automatiques et des cartes de crédit.
2. Employé
Synopsis
Chaque agence compte un certain nombre d'employés. Ici, l'intérêt porte sur les agents
de vente en fonction de leur localisation.
Domaine
Gestion des clients, gestion des services bancaires en ligne et en réseau, gestion des
comptes, gestion des guichets automatiques et des cartes de crédit.
3. Ménage
Synopsis:
Chaque compte individuel est lié à un ménage. Leur gestion nécessite des règles de
gestion pour leurs affecter des comptes. Des services et des produits spécialisés sont
fournis pour répondre à leurs besoins.
Domaine
Gestion des clients, gestion des services bancaires en ligne et en réseau, gestion des
comptes, gestion des guichets automatiques et des cartes de crédit.
4. Transaction
Synopsis
Chaque interaction du client avec la banque est appelée transaction, comme un débit, un
crédit, un retrait, un versement de prêt, un paiement, etc.
Domaine
Gestion des clients, gestion des services bancaires en ligne et en réseau, gestion des
comptes, gestion des guichets automatiques et des cartes de crédit.
Aperçu général
Dans ce qui suit, nous allons présenter la modélisation conceptuelle de la base donnée de
transite (Staging area) ainsi que la conception dimensionnelle du Data Warehouse
Un service bancaire offre un large éventail de produits, notamment :
Comptes chèques
Comptes d'épargne
Prêts immobiliers
Prêts personnels
Cartes de crédit
Coffres-forts ou casiers
Le type et le nombre de produits ou de services fournis par la banque peuvent être
beaucoup plus nombreux, la liste ci-dessus n’es pas exhaustive. Nous allons commencer
par un schéma très simple qui constitue la première étape du système à mettre en œuvre
en tant que projet pilote. Ensuite, le système sera exploré avec plusieurs extensions de
schéma au fur et à mesure.
Les schémas d'extension peuvent inclure le traitement du vaste portefeuille de la banque
et d'un ensemble de produits hétérogènes qui varient en fonction du secteur d'activité
que la banque exerce réellement et selon la portée du système.
Environnement de travail
La donnée en entrée :
Les fichiers ci-dessous représentent un exemple de données source. nous allons les
exploiter afin de produire des modèles visuels de la base de données de transite ainsi que
le modèle dimensionnel.
Le modèle conceptuel de données de la zone de transit (Staging area)
La première destination des données qui ont été extraites de la source est la zone de
transit. Parfois, les zones de transit sont également appelées zones d'atterrissage pour les
fichiers plats, les fichiers XML, Cobol, etc.
Nous avons essentiellement besoin d'une zone de transit pour contenir les données, et
effectuer le nettoyage et la fusion des données, avant de les charger dans l'entrepôt.
En l'absence d'une zone de transit, le chargement des données devra passer directement
du système OLTP au système OLAP, ce qui entravera gravement les performances du
système
OLTP. C'est la raison principale de l'existence d'une zone de transit. En outre, elle offre
également une plateforme pour effectuer le nettoyage des données.
Ci-dessous, le modèle conceptuel de donnée de notre zone de transit retenu:
16
EMPLOYE COMPTE_CLIENT
EMPLOYE_ID <pi> Variable charactersTYPE_DE_COMPTE_NO
(20) <pi>
EMPLOYE_PRENOM Variable charactersCLIENT_ID
(20) <pi>
PRENOM_2_CLIENT Variable charactersDATE_OUVERTURE_COMPTE
(20) TRANSACTION_CLIENT
DEPARTEMENT NOM_CLIENT Variable charactersENTREPRISE
(20) TRANSACTION_BANQUE_ID <pi> Variable characters (15)
GENRE Characters (1) SOLDE_OUVERTURE TRANSACTION _DATE Date
DEPARTMENT_ID <pi> 21
NOM_PREFIX Characters (4) NUMERO_CHEQUIER TRANSACTION_TEMPS Time
6 DEPARTMENT _NOM 2
DATE_NAISSANCE Date CHEQUIER_DATE_EXPIRATION TRANSACTION_MONTANT Number (7,2)
DEPARTMENT_ABBREVIATION 1 15
STATUS_MARITAL Characters (1) CHEQUIER_TYPE TRANSACTION_TYPE_RECU Characters (1)
DEPARTMENT_MIN PAIE
DATE_ADHESION Date NUMERO_CARTE_CREDIT SOLDE Number (7,2)
POSTE POSTE_ID Variable charactersENLINE_CLIENT_ID
(20)
Identifier_1 <pi>
DEPARTMENT_ID 4
Variable charactersIDENTIFIENT_ENLIGNE
(20)
POSTE _ID <pi> 3
7 POSTE _NOM RESPONSABLE_ID Variable charactersNUMERO_CARTE_DEBIT
(20)
POSTE_ABBREVIATION 5 SALAIRE_FIXE Number (10) DATE_EXPIRATION_COMPTE
DESCRIPTION_DESCRIPTION COMMISSION Number (10) STATUT_ACTIF_COMPTE
POSTE_MINPAIE ADDRESSE Variable charactersSOLDE
(20)
TELEPHONE Variable charactersIdentifier_1
(20) 21
<pi>
TRANSACTION_PAIEMENT_PRET EMAIL Variable characters (20)
Identifier_1 <pi> TYPE_TRANSACTION
PAIEMENT_PRET_ID <pi> Variable characters (20)
20 TYPE_REFERENCE_ID
MONTANT Number (20) 9
MONTANT_PENALITE Number TYPE_REFERENCE_NOM
ECHEANCE_NO Number (20) TYPE_REFERENCE_ABBREVIATION
22
DAB_TRANSACTION ZONE
CLM_ATM_TRANSACTION_ID ZONE_ID <pi> Variable characters (20)
TYPE_COMPTE CLIENT
TRANSACTION_MONTANT ZONE_NOM Variable characters (20)
COMPTE_ID <pi> ENREGISTREMENT_ID <pi> Variable characters (20)
TRANSACTION_DATE ZONE_ABBREVIATION Variable characters (20)
COMPTE_TYPE_NOM PRENOM Variable characters (20)
TRANSACTION_TEMPS ZONE_DESCRIPTION Variable characters (20)
COMPTE_TYPE_ABBREVIATION NOM_CLIENT Variable characters (20)
TRANSACTION_TYPE_BIT ZONE_ADDRESSE Variable characters (20)
COMPTE_TYPE_DESCRIPTION PRENOM_2_CLIENT Variable characters (20)
11 Identifier_1 <pi> ZONE_TELEPHONE Variable characters (20)
COMPTE_TYPE_MINIMUM_SOLD NOM_PREFIX Characters (4)
ZONE_FAX Variable characters (20)
COMPTE_TYPE__MAXIMUM_SOLD 21 DATE_NAISSANCE Date 17 13
DATE_ENREGISTREMENT Date Identifier_1 <pi>
Identifier_1 <pi>
GENRE Characters (1)
STATUS_MARITAL Characters (1) DAB 19
ADDRESSE Variable characters (20)
DAB_ID
TELEPHONE Variable characters (20)
DAB_CAPACITE AGENCE
EMAIL Variable characters (20)
INTERVALLE_REMPLISSAGE
FAX Variable characters (20) AGENCE_ID <pi>
PRET_CLIENT DAB_ADDRESSE
AGENCE_NOM
PRET_CLIENT_TRANSACTION_ID <pi> Variable characters (20) TRANSACTION_ENLIGNE AGENCE_ABBREVIATION
PRET_CLIENT_DATE Date AGENCE_DESCRIPTION
TRANSACTION_ENLIGNE_ID <pi>
CLM_LOAN_TEMPS Time AGENCE_ADDRESSE
PRET_CLIENT_MONTANT Number TRANSACTION_DATE
AGENCE_TELEPHONE
TRANSACTION_TEMPS
PRET_CLIENT_PERIODE Number AGENCE_FAX
AGENT TRANSACTION_MONTANT
TRANSACTION_TYPE_BIT Identifier_1 <pi>
AGENT_ID <pi> Variable characters (20)
PRENOM Variable characters (20) 0,n
14 15 PRENOM_2_CLIENT Variable characters (20)
NOM_CLIENT Variable characters (20)
DETAIL_AGENT_AGENCE
GENRE Characters (1)
0,n DATE_ENREGISTREMENT Date
DATE_NAISSANCE Date
DATE_ENREGISTREMENT Date DATE_FIN_ENREGISTREMENT Date
TYPE_PRET CLM_AGENT_TYPE_ID Variable characters (20) STATUT_ACTIVE_AGENT Characters (1)
TYPE_PRET_ID <pi> Variable characters (20) ADDRESSE Variable characters (20)
TYPE_PRET_NOM Variable characters (20) TELEPHONE Variable characters (20)
TYPE_PRETABBREVIATION Variable characters (20) CLM_FAX_NUMBER Variable characters (20)
TYPE_PRETDESCRIPTION Variable characters (20) EMAIL Variable characters (20)
TYPE_PRET_VAL Number Identifier_1 <pi>
TYPE_PRET_MAX_VAL Number
MIN_REBOURS__PERIODE Number
MAX_REBOURS__PERIODE Number
Identifier_1 <pi>
Figure : MCD
La modélisation physique de données (Staging area):
Le modèle physique de données représente la façon dont le modèle sera implémenté
dans la base de données. Un modèle physique de données montre toutes les structures
de table, y compris le nom de la colonne, le type de données de la colonne, les
contraintes de colonne, la clé primaire, la clé étrangère et les relations entre les tables.
Les caractéristiques d'un modèle physique de données sont les suivantes :
DEPARTEMENT EMPLOYE
DEPARTMENT_ID EMPLOYE_ID VARCHAR2(20) COMPTE_CLIENT TRANSACTION_CLIENT
EMPLOYE_ID DEPARTMENT_ID2 VARCHAR2(20) TYPE_DE_COMPTE_NO TRANSACTION_BANQUE_ID VARCHAR2(15)
DEP_DEPARTMENT_ID DEP_DEPARTMENT_ID VARCHAR2(20) CLIENT_ID EMPLOYE_ID VARCHAR2(20)
DEPARTMENT _NOM POSTE _ID VARCHAR2(20) EMPLOYE_ID TYPE_REFERENCE_NOM VARCHAR2(20)
DEPARTMENT_ABBREVIATION POS_POSTE _ID VARCHAR2(20) ENREGISTREMENT_ID TYPE_DE_COMPTE_NO NUMBER(20)
DEPARTMENT_MIN PAIE EMPLOYE_PRENOM VARCHAR2(20) DATE_OUVERTURE_COMPTE CLIENT_ID VARCHAR2(20)
DEPARTMENT_MAX PAIE PRENOM_2_CLIENT VARCHAR2(20) ENTREPRISE TRANSACTION _DATE DATE
CLM_DEPARTMENT_DESCRIPTION NOM_CLIENT VARCHAR2(20) SOLDE_OUVERT URE TRANSACTION_TEMPS DATE
GENRE CHAR(1) NUMERO_CHEQUIER TRANSACTION_MONTANT NUMBER(7,2)
POSTE NOM_PREFIX CHAR(4) CHEQUIER_DATE_EXPIRATION TRANSACTION_TYPE_RECU CHAR(1)
POSTE _ID DATE_NAISSANCE DATE CHEQUIER_TYPE SOLDE NUMBER(7,2)
EMPLOYE_ID STATUS_MARITAL CHAR(1) NUMERO_CARTE_CREDIT
POS_POSTE _ID DATE_ADHESION DATE ENLINE_CLIENT_ID
POSTE _NOM POSTE_ID VARCHAR2(20) IDENTIFIENT_ENLIGNE
POSTE_ABBREVIATION DEPARTMENT_ID VARCHAR2(20) NUMERO_CARTE_DEBIT
DESCRIPTION_DESCRIPTION RESPONSABLE_ID VARCHAR2(20) DATE_EXPIRATION_COMPTE
POSTE_MINPAIE SALAIRE_FIXE NUMBER(10) STATUT_ACTIF_COMPTE
POSTE_MAXPAIE COMMISSION NUMBER(10) SOLDE
ADDRESSE VARCHAR2(20) DAB_TRANSACTION TRANSACTION_ENLIGNE TYPE_TRANSACTION
TRANSACTION_PAIEMENT CLM_ATM_TRANSACTION_ID TRANSACTION_ENLIGNE_ID TYPE_REFERENCE_ID
CLIENT TYPE_REFERENCE_NOM
_PRET TRANSACTION_BANQUE_ID TRANSACTION_BANQUE_ID
ENREGISTREMENT_ID DAB_ID TRANSACTION_DATE TYPE_REFERENCE_ABBREVIATION
PAIEMENT_PRET_ID COMPTE_ID TRANSACTION_MONTANT TRANSACTION_TEMPS TYPE_REFERENCE_DESCRIPTION
EMPLOYE_ID
TYPE_COMPTE PRENOM TRANSACTION_DATE TRANSACTION_MONTANT Minimum_Value
PRET_CLIENT_T RANSACTION_ID NOM_CLIENT
COMPTE_ID TRANSACTION_TEMPS TRANSACTION_TYPE_BIT Maximum_Value
MONTANT
COMPTE_T YPE_NOM PRENOM_2_CLIENT TRANSACTION_TYPE_BIT Points
MONTANT_PENALITE
COMPTE_T YPE_ABBREVIATION NOM_PREFIX
ECHEANCE_NO DATE_NAISSANCE
COMPTE_T YPE_DESCRIPTION ZONE
DATE_ENREGISTREMENT DAB
COMPTE_T YPE_MINIMUM_SOLD
GENRE DAB_ID ZONE_ID
COMPTE_T YPE__MAXIMUM_SOLD
STAT US_MARIT AL DAB_CAPACITE ZONE_NOM
ADDRESSE INTERVALLE_REMPLISSAGE ZONE_ABBREVIATION
TELEPHONE DAB_ADDRESSE ZONE_DESCRIPTION
EMAIL ZONE_ADDRESSE
FAX ZONE_TELEPHONE
ZONE_FAX
PRET _CLIENT
PRET _CLIENT_TRANSACTION_ID
TYPE_DE_COMPTE_NO AGENT
CLIENT_ID AGENT_ID
TYPE_PRET AGENCE
TYPE_PRET_ID PRENOM
TYPE_PRET_ID AGENT_ID PRENOM_2_CLIENT AGENCE_ID
TYPE_PRET_NOM PRET _CLIENT_DATE NOM_CLIENT DETAIL_AGENT_AGENCE ZONE_ID
TYPE_PRETABBREVIATION CLM_LOAN_TEMPS GENRE AGENCE_ID AGENCE_NOM
TYPE_PRETDESCRIPT ION PRET _CLIENT_MONTANT DATE_NAISSANCE AGENT_ID AGENCE_ABBREVIATION
TYPE_PRET_VAL PRET _CLIENT_PERIODE DATE_ENREGISTREMENT DATE_ENREGISTREMENT AGENCE_DESCRIPTION
TYPE_PRET_MAX_VAL EMI_MONTANT CLM_AGENT_TYPE_ID DATE_FIN_ENREGISTREMENT AGENCE_ADDRESSE
MIN_REBOURS__PERIODE GARANT_NOM ADDRESSE STAT UT_ACTIVE_AGENT AGENCE_TELEPHONE
MAX_REBOURS__PERIODE GARANT_LIEN TELEPHONE AGENCE_FAX
GARANT_ADDRSSE CLM_FAX_NUMBER
GARANT_SALAIRE EMAIL
Figure : MPD
Le modèle dimensionnel
Sur la base des exigences que le client a listées, Nous commençons par une table de faits
de base qui enregistre les soldes de chaque compte à la fin de chaque mois. La granularité
de cette table de fait est un enregistrement ou une ligne pour chaque compte.
Initialement, nous allons envisager une conception a deux dimensions
Dimension mois
Dimension compte
Nous pouvons penser que toutes les autres informations descriptives, telles que les
caractéristiques du ménage, de l'agence et du produit, devraient être intégrées en tant
qu'attributs de la dimension compte, car chaque compte n'est associé qu'à un seul
ménage, une seule agence et un seul produit. Mais Tous les attributs du système
relationnel ou transactionnel n'entrent pas dans le système de l'entrepôt de données, car
ils n’y jouent pas tous un rôle clé. Alors que le schéma actuel conçu et développé
représente correctement les relations plusieurs à un et plusieurs à plusieurs dans le
système transactionnel, il ne reflète pas adéquatement et naturellement les dimensions
qui sont importantes pour l'entrepôt de données de base.
Le schéma regroupe tout dans la table de dimension de compte, et les dimensions
analytiques supplémentaires telles que le produit et l'agence par exemple reflètent la
façon instinctive dont les utilisateurs bancaires pensent à leur métier. Les dimensions
supplémentaires fournissent des points d'entrée beaucoup plus petits à la table des faits.
Ces dimensions répondent à la fois aux objectifs de performance et de facilité d'utilisation
d'un modèle dimensionnel. Dans une grande banque, la dimension du compte principal
peut approcher les 10 millions de lignes, alors la gestion et la maintenance peuvent être
difficilement gérables. Par conséquent, pour garder le contrôle du système, nous devrions
suivre la dimension à évolution lente de type 2 (SCD) pour gérer l'énorme dimension en
quelque chose qui peut ressembler à un processus réalisable.
Les attributs de produit et de l'agence doivent être retiré de la dimension compte afin de
réduire les effets secondaires de la mise en œuvre du SCD de type 2. Plus tard, nous
extrairons les attributs démographiques et comportementaux de cette dimension afin
d’améliorer la gestion du système.
Les dimensions du compte et de l’agence sont deux dimensions distinctes parce qu'il
existe une relation plusieurs à plusieurs entre eux. Les deux évoluent lentement au fur et
à mesure que le système transactionnel évolue, mais à des rythmes différents. Plus
important encore, les utilisateurs les considèrent comme des dimensions distinctes et
fondamentales dans le secteur bancaire. Sur la base de l’étude des exigences client, nous
avons finalement choisi les dimensions suivantes pour notre schéma initial :
Dimension Temps
Dimension Compte
Dimension Employé
Dimension Transaction
En mettant en œuvre le processus de chargement des données, nous concevons
l'intersection des cinq dimensions ci-dessus pour qu'elles s'intègrent sous la forme d'un
fait agrégé. Ce dernier contient un instantané (Snapshot) mensuel, des enregistrements
des solde des comptes clients et toute autre mesure qui a du sens au niveau décisionnel.
Les métriques qui devraient être intégrées dans l'agrégat du fait seront considérées
comme prioritaires en fonction des problèmes et les exigences métier. Cela peut être les
intérêts payés, les intérêts facturés et le nombre de transactions. A noter que les soldes
de compte sont comme les soldes d'inventaire. Autrement dit, ils ne s'additionnent pas
dans le temps. Nous devons donc faire la moyenne des soldes des comptes en divisant la
somme des soldes par le nombre de mois.
Dimension Transaction
La dimension Transaction consiste en une hiérarchie simple de transactions, qui décrit
l'ensemble des transactions de la banque, y compris le nom, le type et la catégorie de
transaction. La nécessité de construire une catégorisation générique dans la banque est
d'identifier l'état de la hiérarchie dans le système.
Dimension Compte
La dimension Compte est une dimension utile pour enregistrer l'état du compte à la fin de
chaque mois. elle indique si le compte est actif ou inactif ou si un changement de
situation s'est produit au cours du mois. Le changement de statut peut être une ouverture
de nouveau compte ou une fermeture de compte.
Dimension Client
Plutôt que de se concentrer uniquement sur les comptes, le client souhaite également
être en mesure d'analyser la relation de la banque avec le client. On s’intéresse à
comprendre :
Dimension Agent
Dimension Prêt
Dimension Employé
D’une part, l’analyse des agents permet de connaître l'historique des informations les
concernant. Ces informations doivent être gérées en fonction de leur localisation. Les
informations sur les transactions doivent être gérées quotidiennement pour les comptes
de crédit. D’autre part, Les informations sur les transactions de crédit doivent être
collectées dans leur intégralité et les informations sur les employés doivent être
collectées en fonction de leur localisation de leurs agences.
La dimension du temps
Jusqu'à présent, le client s’intéresse aux instantanés (snapshots) des soldes de fin de
mois, car il pense que ce niveau de détail est généralement suffisant pour son analyse
commerciale. Si nécessaire, et en fonction des besoins, il peut compléter cette analyse par
un autre tableau des faits qui fournit l’état des comptes journaliers ou par quinzaines de
jours ou mensuels, partir d’une autre table de fait.
La question qui se pose : "Quelle sera la stratégie si nous sommes confrontés à
l'obligation de déclarer le solde d'un compte à n'importe quel moment choisi
arbitrairement ?". Comme soulevé par la situation. La création d'instantanés de soldes
quotidiens pour une grande banque sur une longue période historique serait difficilement
réalisable étant donné la densité des données. En pratique, si la banque possède 10
millions de comptes, les instantanés quotidiens se traduisent par environ 3,65 milliards de
lignes de faits par an. En supposant que les besoins de l'entreprise ont déjà motivé la
nécessité de rendre les données détaillées des transactions disponibles pour l'analyse,
nous pourrions tirer parti de ces détails de transaction pour déterminer un solde ponctuel
arbitraire.
Pour simplifier les choses, nous allons analyser la table de faits des transactions du
compte selon une conception simple. La clé du type de transaction est reliée à un petit
tableau de dimensions des types de transaction autorisés. Le numéro de séquence de la
transaction est un numéro numérique qui augmente continuellement pendant toute la
durée de vie du compte. Le flag final indique s'il s'agit de la dernière transaction pour un
compte à un jour donné.
Le fait solde est le solde final du compte après l'événement de la transaction. Pour gérer
la situation de demande, nous la considérons comme une situation spéciale et la rendons
possible en l'intégrant à une clé de date de substitution (Surrogate Date Key).
La clé de date est un ensemble d'entiers allant de 1 à N avec une séquence prévisible.
Nous attribuons des nombres entiers consécutifs à la clé de substitution de date afin de
pouvoir partitionner physiquement une grande table de faits en fonction de la date. Cela
permet de la segmenter proprement afin de pouvoir effectuer des actions sur certaines
plages de dates, comme déplacer des données archivées vers un stockage hors ligne ou
supprimer et reconstruire des index.
La modélisation dimensionnelle physique du DWH:
Le modèle physique de données représente la façon dont le modèle sera implémenté
dans le DWH. Les figures ci-dessous montrent les structures des tables de dimensions, y
compris le nom, le type de données, les contraintes, la taille, est les noms de colonnes
source depuis la base de transit (Staging Area)
Dimension Employé
Dimension Agent
Dimension Client
Dimension Transaction
Dimension Temps
Introduction
Dans ce chapitre, nous allons mettre en place notre entrepôt de données. La solution
présentée ici est un exemple d'utilisation des outils de Business Intelligence avec
Informatica Powercenter et Oracle 11g, le même SGBD qui est utilisé pour des
implémentation à grande échelle.
Les outils :
PowerDesigner
SAP PowerDesigner (PowerDesigner) est un outil de modélisation produit par Sybase,
actuellement propriété de SAP. Il peut être exécuté sous Microsoft Windows en tant
qu'application native ou dans un environnement Eclipse via un plugin. Ce logiciel permet
la conception de logiciels et la planification des processus métier.
Oracle 11g
Oracle Database (communément appelé Oracle DBMS ou simplement Oracle) est un
système de gestion de base de données multi-modèles produit et commercialisé par
Oracle Corporation. C'est une base de données couramment utilisée pour exécuter des
transactions (OLTP), d'entreposage de données (DW) et mixtes (OLTP & DW).
Informatica Powercenter
Informatica Powercenter est un outil ETL fourni par 'Informatica Corporation', il est utilisé
pour extraire (E) les données à partir des systèmes opérationnels, les transformer (T) et
les charger (L) dans l'entrepôt de données. Aujourd'hui, Informatica est également utilisé
comme un outil d'intégration. C’est une architecture orientée services.
Les étapes de la mise en place de l’environnement de travail
Télécharger le logiciel Oracle 11g et Informatica 10.2
Installer Oracle 11g
Configurer SQL Developer pour interroger les bases de données
Créer la base de données de transit (Staging Area) sous Oracle 11g en se basant
sur le scripte généré depuis le modèle physique de données vue précédemment.
Créer la base de données des dimensions et la table des faits sous Oracle
Configurer le référentiel (Repository) et le service d'intégration (IS) dans la
console d'administration de Informatica Powercenter
Installer le client Informatica Powercenter
Configurer la connexion source et cible
Créer un mapping test puis l'exécuter afin de s’assurer du bon fonctionnement du
système.
Architecture d'Informatica PowerCenter
Informatica est l’outil ETL qu’on va utiliser pour extraire des données de différentes
sources, les transformer et les charger dans l’entrepôt de données. L'architecture
d'Informatica PowerCenter est une architecture orientée services (SOA) et elle est définie
comme un groupe de services qui communiquent avec plusieurs systèmes. Elle fait
référence à un simple transfert de données pendant la communication. En outre,
l'architecture Informatica Power Center offre la possibilité d’effectuer les tâches
d’administration sur différents systèmes. Cette architecture comprend différents types de
composants. C’est un outil compatible avec les deux plateformes, à savoir les systèmes
basés sur Windows et Unix et il offre des services de développement, de gestion et
d'administration simples.
Le serveur Power Center exécute divers jobs de transformation basées sur le principe de
flux crées dans le programme Work Flow Designer. Puis, exécuté par Work Flow
Manager. Le suivi des traitements est supervisé par un autre programme qui s’appelle
Work Flow Monitor.
Informatica Powercenter comprend les services et les composants ci-dessous :
Nœud (Node):
Il s'agit d'une plate-forme où différents services sont exécutés.
Workflow Monitor :
Il est utile pour afficher et vérifier l'exécution des processus de travail.
Informatica Designer :
Utilisé pour créer des mappings entre la source et la cible.
Domaine Informatica
L'architecture Informatica Power Center est une SOA dont le domaine Informatica
constitue l'unité administrative de base. Il comprend divers nœuds et services. Ces nœuds
et services sont divisés en plusieurs dossiers ou sous-dossiers. Ceux-ci sont basés sur les
exigences de l'administration et l'architecture. En outre, sa console d'administration web
conçoit un domaine qui ressemble à un dossier. Ici, les utilisateurs peuvent créer un
nœud ainsi que les services. De plus, au sein du domaine, un nœud est une voie logique
de la machine. Différents types de services et de processus s'exécutent à l'intérieur de ce
domaine. Par conséquent, plusieurs nœuds peuvent être présents dans un seul domaine.
En outre, un nœud de passerelle (Gateway Node) reçoit les demandes des différents
clients et les transfère à leurs nœuds et services respectifs.
Gestionnaire de services
Il est responsable de la gestion des opérations du domaine comme la connexion,
l'authentification et le consentement. En outre, il exécute les services d'application sur
différents nœuds et gère également divers utilisateurs et groupes. Il s'agit de services de
base et de fonctions qui maintiennent l'écosystème dans lequel le Power Center
fonctionne et comprend divers services. Par exemple, Log Service, Licensing Service et
Domain Service, parmi d'autres services disponibles.
Services d'application
Il comprend divers services spécifiques au serveur comme les services de référentiel, les
services de rapport et les services d'intégration. Le service d'application fonctionne sur
différents nœuds en fonction de sa configuration.
Il existe quelques composants clés de Domain. Il s'agit de la période de redémarrage, du
délai de résilience, du mode de répartition, de la base de données, du port et du nom.
Référentiel PowerCenter
Le référentiel d'Informatica Power Center comprend une base de données relationnelle
maintenue par des services de référentiel. Tels que SQL Server, Oracle, etc. De plus, les
tables de cette base de données stockent les métadonnées. En outre, les outils clients qui
se connectent au référentiel sont de trois types, à soir :
Informatica Designer
Workflow Manager
Moniteur
Connectivité de PowerCenter
Les différents outils clients de Power Center comprennent le gestionnaire de flux de
travail, le concepteur, le gestionnaire de référentiel, le moniteur, etc. Il s'agit de divers
outils de développement qui sont installés sur la machine cliente. Informatica
Powercenter comprend différents mappings et objets enregistrés dans le serveur. Par
conséquent, ces réseaux de clients doivent avoir une connectivité avec le serveur.
De plus, les clients Power Center se connectent aux différentes sources et cibles pour
importer la définition de la structure et les métadonnées. Il doit donc maintenir un lien
avec les machines sources/cibles.
Le Power Center utilise TCP/IP pour relier le service d'intégration et le service de
référentiel. Il utilise des pilotes ODBC pour établir un lien entre la source et les cibles.
Service Référentiel
Ce service est un processus multithread qui gère le lien entre les clients Power Center et
le référentiel. De plus, le service de référentiel récupère, insère et met à jour les
métadonnées dans le référentiel. Il maintient également la cohérence des métadonnées
du référentiel.
Service d'intégration PowerCenter
Le service d'intégration est utile pour l'exécution de diverses tâches créées dans
Informatica PowerCenter. Il s'agit d'une sorte service au sein du serveur Informatica qui
attend qu'une tâche lui soit confiée. Lorsque la tâche lui est donnée il lance son exécution
immédiatement. Il effectue des vérifications pour savoir si elles ont bien été exécutées ou
non.
Le service d'intégration Power Center d'Informatica transfère les données des sources
vers les destinations. Ce mouvement de données est basé sur le workflow Power Center,
la session et les métadonnées liées aux mapping stockés dans un référentiel Power
Center. Lorsqu'un workflow commence, le service d'intégration Power Center récupère
les métadonnées associées au mapping, à la session et au workflow dans le référentiel. En
outre, il collecte les données des sources de mappage et les stocke en mémoire. Il le fait
lorsqu'il met en œuvre les règles de changement configurées dans le mappage.
Lorsqu'un workflow est exécuté, le processus du IS commence. Il verrouille le workflow,
exécute ses tâches et lance le processus d'exécution de diverses sessions.
Examinons en détail son processus.
1. L'utilisateur exécute un workflow.
2. Le Power Center d'Informatica donne des instructions au service d'intégration
pour l’exécuter.
3. Le service d'intégration étudie les détails du workflow à partir du référentiel.
4. Ce service lance l'exécution des tâches dans le workflow.
5. Une fois l'exécution terminée, le statut est mis à jour, c'est-à-dire échec ou
réussite.
6. Ensuite, le journal de session et les journaux du workflow sont générés.
7. transfert des données vers les machines cibles.
Figure : Schéma physique d'Informatica PowerCenter
Les scénarii d’extraction, de transformation et de chargement
Après avoir préparé l’environnement de travail, c’est à dire l’installation d’Informatica
Powercenter et Oracle 11g. Puis la création de différentes bases de données :Staging,
DWH, le référentiel Informatica que nous avons nommé INFA, nous allons réaliser
différents scénarii de chargement, transformation et chargement dans le Data
Warehouse.
Dans Powercenter, et pour chaque scénario, nous allons créer un mapping dans le
programme le Designer. Puis nous allons créer un workflow via Workflow Manager pour
l’exécuter. Grâce au Monitor, nous allons suivre et supervise les exécutions afin de
s’assurer du bon déroulement de ce processus.
chaque mapping aura comme donnée source les données produites par le scénario
précédent et ainsi de suite. Le dernier scénario sera le chargement des données nettoyées
dans la table cible de la base de données staging.
Finalement, une fois toutes les sources de données sont corrigées et nettoyées, nous
allons réaliser les derniers mapping et les charger dans les dimensions de la base de
données dwh.
PowerCenter Designer
PowerCenter Worklow Manager
PowerCenter Worklow Monitor
PowerCenter Repository Manager
L'écran du Designer, comme on peut le voir dans la capture d'écran suivante, est divisé en
cinq sections. Chaque section a son propre objectif. Nous y ferons régulièrement
référence dans les prochains chapitres. Ils sont les suivants :
- Navigateur : Il est utilisé pour se connecter aux référentiels et ouvrir des dossiers. Vous
pouvez copier des objets et créer des raccourcis dans le navigateur. Le navigateur permet
de réutiliser les composants existants.
- Espace de travail : C'est l'espace où vous effectuez réellement le codage. Ouvrez
différents outils dans cette fenêtre pour créer et modifier les objets du référentiel, tels
que les sources, les cibles, les mapplets, les transformations et les mappings. Dans
l'espace de travail du Designer vous pouvez voir différents onglets, tels que Source
Analyzer, Target Designer, Transformation Developer, Mapplet Designer et Mapping
Designer.
- Barre d'outils : Elle présente les différents composants à utiliser dans l'écran du
Designer et d'autres raccourcis.
- Panneau de sortie/contrôle : Il vous permet d'afficher les détails des tâches que vous
effectuez, comme l'enregistrement de votre travail ou la validation d'un mappage. Vous
pouvez voir si votre code est valide ou non. S'il n'est pas valide, le panneau de sortie vous
indique la raison de l'erreur. Barre d'état : Elle affiche l'état de l'opération en cours. La
barre d'état vous indique l'état de l'opération que vous essayez d'effectuer. Les
composants de l'écran précédent sont illustrés dans la capture d'écran suivante :
Navigateur (1)
Espace de travail (2)
Barre d'outils (3)
Panneau de contrôle (4)
PowerCenter Designer dispose des outils suivants qui nous permettent de travailler sur
différents types de sources, différents types de cibles, et de construire des mappings
utilisant différents types de transformations :
- Source Analyzer : Il vous permet d'importer ou de créer des définitions de sources.
Vous pouvez travailler sur différents types d'iles (fichier plats, XML, .xls, etc.) et de tables
de bases de données.
- Target Designer : Il vous permet d'importer ou de créer des définitions cibles.
Vous pouvez travailler sur différents types (fichier plats, XML, .xls, etc.) et sur des tables
de base de données.
- Transformation Developer : Il vous permet de créer des transformations réutilisables
réutilisables à utiliser dans les mappings. Les composants réutilisables sont importants car
ils vous permettent d'utiliser les transformations existantes.
- Concepteur de mapplets : Ceci vous permet de créer un groupe de transformations à
utiliser dans les mappings. Les mapplets sont des groupes de transformations réutilisables
qui peuvent être utilisées dans plusieurs mappings comme composants réutilisables.
- Mapping Designer : Il vous permet de créer des mappings que le service d'intégration
utilise pour extraire, transformer et mettre à jour les données. Les mappings contiennent
des sources, cibles et des transformations liées les unes aux autres par des liens. Vous
pouvez ajouter plusieurs sources, plusieurs cibles et plusieurs transformations dans un
même mappage.
Les composants présentés
sont les suivants :
Lorsque nous importons la définition de la source dans le designer, nous importons seulement les
métadonnées, c'est-à -dire les noms des colonnes, le type de données, la taille, les index, les contraintes,
les dépendances etc. Les données réelles ne viennent jamais avec la structure de la source dans le
designer. Les données passent par le mappage d'une manière enregistrement par enregistrement
lorsque nous exécutons le workflow dans le Workflow Manager.
PowerCenter vous permet de travailler sur différents types de sources, comme indiqué ci-
dessous :
Nous avons vu les composants que PowerCenter offre. Dans la section suivante, nous
allons apprendre à importer les tables de la base de données relationnelle. Avant cela, une
connexion à la base de données doit être ajoutée Designer.
Nous devons
ajouter un
nouveau DSN
utilisateur.
Spécifiez le mot de passe pour la base de données Oracle et cliquez sur OK.
9. Si toutes les valeurs que vous avez mentionnées sont correctes, la
connexion de test sera réussie.
Avec cela, nous avons ajouté une nouvelle connexion de base de données à notre
référentiel, et nous pouvons importer les tables en utilisant cette nouvelle
connexion.
Les fichiers plats sont de deux types : délimités et à largeur fixe. Ils sont expliqués comme
suit:
• Dans les fichiers délimités, les valeurs sont séparées les unes des autres par
un délimiteur. Tout caractère ou nombre peut être utilisé comme délimiteur,
mais généralement, pour une meilleure interprétation, nous utilisons des
caractè res spéciaux comme délimiteurs. Dans les fichiers délimités, la
largeur de chaque champ n'est pas une option obligatoire car chaque valeur
est séparé e des autres par un délimiteur. Veuillez consulter la capture
d'écran suivante pour comprendre ce que c’est un fichier délimité. Le
délimiteur utilisé dans le fichier est une virgule (,).
• Dans les fichiers à largeur fixe, la largeur de chaque champ est fixe. Les
valeurs sont séparées les unes des autres par la taille fixe de la colonne
définie. La lecture des données peut poser des problèmes si la taille de
chaque colonne n'est pas maintenue correctement.
3. Parcourez les fichiers que vous souhaitez importer comme fichiers sources.
4. L'écran de l'assistant d'importation de fichiers plats s'affiche. Vous spécifiez pour
importer le fichier dans un format approprié. Veuillez suivre les étapes suivantes
de l'assistant.
5. Sélectionnez le type de fichier comme Délimité comme indiqué dans la capture d'écran
suivante :
Si le fichier contient des en-têtes comme noms de colonnes dans la premiè re ligne, alors
nous devrons commencer l'importation à la ligne 2, car cette option indique à partir de
quelle ligne les données réelles doivent être importées. Si le fichier ne contient pas d'en-
têtes en première ligne, nous importerons les données à partir de la première ligne
uniquement.
Les fichiers peuvent contenir les noms des colonnes sur la première ligne comme en-
têtes. Vous devez vérifier le fichier correctement avant de commencer à travailler sur le
fichier. L'option Importer les noms d'en-tête de la p r e m i èr e ligne nous permet
d'importer les noms d'en-tête dans la définition source. Si vous ne sélectionnez pas
cette option, les noms d'en-tête ne seront pas importés.
6. Cliquez sur Suivant, Terminer pour que la source soit importée dans
l'Analyseur de sources, comme le montre la capture d'écran suivante :
Le Mapping - la cartographie
Pour comprendre les étapes de base de la création d'un mappage,
commençons par créer un mappage direct. Un mappage de type "pass-
through" insère toutes les lignes de la source dans la cible sans aucune
modification.
Nous allons utiliser la table Oracle EMPLOYEE comme source et la table TGT_EMPLOYEE
comme cible pour créer un mappage transparent.
En effectuant les étapes suivantes, nous allons créer un mappage et lier les colonnes de
la table source EMPLOYEES à une transformation Source Qualifier :
1. Naviguez vers Tools | Mapping Designer et ensuite vers Mappings |
Create pour créer un nouveau mapping.
7. Si vous connectez les liens par erreur, vous pouvez supprimer les liens en
cliquant sur le lien et en appuyant sur le bouton Supprimer de votre
clavier.
• SCD1 : Cette méthode ne conserve que les données actuelles et ne gère pas
les données historiques.
• SCD2 permet de conserver les données actuelles ainsi que les données
historiques dans la table. SCD2 permet d'insérer de nouveaux
enregistrements et des enregistrements modifiés en utilisant une nouvelle
colonne pour maintenir le numéro de version dans la table et suivre les
changements. Nous utilisons aussi une nouvelle colonne de clé primaire
pour maintenir l'historique. Autrement dit, SCD2 conserve l'historique
complet des données de la dimension et suit la progression des
modifications à l'aide d'un numéro de version.
• SCD3 : permet de conserver les données actuelles ainsi que les données
historiques dans la table. Nous ne conservons qu'un historique partiel en
ajoutant une nouvelle colonne, c'est-à -dire que nous ne conservons pas un
historique complet.
Exemple du SCD2 :
Transformations Informatica
Les transformations sont l'aspect le plus important de l'outil Informatica
PowerCenter. La fonctionnalité de tout outil ETL réside dans les transformations. Il va
sans dire que les transformations sont utilisées pour transformer les données.
Informatica PowerCenter fournit plusieurs transformations, chacune servant une
fonctionnalité particulière. Les transformations peuvent être créées comme
réutilisables ou non réutilisables en fonction des besoins. Les transformations créées
dans le gestionnaire de flux de travail sont non réutilisables, et celles créées dans le
développeur de tâ ches sont réutilisables. Vous pouvez créer un mappage avec une
seule transformation ou avec plusieurs transformations.
Lorsque vous exécutez le workflow, Integration Services extrait les données par
rangées du chemin/connexion source que vous avez défini dans la tâ che de session et
les fait circuler à partir du mappage. Les données atteignent la cible par le biais des
transformations que vous avez définies.
Les données circulent toujours par rangées dans Informatica, quel que soit le calcul
ou la manipulation. Ainsi, si vous avez 10 enregistrements dans la source, il y aura
10 flux source vers cible pendant l'exécution du processus.
Mapping Designer
Pour créer des transformations à l'aide de Mapping Designer, effectuez les étapes suivantes :
Les transformations que vous créez dans Mapping Designer ne sont pas réutilisables,
vous ne pouvez donc pas les utiliser dans d'autres mappings. Cependant, vous pouvez
modifier la transformation à `réutilisable`.
Les transformations d'expression sont utilisées pour la manipulation par ligne. Pour tout
type de manipulation que nous souhaitons effectuer sur un enregistrement individuel, nous
utilisons une transformation de type Expression. La transformation Expression accepte les
données en ligne, les manipule et les transmet à la cible. La transformation reçoit des
données provenant du port d'entrée et les envoie à partir des ports de sortie.
Utilisez les transformations Expression pour tout calcul par ligne, par exemple si vous voulez
concaténer les noms, obtenir le salaire total et le convertir en majuscules. Pour comprendre
la fonctionnalité de la transformation Expression, prenons un scénario.
En utilisant le fichier plat comme source Agent.csv, nous allons concaténer le nom et le
prénom de chaque agent pour obtenir le nom complet. De la même façon, nous allons calculer
le salaire moyen de chaque agent.
Double-cliquez sur la transformation et cliquez sur Ports pour ouvrir la vue d'édition et voir
les ports d'entrée, de sortie et de variable.
Vous pouvez désactiver ou activer les ports d'entrée ou de sortie en fonction de vos
besoins. Dans notre scénario, nous devons utiliser les valeurs qui proviennent des ports
d'entrée et les envoyer en utilisant un port de sortie en utilisant concaténer, en écrivant
la fonction dans l'éditeur d'expression.
Créez deux nouveaux ports de sortie pour NOM_COMPLET après PRENOM et SALAIRE_MOYEN
après SALAIRE_FEVRIER. Pour ajouter un nouveau port, double-cliquez sur la
transformation Expression, cliquez sur Ports, et ajoutez deux nouveaux ports de sortie,
comme indiqué dans la capture d'écran suivante :
Assurez-vous que vous définissez le type de données et la taille appropriés des nouveaux
ports qui sont ajoutés. Comme vous pouvez le voir, nous avons désactivé les ports d'entrée
de NOM_COMPELT et SALAIRE_MOYENNE. De même, comme vous avez dû le remarquer, nous
avons désactivé les ports de sortie de NOM et PRENOM,
Une fois que vous avez désactivé les ports d'entrée de NOM_COMPLET et SALAIRE_MOYENNE,
vous serez en mesure d'écrire la fonction pour le port.
Dans notre scénario, nous devons utiliser la fonction CONCAT. Double-cliquez sur la
fonction Concat sous la liste des fonctions pour obtenir la fonction dans l'éditeur, comme le
montre la capture d'écran suivante :
Sauvegarder le mapping pour enregistrer les métadonnées dans le référentiel. Avec ceci,
nous avons fini de créer le mapping en utilisant la transformation Expression. Nous avons
également appris comment utiliser les ports et l’éditeur d'expression. Ces techniques
seront utilisées dans toutes les autres transformations Informatica.
La transformation Aggregator
La transformation Aggregator est utilisée pour les calculs utilisant des fonctions
d'agrégation dans une colonne, par opposition à la transformation Expression qui est
utilisée pour la manipulation en ligne.
Vous pouvez utiliser des fonctions d'agrégation, telles que SUM, AVG, MAX, et MIN, dans la
transformation Aggregator.
Utilisez le fichier tbl.employe.csv comme source pour obtenir la somme des salaires par
départements.
Utilisation de Group By
En utilisant l'option Group By dans la transformation Aggregator, vous pouvez obtenir le
résultat de la fonction d'agrégation en fonction des groupes. Supposons que vous souhaitiez
obtenir la somme des salaires de tous les employés en fonction de département, nous
pouvons utiliser l'option group by pour mettre en œuvre le scénario, comme le montre la
capture d'écran suivante :
Avec ceci, nous avons fini d'utiliser la transformation Aggregator. Lorsque vous utilisez la
transformation Aggregator, Integration Service stocke temporairement les données dans la
mémoire cache. Les calculs requis dans la transformation de l'agrégateur sont effectués
colonne par colonne. Si nous ne stockons pas temporairement les données dans le cache,
nous ne pouvons pas calculer le résultat. Dans le scénario précédent, le cache commence à
stocker les données dès que le premier enregistrement entre dans la transformation
Aggregator.
La transformation Sorter
La transformation Sorter est utilisée pour trier les données dans un ordre croissant ou
décroissant basé sur une ou plusieurs clés. Un exemple de mappage montrant la
transformation Sorter est affiché dans la capture d'écran suivante :
Si vous souhaitez trier les données dans plusieurs colonnes, cochez les ports clés
correspondant au port requis.
En plus de classer les données par ordre croissant ou décroissant, vous pouvez
également utiliser la transformation Sorter pour supprimer les doublons des données en
utilisant l'option Distinct dans les propriétés. Sorter ne peut supprimer les doublons
que si l'enregistrement complet est un doublon et pas seulement une colonne
particulière. Pour supprimer un doublon, cochez l'option Distinct dans la
transformation Sorter, comme le montre la capture d'écran suivante :
La transformation Sorter accepte les données par rangées et les stocke dans le cache interne.
Une fois que toutes les données sont reçues, elle les trie en ordre croissant ou décroissant en
fonction de la condition et envoie les données au port de sortie.
La transformation Filter
La transformation de filtre est utilisée pour supprimer les enregistrements non
désirés du mapping. Vous pouvez définir la condition de filtre dans la
transformation de filtre, et basé sur la condition de filtre, les enregistrements seront
rejetés ou chargés dans le mappage. Un exemple de mappage montrant la
transformation du filtre est donné dans la capture d'écran suivante :
La condition par défaut dans la transformation Filter est TRUE. Sur la base de la condition
définie, si l'enregistrement renvoie VRAI, la transformation Filter permet à l'enregistrement
de passer. Pour chaque enregistrement qui renvoie FALSE, la transformation de filtre rejette
les enregistrements.
Cliquez sur le bouton montré dans la capture d'écran précédente pour ouvrir l'éditeur
d'expression et ajoutez la fonction pour la condition du filtre. Ensuite, ajoutez la condition
requise. Nous avons utilisé la condition Pénalités != 0 ; cela permettra aux enregistrements
avec Pénalités différentes de 0 d’attendre la cible, et le reste des enregistrements sera filtré.
La transformation Router
La transformation Router est une transformation de groupe à un input unique vers multiple
output. Les routeurs peuvent être utilisés à la place de transformations Filter multiples. Les
transformations Router acceptent les données par le biais d'un groupe d'entrée une fois, et sur la
base des groupes de sortie que vous définissez, il envoie les données à plusieurs ports de sortie.
Vous devez définir la condition de filtre dans chaque groupe de sortie.
Lorsque vous faites glisser les colonnes vers le routeur, la transformation Routeur crée
un groupe d'entrée avec uniquement des ports d'entrée et aucun port de sortie. Pour
ajouter les groupes de sortie, cliquez sur l'onglet Groupes et ajoutez trois nouveaux
groupes. Entrez le nom de chaque groupe et définissez la condition de filtre. Cliquez sur
OK pour créer les groupes de sortie dans la transformation Router.
Lorsque vous ajoutez le groupe, un groupe DEFAULT est créé automatiquement. Tous les
enregistrements non concordants des autres groupes passeront par le groupe par défaut
si vous connectez les ports de sortie du groupe par défaut à la cible.
Lorsque vous transmettez les enregistrements à la transformation Router via le groupe
d'entrée, la transformation Router vérifie les enregistrements en fonction de la condition
de filtrage que vous définissez dans chaque groupe de sortie. Chaque enregistrement qui
satisfait la condition passe vers la cible. Chaque enregistrement qui échoue sera
transmis au groupe DEFAULT.
Comme vous pouvez le constater, les transformations Router sont utilisées à la place de
multiples transformations Filter. De cette façon, elles sont utilisées pour améliorer les
performances.
La transformation Rank
La transformation Rank est utilisée pour obtenir un nombre spécifique d'enregistrements
en haut ou en bas de l'échelle. Imaginons que vous ayez besoin de prendre les trois
premiers salaires de la table EMPLOYEE. Vous pouvez utiliser la transformation Rank dans
ce cas. Un exemple de mappage indiquant la transformation Rank est montré dans la
capture d'écran suivante :
Lorsque vous créez une transformation de Rank, un port de sortie RANKINDEX par défaut est
fourni avec la transformation. Il n'est pas obligatoire d'utiliser le port RANKINDEX. Nous
n’avons donc pas connecté le port RANKINDEX à la cible.
Lorsque vous utilisez une transformation Rank, vous devez définir le port sur lequel vous
souhaitez classer les données. Comme le montre la capture d'écran suivante, nous avons
classé les données en fonction du SALAIRE :
Vous ne pouvez pas classer les données sur plusieurs ports. Vous devez également définir
l'option Top ou Bottom et le nombre d'enregistrements que vous souhaitez classer dans
l'onglet Properties. Dans notre cas, nous avons sélectionné Top et 3 pour mettre en œuvre
le scénario, comme le montre la capture d'écran suivante :
Les transformations Rank acceptent les données par rangs et les stockent dans le cache. Une
fois toutes les données reçues, elles vérifient les données en fonction de la condition et
envoient les données au port de sortie.
Indice de classement
Lorsque vous créez une transformation de rang, une colonne par défaut appelée index
de rang est créée. Si nécessaire, ce port peut générer des nombres indiquant le rang. Il
s'agit d'un champ facultatif que vous pouvez utiliser si nécessaire. Si vous ne souhaitez
pas utiliser l'indice de rang, vous pouvez laisser le port non connecté.
Supposons que vous ayez les données suivantes appartenant à la colonne SALAIRE dans la source
:
Salaire 100
1000
500
600
1000
800
900
Lorsque vous passez les données par une transformation Rank et que vous définissez
une condition pour obtenir les cinq premiers enregistrements salariés, la
transformation Rank génère l'indice de rang comme indiqué ici :
Rank_Index, Salaire
1,1000
1,1000
3,900
4,800
5,600
Comme vous pouvez le voir, l'indice de rang attribue 1 rang aux mêmes valeurs de salaire,
et 3 au salaire suivant. Ainsi, si vous avez cinq enregistrements avec 1000 comme salaire
dans la source avec d'autres valeurs, et que vous avez défini des conditions pour obtenir les
cinq meilleurs salaires, la transformation Rank donnera les cinq enregistrements avec un
salaire de 1000 et rejettera tous les autres.
Avec cela, nous avons appris tous les détails de la transformation de Rank.
WARKFLOW MANAGER : LE GESTIONNAIRE DE FLUX
Workflow Manager nous permet d'exécuter le mapping ; en d'autres termes, nous réalisons
le flux de données de la source vers la cible lorsque nous exécutons le processus appelé
workflow dans Workflow Manager.
Fondamentalement, le gestionnaire de flux contient un ensemble d'instructions, que nous
définissons comme un workflow. Les tâ ches constituent l'élément de base du flux. Nous
avons plusieurs tâ ches dans l'écran du workflow manager. Lorsque vous créez un workflow,
vous y ajoutez des tâ ches selon vos besoins et exécutez le flux pour voir le statut dans le
moniteur.
Comme nous l'avons vu au chapitre précé dent, l'écran client du designer est divisé en cinq
sections. De la même manière, l'écran du gestionnaire de flux de travail est également divisé
en cinq sections : le navigateur, la barre d'outils, l'espace de travail, le panneau de sortie et
la barre d'état.
Informatica PowerCenter Workflow Manager dispose des outils suivants que vous pouvez
utiliser pour créer et exécuter des workflows et des tâ ches :
• Task Developer : À l'aide de ce composant, vous pouvez créer
différents types de tâches que vous souhaitez ajouter à votre flux de
travail. Les tâ ches créées dans le développeur de tâches sont des
tâ ches réutilisables.
• Worklet Designer : Un groupe de tâ ches réutilisables est défini en tant que
Worklet. Vous pouvez créer un Worklet dans le Worklet Designer.
• Workflow Designer : Un workflow peut être créé dans Workflow
Designer. Ajoutez différentes tâ ches au flux de travail en les connectant
avec des liens.
Nous avons ainsi appris à ajouter la tâ che de démarrage comme première étape de la création
du flux de travail.
3. Si vous créez une tâ che de session, une autre fenêtre s'ouvre, vous
demandant de sélectionner le mappage que vous souhaitez associer à la
session. La fenêtre affiche une liste de tous les mappings valides présents
dans votre référentiel. Sélectionnez le mappage approprié et cliquez sur
OK.
Vous ne pouvez associer qu'un seul mappage à une session. En outre, vous ne pouvez pas
modifier le mappage une fois que vous l'avez associé à la session. Si vous associez par
erreur un mauvais mappage, supprimez la tâ che de session, créez-en une nouvelle et
attribuez le mappage
Pour définir les propriétés, vous devez effectuer une série d'étapes. Dans le
Gestionnaire de flux de travail, ouvrez le flux de travail contenant la tâ che
de session. Double-cliquez sur la tâ che de session, cliquez sur Mapping,
puis cliquez sur Source.
L'onglet Mapping de la tâ che de session vous permet de définir les propriétés de la source et
de l'utilisateur.
la cible. Voyons les options en détail :
Statut Description
Succeeded Le processus est terminé avec succès
Failded Le processus a échoué à cause d'une erreur
Running Le processus est en cours d'exécution
Option Description
Severity Cela vous montre le statut de l'événement particulier qui a eu lieu pendant
l'exécution du Workflow :
• INFO : Ceci indique des informations générales sur le système
• ERROR : Indique l'erreur qui s'est produite et à cause de laquelle le
système de gestion de l'information de l'entreprise a été interrompu.
• AVERTISSEMENT : Ceci indique le processus qui n'a pas été
exécuté comme prévu. Le flux de travail ne peut pas échouer à
cause de cet avertissement.
Timestamp Cela indique le moment exact de l'étape particulière que le flux de travail
était en train d'exécuter.
Nœud Il indique le nom du nœud sous lequel le flux de travail est exécuté.
Thread Cela indique le thread que chaque étape utilise pour s'exécuter. Vous
pouvez voir les différents threads dans le journal de session.
Message Ceci indique le code de message défini par le système. En général, dans
code Informatica PowerCenter, nous ne faisons pas référence au code de
message.
Message Cela vous montre le message détaillé, indiquant les étapes qui se sont
produites pendant l'exécution du workflow.