Vous êtes sur la page 1sur 83

INTRODUCTION

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.

CHAPITRE I : L’INFORMATIQUE DECISIONNELLE

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 :

 Identifier les moyens d'augmenter les profits


 Analyser le comportement des clients
 Comparer les données avec celles des concurrents
 Suivre les performances
 Optimiser les opérations
 Prédire le succès
 Repérer les tendances du marché
 Découvrir des questions ou des problèmes

Le système Data Warehouse: architecture, Composants et


concepts

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 :

Figure: Architecture Data Warehouse

Base de données d’un data Warehouse 


La base de données centrale est le fondement de l'environnement d'entreposage de
données. Souvent, elle fait partie de la famille de la technologie SGBDR. Cependant, ce
type de mise en œuvre est limité par le fait que le système SGBDR traditionnel est
optimisé pour le traitement des bases de données transactionnelles et non pour
l'entreposage de données. Par exemple, les requêtes ad-hoc, les jointures multi-tables, les
agrégats sont gourmands en ressources et ralentissent les performances.
Par conséquent, d'autres approches des bases de données sont utilisées, comme indiqué
ci-dessous.

 Dans un entrepôt de données, les bases de données relationnelles sont déployées


en parallèle pour permettre l'évolutivité. Les bases de données relationnelles
parallèles permettent également la mémoire partagée ou le modèle de rien
partagé sur diverses configurations multiprocesseurs ou processeurs massivement
parallèles.
 De nouvelles structures d'index sont utilisées pour contourner le balayage des
tables relationnelles et améliorer la vitesse.
 Utilisation de bases de données multidimensionnelles (MDDB) pour surmonter les
limitations imposées par les modèles d'entrepôts de données relationnels.
Exemple : Essbase d'Oracle.
Outils d'acquisition, de nettoyage et de transformation (ETL)
Les outils d'acquisition, de transformation et de chargement des données sont utilisés
pour effectuer toutes les conversions, les compressions et tous les changements
nécessaires pour transformer les données en un format unifié dans l'entrepôt de
données. Également connus sous l’acronyme ETL (extraction, transformation et
chargement). Leurs fonctionnalités comprennent :

 Anonymiser les données conformément à la règlementation.


 Éliminer les données non désirées dans les bases de données opérationnelles pour
les charger dans l'entrepôt de données.
 Rechercher et remplacer les noms et définitions communs pour les données
arrivant de différentes sources.
 Calculer des résumés et des données dérivées
 En cas de données manquantes, les remplir avec des valeurs par défaut.
 Déduplication de données répétées arrivant de plusieurs sources de données.
Ces outils d'extraction, de transformation et de chargement peuvent générer des jobs
cron, des jobs en d'arrière-plan, des programmes Cobol, des scripts Shell, etc. qui mettent
régulièrement à jour les données dans l'entrepôt de données.
Ces outils ETL doivent faire face aux défis de l'hétérogénéité des bases de données et des
données.
Meta données:
Le nom méta Données suggère des concepts technologiques de haut niveau en matière
d'entreposage de données. Pourtant, c'est très simple. Les métadonnées sont des
données sur les données qui définissent l'entrepôt de données. Elles sont utilisées pour
construire, maintenir et gérer l'entrepôt de données.
Dans l'architecture de l'entrepôt de données, les métadonnées jouent un rôle important
car elles spécifient la source, l'utilisation, les valeurs et les caractéristiques des données
de l'entrepôt de données. Elles définissent également comment les données peuvent être
modifiées et traitées. Elles sont étroitement liées à l'entrepôt de données.
Outils d'interrogation
L'un des principaux objectifs de l'entreposage de données est de fournir des informations
aux entreprises afin qu'elles puissent prendre des décisions stratégiques. Les outils
d'interrogation permettent aux utilisateurs d'interagir avec le système d'entrepôt de
données. Ces outils se répartissent en quatre catégories différentes :

 Les outils de requêtes et de rapports


 Outils de développement d'applications
 Outils d'exploration de données
 Outils OLAP
Architecture des flux d'entrepôt de données
Le flux de données dans un entrepôt de données peut être catégorisé en flux entrants et
flux sortants. Lors de la conception d'un flux de données, il faut tenir compte des
dimensions et des faits partagés entre les magasins de données.
Data Marts
Un Data Mart est une couche d'accès qui est utilisée pour mettre les données à la
disposition des utilisateurs. Il est présenté comme une option pour les entrepôts de
données de grande taille, car il faut moins de temps et d'argent pour le construire.
Cependant, il n'y a pas de définition standard d'un Data Mart, qui diffère d'une personne
à l'autre. En un mot simple, le Data Mart est un magasin d'un entrepôt de données. Le
Data Mart est utilisé pour la partition des données qui sont créées pour un groupe
spécifique d'utilisateurs. Les data marts peuvent être créés dans la même base de
données que le Datawarehouse ou dans une base de données physiquement séparée.
Meilleures pratiques de l'architecture d'entrepôt de données
Pour concevoir une architecture d'entrepôt de données, il faut suivre les meilleures
pratiques ci-dessous :

 Utiliser des modèles d'entrepôt de données optimisés pour la recherche


d'informations, qu'il s'agisse du mode dimensionnel, de l'approche dénormalisée
ou hybride.
 Choisissez l'approche de conception appropriée comme l'approche top down et
Bottom up dans l'entrepôt de données.
 S'assurer que les données sont traitées rapidement et avec précision. En même
temps, adopter une approche qui consolide les données en une seule version.
 Concevoir soigneusement le processus d'acquisition et de nettoyage des données
pour l'entrepôt de données.
 Concevoir une architecture de métadonnées qui permet le partage des
métadonnées entre les composants de l'entrepôt de données.
 Envisager la mise en œuvre d'un modèle ODS lorsque les besoins en matière de
recherche d'informations se situent au bas de la pyramide d'abstraction des
données ou lorsqu'il est nécessaire d'accéder à plusieurs sources opérationnelles.
 S'assurer que le modèle de données est intégré et pas seulement consolidé. Dans
ce cas, envisager le modèle de données 3NF. Il est également idéal pour
l'acquisition d'outils ETL et de nettoyage des données.
Les outils ETL
Les outils ETL constituent une partie importante de l'entreposage de données, car ils
représentent le moyen par lequel les données sont effectivement chargées dans
l'entrepôt. Pour donner une idée générale de la fonctionnalité de ces outils, nous
mentionnons leurs tâches les plus importantes, qui comprennent :

 l'identification des données pertinentes à la source,


 l'extraction de ces informations,
 le transport de ces informations vers la DSA,
 la transformation (c'est-à-dire la personnalisation et l'intégration) des
informations provenant de sources multiples dans un format commun,
 le nettoyage de l'ensemble de données résultant,
 la propagation et le chargement des données dans l'entrepôt de données et le
rafraîchissement des Data Mart.

Figure 1.2. L'environnement des processus d'extraction-transformation-chargement


Dans la figure 1.2, nous décrivons de manière abstraite le cadre général des processus
ETL. La partie gauche représente les sources de donnée impliquées dans le processus
global. Typiquement, les sources de données sont des bases de données relationnelles et
des fichiers plats. Les données de ces sources sont extraites par des routines ou des outils
spécialisés, qui fournissent soit des nouvelles données, soit des données en différentiels.
Ensuite, ces données sont propagées vers la zone de transit des données (DSA) où elles
sont transformées et nettoyées avant d'être chargées dans l'entrepôt de données. Les
résultats intermédiaires, toujours sous forme de fichiers (le plus souvent) ou de tables
relationnelles, font partie de la zone de transit des données. L'entrepôt de données (DW)
est représenté dans la partie droite de la figure 1.2 et comprend les magasins de données
cibles, c'est-à-dire les tables de faits pour le stockage des informations et les tables de
dimensions avec la description et les hiérarchies multidimensionnelles des faits stockés.
Le chargement de l'entrepôt central est effectué à partir de la zone de transit.
Phases du rafraîchissement de la DW
Dans toutes les phases d'un processus ETL (extraction et transport, transformation et
nettoyage, et chargement), des problèmes surgissent, faisant du rafraîchissement de
l'entrepôt de données une tâche difficile. Dans la suite, afin de clarifier la complexité et
certaines des particularités des processus ETL, nous examinons brièvement plusieurs
questions, problèmes et contraintes qui apparaissent dans chaque phase séparément.
Problèmes et contraintes. [Scal03] mentionne que 90% des problèmes dans les entrepôts
de données proviennent des cycles de batch nocturnes qui chargent les données. A cette
période, les administrateurs doivent faire face à des problèmes tels que (a) le chargement
efficace des données, et (b) la synchronisation de tâches concurrentes et les
dépendances. En outre, les processus ETL ont des contraintes de temps, y compris le
temps d'initiation et leurs délais d'achèvement. En fait, dans la plupart des cas, il y a une
"fenêtre de temps" étroite dans la nuit qui peut être exploitée pour le rafraîchissement de
l'entrepôt de données, puisque le système source est hors ligne ou peu utilisé, pendant
cette période. Par conséquent, un problème majeur se pose au niveau de la
programmation du processus.
L'administrateur doit trouver le bon ordre d'exécution des tâches et des ensembles de
tâches dépendantes dans un temps limité. D'autre part, si les applications OLTP ne
peuvent pas produire les données sources nécessaires à temps pour être traitées avant la
mise en ligne de l'entrepôt de données, les informations contenues dans l'entrepôt de
données seront périmées. Néanmoins, les entrepôts de données étant utilisés à des fins
stratégiques, ce problème peut parfois être toléré, car les rapports et la planification à
long terme ne sont pas gravement affectés par ces types de défaillances.
Extraction des données
Au cours du processus ETL, l'une des toutes premières tâches qui doit être effectuée est
l'extraction des informations pertinentes qui doivent être chargées dans l'entrepôt
[ThLS01]. Afin de minimiser le temps de traitement, cela ne concerne qu'une fraction des
données sources qui ont changé depuis l'exécution précédente du processus ETL,
principalement en ce qui concerne les enregistrements nouvellement insérés et
éventuellement mis à jour. Habituellement, la détection des changements est
physiquement réalisée par la comparaison de deux instances (l'un correspondant à
l'extraction précédente et l'autre à l'extraction actuelle). Des algorithmes efficaces
existent pour cette tâche, comme les algorithmes différentiels d'instantanés présentés
dans [LaGa96]. Une autre technique est le « log sniffing » , c'est-à-dire l'analyse du fichier
journal afin de "reconstruire" les changements effectués depuis la dernière analyse. Dans
de rares cas, la détection des changements peut être facilitée par l'utilisation de
déclencheurs. Toutefois, cette solution est techniquement impossible pour de
nombreuses sources qui sont des systèmes hérités ou de simples fichiers plats. Dans de
nombreux autres cas, lorsque des systèmes relationnels sont utilisés du côté de la source,
l'utilisation de déclencheurs est également prohibitive en raison de la dégradation des
performances qu'elle entraîne et de la nécessité d'intervenir dans la structure de la base
de données. En outre, une autre question cruciale concerne le transport des données
après l'extraction, où des tâches comme le FTP, le cryptage et le décryptage, la
compression et la décompression, etc. peuvent éventuellement avoir lieu.
Transformation et nettoyage.
Il est possible de déterminer les tâches typiques qui ont lieu pendant la phase de
transformation et de nettoyage d'un processus ETL, A savoir :

 analyse des données ;


 définition du workflow de transformation et des règles de mapping ;
 vérification ;
 transformation
 récupération des données nettoyées.
En ce qui concerne les tâches de transformation, nous distinguons deux classes
principales de problèmes [Lenz02] : (a) les conflits et les problèmes au niveau du schéma
(par exemple, les conflits de dénomination et de structure), et, (b) les transformations au
niveau des données (c'est-à-dire au niveau de l'instance). Les principaux problèmes
relatifs au niveau du schéma sont (a) les conflits de dénomination, lorsque le même nom
est utilisé pour différents objets (homonymes) ou différents noms sont utilisés pour le
même objet (synonymes) et (b) les conflits structurels, lorsque l'on doit faire face à
différentes représentations du même objet dans différentes sources. En outre, il existe de
nombreuses variantes de conflits au niveau des données entre les sources :
enregistrements dupliqués ou contradictoires, représentations de valeurs différentes (par
exemple, pour l'état civil), interprétation différente des valeurs (par exemple, unités de
mesure Dollar vs Euro), niveaux d'agrégation différents (par exemple, ventes par produit
vs ventes par groupe de produits) ou référence à des moments différents dans le temps
(par exemple, ventes actuelles à partir d'hier pour une certaine source vs à partir de la
semaine dernière pour une autre source). La liste est enrichie par des problèmes
techniques de bas niveau tels que les conversions de types de données, l'application de
masques de format, l'attribution de champs à un numéro de séquence, la substitution de
constantes, la mise à NULL ou DEFAULT de valeurs en fonction d'une condition, ou
l'utilisation d'opérateurs SQL simples ; par exemple, UPPER, TRUNC, SUBSTR, etc. Les
programmes d'intégration et de transformation exécutent une grande variété de
fonctions, telles que le reformatage, le recalcul, la modification de structures clés, l'ajout
d'un élément temporel, l'identification de valeurs par défaut, la fourniture d'une logique
permettant de choisir entre plusieurs sources, le résumé, la fusion de données provenant
de plusieurs sources, etc.
Chargement des données
Le chargement final de l'entrepôt de données présente ses propres défis techniques. L'un des
principaux problèmes est la capacité à faire la distinction entre les nouvelles données et les
données existantes au moment du chargement. Ce problème survient lorsqu'un ensemble
d'enregistrements doit être classé en (a) les nouvelles lignes qui doivent être ajoutées à l'entrepôt
et (b) les lignes qui existent déjà dans l'entrepôt de données, mais dont la valeur a changé et doit
être mise à jour (par exemple, avec une commande UPDATE). Les outils ETL modernes fournissent
déjà des mécanismes pour résoudre ce problème, principalement par le biais de prédicats de
langage (par exemple, la commande MERGE d'Oracle [Orac02]). De plus, les simples commandes
SQL ne suffisent pas car la technique de récupération en boucle ouverte, où les enregistrements
sont insérés un par un, est extrêmement lente pour le grand volume de données à charger dans
l'entrepôt. Un problème supplémentaire est l'utilisation simultanée des segments de retour en
arrière et des fichiers journaux pendant le processus de chargement. La possibilité de les
désactiver comporte un certain risque en cas d'échec du chargement. Jusqu'à présent, la
meilleure technique semble être l'utilisation des outils de chargement par lots proposés par la
plupart des SGBDR, qui permettent d'éviter ces problèmes. D'autres techniques qui facilitent la
tâche de chargement impliquent la création de tables en même temps que la création des index
respectifs, la minimisation des états d'attente inter-processus et la maximisation de l'utilisation
simultanée des CPU. D'autres techniques qui facilitent la tâche de chargement impliquent la
création de tables en même temps que la création des index respectifs, la minimisation des états
d'attente inter-processus et la maximisation de l'utilisation simultanée du CPU.

Les concepts de base de l'OLAP


OLAP : (pour online Analytical Processing) est un logiciel permettant d'effectuer des analyses
multidimensionnelles à grande vitesse sur de grands volumes de données provenant d'un
entrepôt de données, d'un data Mart ou d'un autre magasin de données unifié et centralisé.

La plupart des données d'entreprise comportent plusieurs dimensions, c'est-à-dire plusieurs


catégories dans lesquelles les données sont réparties à des fins de présentation, de suivi ou
d'analyse. Par exemple, les chiffres de vente peuvent avoir plusieurs dimensions liées au lieu
(région, pays, état/province, magasin), au temps (année, mois, semaine, jour), au produit
(vêtements, hommes/femmes/enfants, marque, type), etc.

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.

Figure : Les cubes OLAP

Les cubes OLAP permettent quatre types fondamentaux d'analyse de données


multidimensionnelles :

Drill-down : L'opération de drill-down permet de convertir des données moins détaillées en


données plus détaillées par l'une des deux méthodes suivantes : en descendant dans la hiérarchie
des concepts ou en ajoutant une nouvelle dimension au cube. Par exemple, si vous visualisez des
données de ventes pour le calendrier ou le trimestre fiscal d'une organisation, vous pouvez
effectuer une analyse descendante pour voir les ventes de chaque mois, en descendant dans la
hiérarchie des concepts de la dimension " temps ".

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.

OLAP vs. OLTP 


Le traitement des transactions en ligne, ou OLTP, désigne les méthodes et les logiciels de
traitement des données axés sur les données et les applications transactionnelles.

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.

Modélisation des données de l’entrepôt 


Schéma de l'entrepôt de données
Le schéma de l'entrepôt de données est une structure qui définit rationnellement le
contenu de l'entrepôt de données, en facilitant les opérations effectuées sur l'entrepôt de
données et les activités de maintenance du système d'entrepôt de données, qui
comprend généralement la description détaillée des bases de données, des tables, des
vues, des index et des données, qui sont régulièrement structurées à l'aide de types de
conception prédéfinis tels que le schéma en étoile, le schéma en flocon de neige, le
schéma en galaxie (également connu sous le nom de schéma de constellation de faits).

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.

Figure : schéma en étoile


Le schéma en flocons de neige : Le schéma Snowflake agit comme une version étendue
d'un schéma en étoile. Des dimensions supplémentaires sont ajoutées au schéma en
étoile. Ce schéma est connu sous le nom de flocon de neige en raison de sa structure.
Dans ce schéma, la table de faits centralisée sera connectée à différentes dimensions
multiples. Les dimensions présentes sont sous forme normalisée à partir des multiples
tables connexes présentes. La structure en flocon de neige est détaillée et structurée par
rapport au schéma en étoile.
Il y a plusieurs niveaux de relations et de tables enfants impliquées qui ont plusieurs
tables parentes. Dans le schéma en flocon de neige, les tables concernées sont
uniquement les tables de dimension et non les tables de faits.
La différence entre le schéma en étoile et le schéma en flocon est que les dimensions du
schéma en flocon sont gérées de manière à réduire la redondance des données. Les
tables sont faciles à gérer et à entretenir. Elles permettent également d'économiser de
l'espace de stockage.
Cependant, pour cette raison, il est nécessaire d'avoir plus de jointures dans la requête
afin d'exécuter la requête. L'expansion supplémentaire des tables conduit à la formation
de flocons. Lorsqu'une table de dimension a un attribut de cardinalité de dimensions
faible, on dit qu'elle est en flocon.
Les tables de dimension ont été divisées en tables normalisées séparées. Une fois qu'elles
sont séparées, elles sont jointes à la table de dimension originale qui a une contrainte
référentielle. Ce schéma peut nuire aux performances car le nombre de tables requises
est plus élevé pour que les jointures soient satisfaites.
L'avantage du schéma snowflake est qu'il utilise peu d'espace disque. L'implémentation
des dimensions est facile lorsqu'elles sont ajoutées à ce schéma. Le même ensemble
d'attributs est publié par différentes sources.

Figure : schéma en flocons de neige


--
Schéma de la constellation de faits ou schéma Galaxy : Une constellation de faits peut
être constituée de plusieurs tables de faits. Il s'agit de plus de deux tables qui partagent
les mêmes tables de dimension. Ce schéma est également connu sous le nom de schéma
de la galaxie.
Il est considéré comme une collection d'étoiles, d'où le nom de galaxie. Les dimensions
partagées dans ce schéma sont connues sous le nom de dimensions conformées. Les
dimensions de ce schéma sont séparées en dimensions distinctes qui ont différents
niveaux de hiérarchie.
À titre d'exemple, nous pouvons considérer que les quatre niveaux de hiérarchie prenant
en compte la géographie sont la région, le pays, l'état et la ville. Ce schéma galactique
comporte quatre dimensions. Une autre façon de créer un schéma de galaxie consiste à
diviser un schéma à une étoile en plusieurs schémas à plusieurs étoiles.
Les dimensions créées sont aussi grandes et construites sur la base de la hiérarchie. Ce
schéma est utile lorsque l'agrégation des tables de faits est nécessaire. Les constellations
de faits sont considérées comme plus complexes que les schémas en étoile et en flocon
de neige. Ils sont considérés comme plus flexibles mais difficiles à mettre en œuvre et à
maintenir.
Ce type de schéma est généralement utilisé pour des applications sophistiquées. Le
nombre multiple de tables présentes dans ce schéma le rend difficile et complexe. La mise
en œuvre de ce schéma est donc difficile. L'architecture est donc plus complexe par
rapport aux schémas en étoile et en flocon de neige.
DEUXIEME PARTIE : ANALYSE DE L’EXISTENT

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 :

 Système de gestion des comptes


 Système de gestion des prêts
 Système de gestion des employés
 Système de gestion des clients
 Système de gestion des succursales et des zones
 Système de gestion des guichets automatiques, des cartes de crédit et des cartes
de débit
 Système de gestion des services bancaires en ligne et sur Internet
 Calendrier des activités
Services offerts par la banque :
a. Comptes chèques
Synopsis:

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.

TROISIEME PARTIE : CONCEPTION

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 :

 Spécification de toutes les tables et colonnes.


 Les clés étrangères sont utilisées pour identifier les relations entre les tables.
 Une dénormalisation peut avoir lieu en fonction des exigences de l'utilisateur.
 Des considérations physiques peuvent faire que le modèle physique de données
soit très différent du modèle logique de données.
 Le modèle physique de données sera différent pour différents SGBDR. Par
exemple, le type de données d'une colonne peut être différent entre MySQL et
SQL Server.
Les étapes de la conception du modèle physique de données sont les suivantes :
 Convertir les entités en tables.
 Convertir les relations en clés étrangères.
 Convertir les attributs en colonnes.
 Modifier le modèle physique de données en fonction des contraintes/exigences
physiques.
Voici la structure de quelques tables de notre base de données de transi
Ci-dessous, le modèle physique de donnée de notre zone de transit 

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 :

 Le profil général d'un client


 Le type de la relation existante avec le client
 Quels produits supplémentaires pourrait intéresser le client
Les attributs démographiques peuvent changer au fil du temps, comme on peut s'en
douter, et le client veut suivre ces changements. Si la banque se concentre sur les
comptes d'un but commerciale plutôt que sur le client, elle a probablement des
exigences similaires pour identifier et relier les comptes communs et individuels à des fins
d'analyse. Du point de vue de la banque, un client peut être composé de plusieurs
comptes et de titulaires de comptes individuels.
Un exemple illustratif :
Considérons Jean et Marie Dupont comme un ménage.

 Jean a un compte chèque


 Marie a un compte d'épargne
 Jean et Marie ont un compte chèque commun
 Jean et Marie ont une carte de crédit
 Jean et Marie ont un prêt immobilier
Ces cinq comptes sont considérés comme faisant partie du même ménage Dupont,
malgré le fait que des incohérences mineures puissent exister dans le nom et l'adresse.
Le processus d'association des comptes individuels aux ménages ne doit pas être pris à la
légère. La tenue d'un ménage nécessite le développement de règles commerciales et
d'algorithmes pour les associer correctement. Il existe des produits et des services
spécialisés pour effectuer ces rapprochements. Il est très courant pour une grande
organisation de services financiers d'investir et mettre en place des solutions pour
répondre à ce besoin.
Nous décidons de les traiter séparément en raison de la taille de la dimension Compte et
de la volatilité des attributs au sein de la dimension Ménage, comme indiqué
précédemment, Dans une grande banque, la dimension Compte est énorme, avec
facilement plus de 10 millions de lignes qui se regroupent en plusieurs millions de
ménages. La dimension client fournit un point d'entrée un peu plus petit dans la table des
faits sans avoir à traverser une table de dimension Compte de 10 millions de lignes. De
plus, étant donné la nature changeante de la relation entre les comptes et les clients,
nous choisissons d'utiliser la table de faits pour capturer la relation plutôt que de
simplement inclure les attributs de ménage sur chaque ligne de dimension Compte. De
cette façon, nous évitons d'utiliser systématiquement l'approche SCD de type 2 avec la
dimension Compte.
Autres dimensions 

 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

QUATRIEME PARTIE : IMPLEMENTATION

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 :

 Service de référentiel (Repository Service) :


Il est responsable de la gestion des métadonnées et donne accès à celles-ci à différents
services.

 Service d'intégration (Integration Service):


Ce service est utile pour la transformation des données sources vers les données cibles.

 Service de rapport (Reporting Service) :


Ce service est utile pour générer divers rapports.

 Nœud (Node):
Il s'agit d'une plate-forme où différents services sont exécutés.

 Gestionnaire de flux de travail (Workflow Manager):


C'est utile pour faire des processus de travail et d'autres tâches et leur exécution.

 Workflow Monitor :
Il est utile pour afficher et vérifier l'exécution des processus de travail.

 Gestionnaire de référentiel (Repository Manager) :


Utilisé pour la création de nouveaux domaines. Il assiste les outils clients comme
Informatica PowerCenter Designer à accéder au serveur Informatica (services de
référentiel et services d'intégration).

 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.

Figure : Informatica services


Le domaine comprend deux types de services différents. Il s'agit des services d'application
et des services de base :

 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.

CHAPITRE V : LA PHASE DEVELOPPEMENT

Informatica PowerCenter Designer


La phase d'installation étant terminée, nous sommes prêts à faire notre premier essai
avec les outils client PowerCenter. Nous disposons des quatre outils suivants dans
Informatica PowerCenter :

 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 :

 Source Analyzer (1)


 Target Designer (2)
 Transformation Developer (3)
 Mapplet Designer (4)
 Mapping Designer (5)
Travailler avec des sources Tout fichier ou table à partir duquel nous pouvons extraire les
données dans PowerCenter est appelé une source.

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 :

• Base de données relationnelle : PowerCenter prend en charge les bases


de données relationnelles telles qu’Oracle, Sybase, DB2, Microsoft SQL
Server, SAP HANA et Teradata.
• Fichier : fichiers plats (fichiers à largeur fixe et fichiers délimités),
fichiers COBOL, fichiers XML et fichiers Excel.
• Applications haut niveau : PowerCenter prend également en charge
des applications telles que Hyperion, PeopleSoft, TIBCO, WebSphere MQ,
etc.
• Mainframe : Des fonctionnalités supplémentaires de Mainframe telles
que IBM DB2 OS/390, IBM DB2 OS/400, IDMS, IDMS-X, IMS et VSAM
• Autres : PowerCenter prend également en charge Microsoft
Access et les services Web externes.

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.

Ajout d'une nouvelle source de données ODBC


Pour ajouter une nouvelle connexion de source de données de base de données pour importer
des tables, suivez cette procédure :
1. Dans l'écran du Designer, naviguez vers Tools | Source Analyzer pour
ouvrir l'outil Source Analyzer, comme indiqué précédemment.
2. Naviguez vers Sources | Importer de la base de données.
3. Pour ajouter une nouvelle connexion à une base de données,
cliquez sur l'onglet illustré dans la capture d'écran suivante :

4. Une fenêtre contextuelle permettant d'ajouter une nouvelle connexion


apparaît à l'écran, comme le montre la capture d'écran suivante :

Nous devons
ajouter un
nouveau DSN
utilisateur.

5. L'écran suivant vous permettra de sélectionner la base de données souhaitée


dans la liste des bases de données. Pour notre cas, nous utilisons la base de
données Oracle. Si vous utilisez une autre base de données, sélectionnez
l'option appropriée dans la liste.
Sélectionnez le type de pilote de base de données que vous souhaitez ajouter et cliquez sur
Terminer.
6. Une nouvelle fenêtre s'affiche sur votre écran. Mentionnez les détails
suivants pour ajouter une nouvelle connexion, comme indiqué dans la
capture d'écran suivante.
 Nom de la source de données : Entrez le nom de la source de
données. Il peut s'agir de n'importe quel nom pour votre référence.
 Description : Indiquez une description de la connexion.
 Nom du service TNS : Mentionnez le nom du service pour votre
connexion. Nous prenons le nom de service XE ; c'est le nom de
service par défaut pour la base de données Oracle 11g.
 Host : Dans notre cas, localhost
 Port: 1221
 ID utilisateur : Mentionnez l'ID utilisateur. Nous utilisons DWH comme
utilisateur pour établir la connexion.
7. Après avoir fourni tous les détails, cliquez sur Tester la connexion.
8. Une nouvelle fenêtre s'ouvre, comme indiqué dans la capture d'écran suivante :

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.

Vous pouvez ajouter différents types de bases de données à votre référentiel. Il


s'agit d'un processus unique que vous devez effectuer avant de pouvoir
commencer à utiliser les tables.

Travailler avec des tables de bases de


données - l'option d'importation
Nous allons d'abord commencer à travailler sur les tables relationnelles. Vous
pouvez importer ou créer la structure de la table dans Source Analyzer. Après
avoir ajouté ces définitions de sources au référentiel, vous les utilisez dans un
mapping.

Effectuez les étapes suivantes pour importer la définition de la source de la table :

1. Dans l'écran du Designer, naviguez jusqu'à Outils | Analyseur de


source pour ouvrir l'outil Analyseur de source.
2. Naviguez vers Sources | Importer de la base de données :

3. Dans le champ Source de données ODBC, sélectionnez la source de


données ODBC que vous avez créée pour accéder aux tables sources
dans la section précédente.

4. Entrez le nom d'utilisateur et le mot de passe pour vous connecter à la base de


données. Saisissez également le nom du propriétaire de la table source si
nécessaire.

5. Cliquez sur Connecter.


6. Dans la liste Sélectionner les tables, développez le propriétaire de la base de données
et l'intitulé TABLES.
7. Sélectionnez les tables que vous souhaitez importer et cliquez sur OK.

La structure des tables sélectionnées apparaîtra dans l'espace de travail comme


indiqué dans la capture d'écran suivante :
Travailler avec des fichiers plats - l'option d'importation
Dans la section précédente, nous avons parlé de l'importation des tables
relationnelles. Avant de commencer à travailler sur l'importation de fichiers plats,
nous allons discuter de certains aspects de ce type de sources.

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.

Effectuez les étapes suivantes pour importer les fichiers délimités :

1. Dans l'écran du Designer, naviguez vers Outils | Analyseur de


source pour ouvrir l'Analyseur de source.
2. Naviguez vers Sources | Importer depuis un fichier

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 :

Travailler avec les cibles


Nous avons vu dans la section précé dente que PowerCenter peut utiliser différents types
de sources. De même, PowerCenter est capable de travailler avec différents types de cibles
pour charger des données. Les cibles sont expliquées comme suit:

• Base de données relationnelle : PowerCenter prend en charge toutes les


bases de données relationnelles telles qu’Oracle, Sybase, DB2, Microsoft SQL
Server, SAP HANA et Teradata.
• Fichiers : PowerCenter prend en charge les fichiers plats (fichiers à
largeur fixe et fichiers délimités), les fichiers COBOL, les fichiers XML
et les fichiers Excel.
• Applications de haut niveau : PowerCenter prend également en charge
des applications telles que Hyperion, PeopleSoft, TIBCO, WebSphere MQ,
etc.
• Mainframe : Des fonctionnalités supplémentaires de Mainframe
telles que IBM DB2 OS/390, IBM DB2 OS/400, IDMS, IDMS-X, IMS et
VSAM peuvent être achetées.
• Autres : PowerCenter prend également en charge Microsoft
Access et les services Web externes.

Comme nous avons parlé de l'importation et de la création de fichiers et de tables sources,


nous devons de la même manière travailler sur les définitions des cibles.
Le processus d'importation de la table cible est exactement le même que celui de
l'importation de la table source ; la seule différence est que vous devez travailler dans
Target Designer.
Vous pouvez importer ou créer la structure de la table dans Target Designer. Après avoir
ajouté ces définitions de cible au référentiel, vous pouvez les utiliser dans un mappage.
Effectuez les étapes suivantes pour importer la définition de la cible de la table :

1. Dans l'écran du Designer, naviguez vers Outils | Target Designer.


2. Naviguer vers Targets | Import from Database.
3. Dans le bouton Source de données ODBC, sélectionnez la source de
données ODBC que vous avez créée pour accéder aux tables sources.
Nous avons déjà ajouté la source de données en travaillant sur les
sources.
4. Entrez le nom d'utilisateur et le mot de passe pour vous connecter à la base de
données.
5. Cliquez sur Connecter.
6. Dans la liste Sélectionner les tables, développez le propriétaire de la base de
données et l'intitulé TABLE.
7. Sélectionnez les tables que vous souhaitez importer et cliquez sur OK.
La structure des tables sélectionnées apparaît dans l'écran Target Designer de l'espace de
travail.
Comme mentionné, le processus est exactement similaire à l'importation de la source dans
Source Analyzer. Veuillez suivre les étapes précédentes si vous avez des problèmes.

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.

1. Dans la boîte de dialogue Mapping Name, entrez


m_PASS_THROUGH_EMPLOYEES et cliquez sur OK.

2. Faites glisser la définition de la source EMPLOYEES dans le Mapping Designer.


3. La définition de la source apparaît dans l'espace de travail. L'outil Designer
crée une transformation Source Qualifier et la connecte à la définition de la
source. Cette dernière est une transformation par défaut, qui vient
automatiquement avec une source.
4. Développez le nœud Targets dans la section du navigateur pour ouvrir la liste de
toutes les définitions de cibles. Faites glisser la définition de cible
TBL_TGT_EMPLOYE dans l'espace de travail. La définition de cible apparaît dans
la section Mapping Designer.

5. L'étape finale consiste à connecter la transformation Source Qualifier à


la définition cible.
6. Faites glisser les colonnes de la transformation qualificative source vers la
cible. Assurez-vous que vous liez les ports correctement, car tout
déséquilibre dans la liaison des ports rendra l’extraction des données
incorrect. Ceci est montré dans la capture d'écran suivante :

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.

8. Naviguez jusqu'à Repository | Save.

Ainsi, le mappage est terminé et enregistré dans le référentiel. Vous pouvez


vérifier les détails dans le panneau Sortie.

Mise en œuvre du SCD


Slowly Changing Dimensions (SCD), comme son nom l'indique, le SCD permet de
maintenir les changements dans la table Dimension. Notez que nous parlons ici des
SCD de manière générale. C’est-à-dire les SCD1, SCD2 et SCD3. Il existe également des
SCDs hybrides. Les SCDs hybrides ne sont rien d'autre qu'une combinaison de
plusieurs SCDs qui répondent à des besoins plus complexes.
Les différents types de DSC sont décrits comme suit :

• 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 :

Considérons la colonne Departement dans la table TBL_TGT_ EMPLOYE et que nous


souhaitons suivre les changements de lieu de travail des employés. Prenons
l'exemple d'un enregistrement pour l'ID 1 d’Emilie Vallée qui travaillait
initialement à Maillote, puis a été muté en Dordogne. Nous souhaitons conserver
l'historique dans le champ Departement.

Regardez le tableau suivant du type SCD2, où nous avons ajouté le numéro de


version :
Comme vous pouvez le constater, nous conservons l'historique complet en ajoutant deux
nouvelles colonnes dans la table, à savoir SNO pour gérer les problèmes d'enregistrements
en double «  clé primaire » et VERSION pour conserver historique.
Reprenons l’exemple de l’enregistrement Emilie. Comme elle a été muté en
Dordogne, la table TBL_TGT_EMPLOYE a été modifiée et la modification a été
conservée :

Le nouvel enregistrement a pour numéro de version 2 et l’ancien 1. Le numéro le


plus grand est celui de l’enregistrement le plus récent.

Implémentation du SCD2 dans Informatica Powercenter

Passons en revue chaque transformation utilisée dans notre mapping SCD2 :


• Employe (flat file) (1) : Définition de la table source
• Source qualifier (2) : Il extrait les données du fichier ou de la table source
dans le mapping. Il transmet les données aux transformations en aval, c'est-
à -dire la transformation de type lookup, expression et filtre.
• Lookup (LKPTRANS) (3) : Cette fonction est utilisée pour consulter la table
cible. Elle met en cache les données existantes. La condition EMPLOYEE_
ID=IN_EMPLOYEE_ID compare les données avec la table source et la table
cible, et transmet les données en fonction de cette comparaison.
• Expression (EXPTRANS) (4): Cette expression reçoit les données d'une
transformation en amont et sur cette base, elle crée deux drapeaux, qui sont
NewFlag et ChangedFlag :
 Condition pour NewFlag:
IIF(ISNULL(PM_PRIMARYKEY), TRUE, FALSE)
 Attribut la valeur 1 au champs VERSION
 Condition pour ChangedFlag: IIF(NOT
ISNULL(PM_PRIMARYKEY) AND
(DECODE(Departement,PM_PREV_Departement,1,0)=0),
TRUE, FALSE)
 Incrémente la valeur de VERSION par 1
 Puis, transmet les données aux transformations de filtres en aval.
• Filter (5) : Ce filtre permet de filtrer les enregistrements qui proviennent
d'une transformation d'expression en amont et qui sont marqués comme
ChangedFlag ; il permet seulement aux enregistrements avec NewFlag
d'être transmis.
• Filter1 (6) : Ce filtre permet de filtrer les enregistrements qui proviennent
d'une transformation d'expression en amont et qui sont marqués comme
NewFlag ; il permet uniquement aux enregistrements avec ChangedFlag
d'être transmis.
• Sequence generator (7): générateur génère une séquence de valeurs pour
chaque nouvelle ligne marquée comme NewFlag, qui vient incrémenter la
cible de 1. Il introduit la valeur dans la colonne SNO de la table cible.

• TBL_TGT_EMPLOYE (8 et 9) : deux instances de la table cible

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.

Créer une transformation


Il existe plusieurs façons de créer une transformation dans l'outil Designer. Elles sont
abordées dans les sections suivantes.

Mapping Designer
Pour créer des transformations à l'aide de Mapping Designer, effectuez les étapes suivantes :

1. Ouvrez le mapping dans Mapping Designer. Ensuite, ouvrez le mapping


dans lequel vous souhaitez ajouter une transformation, et naviguez vers
Transformation | Créer.

2. Dans la liste déroulante des transformations, sélectionnez la


transformation que vous souhaitez créer, et spécifiez le nom. Cliquez
sur Créer, puis cliquez sur Terminé.
La transformation apparaît dans l'espace de travail du Mapping Designer. Pour
référence, nous avons créé une transformation Expression dans la figure précédente.
Vous pouvez créer toutes les autres transformations de la même manière.

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`.

La transformation de type Expression

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.

Effectuez les étapes suivantes pour obtenir cette fonctionnalité :

1. Créez la source en utilisant le fichier plat dans Source Analyzer et la cible


dans Target Designer. Nous allons utiliser agent.csv comme source et
tbl_tgt_agent comme cible.
2. Créer un nouveau mapping m_EXP_CONCAT_SALAIRE_MOYEN dans
Mapping Designer, faire glisser la source et la cible du navigateur vers
l'espace de travail, et créer la transformation Expression avec le nom
EXP_CONCAT_TOTAL.
3. Faites glisser et déposez toutes les colonnes du Source Qualifier vers la
transformation Expression. À ce stade, le mappage se présentera comme
indiqué dans la capture d'écran suivante :
Nous avons connecté AGENT_ID, AGENT_TYPE et ADRESSE directement à la cible car aucune
manipulation n'est nécessaire pour ces colonnes.
À cette étape, nous devons comprendre comment utiliser les différents types de ports
dans la transformation.

Chaque transformation, à quelques exceptions près, a des ports d'entrée et de sortie


comme le montre la capture d'écran suivante :

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.

Utilisation de l'éditeur d'expression


Pour manipuler la date, nous devons écrire les fonctions dans les ports. Vous pouvez utiliser
les fonctions fournies à partir de la liste des fonctions dans l'éditeur d'expression :

1. Cliquez sur l'icô ne illustrée dans la capture d'écran suivante pour


ouvrir l'éditeur d'expression.
2. De nouvelles fenêtres dans lesquelles vous pouvez écrire la fonction
apparaîtront. Dans l'onglet Fonctions, vous pouvez utiliser ces fonctions.
Informatica PowerCenter fournit toutes les fonctions qui répondent aux
besoins des fonctions SQL/Oracle, des fonctions mathématiques, des
fonctions trigonométriques, des fonctions de date, etc.

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 :

De la même manière, écrivez la fonction permettant de calculer SALAIRE_MOYEN ; la


fonction sera la suivante : (SALAIRE_JANVIER+SALAIRE_FEVRIER)/2.

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.

Effectuez les étapes suivantes pour mettre en œuvre la fonctionnalité :

1. Importez la source en utilisant le fichier tbl.employe.csv dans Source


Analyzer et créez la cible TBL_tgt_AGGR_EMPLOYE dans Target Designer.

2. Créer le mapping m_TGT_SALAIRE_TOTAL_AGGR et glisser la source et la cible


du navigateur vers l'espace de travail. Créer la transformation Aggregator.
3. Faites glisser les colonnes à partir du Source Qualifier à la transformation de
Aggregator.

4. Ajoutez une nouvelle colonne O_SALAIRE_TOTAL à la transformation de


l'agrégateur pour calculer le salaire total, comme indiqué dans la capture
d'écran suivante :
5. Ajoutez la fonction au port O_SALAIRE_TOTAL en ouvrant l'éditeur
d'expression, comme décrit dans la section précé dente. La fonction que nous
devons ajouter pour obtenir le salaire total est SUM(Salaire).

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 :

Dans ce mapping, nous souhaitons trier les données en fonction du champ


PRET_MONTANT. Pour cela, marquez le port clé des colonnes PRET_MONTANT dans la
transformation Sorter et sélectionnez dans la liste déroulante ce que vous souhaitez
avoir comme tri Ascendant ou Descendant, comme le montre 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.

Un mappage utilisant la transformation Router où nous souhaitons charger tous les


enregistrements du département Aine dans une cible, les enregistrements de Savoie dans une
autre cible, et l’enregistrement du Gard dans une troisième cible, est indiqué dans la capture
d'écran suivante :

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.

Création d'un flux de travail


Un flux de travail est une combinaison de plusieurs tâ ches reliées par des liens qui se
déclenchent dans une séquence appropriée pour exécuter un processus. Chaque flux de
travail contient une tâ che de départ ainsi que d'autres tâ ches. Lorsque vous exécutez le flux
de travail, vous déclenchez en fait la tâ che de départ, qui à son tour déclenche d'autres
tâ ches qui sont connectées dans le flux.

La figure suivante vous montre un exemple de flux de travail :


Création d'un workflow
Pour créer un flux de travail manuellement, effectuez les étapes suivantes :

1. Dans le gestionnaire de flux de travail, naviguez vers Workflows | Create.

Indiquez le nom du flux de travail. Un symbole de démarrage apparaît à l'écran


dans le gestionnaire de flux de travail. De plus, le workflow apparaît sous le
navigateur, comme le montre la capture d'écran suivante :

Nous avons ainsi appris à ajouter la tâ che de démarrage comme première étape de la création
du flux de travail.

Ajouter des tâches dans un workflow


Une fois que vous avez créé un flux de travail, vous pouvez ajouter plusieurs tâ ches à ce flux.
Vous pouvez ajouter directement la tâ che en la créant dans le gestionnaire de flux de travail,
ou vous pouvez créer la tâ che dans le développeur de tâ ches et l'utiliser dans le flux de
travail.
Ajouter directement des tâches au flux de travail
1. Dans le gestionnaire de flux de travail, naviguez vers Tasks | Create.

2. Sélectionnez dans la liste déroulante le type de tâ che que vous souhaitez


ajouter au flux de travail, puis indiquez le nom de la tâ che. La tâ che
sélectionnée apparaît à l'écran. Cliquez sur OK.

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.

4. La tâ che de session apparaît dans l'espace de travail, comme le montre la capture


d'écran suivante :
Notez que chaque tâ che aura une apparence différente et que l'icô ne apparaîtra
dans l'espace de travail en fonction de la tâ che que vous aurez choisi de créer.

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

la tâche Session - propriétés de base


Avant d'exécuter le workflow et de faire circuler les données de la source vers la cible
dans un mappage, nous devons configurer certaines propriétés de base dans une
tâ che de session. Ces propriétés permettent à la tâ che de session de prélever les
données de la source et de les charger dans la cible.

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 :

• Writers : Comme nous utilisons la table Oracle comme source/cible, la


propriété est mentionnée comme lecteur relationnel. Cela signifie que notre
cible est une table dans laquelle nous chargeons les données. Si votre cible est
un fichier plat, la propriété sera changée en File Reader.
• Connexions : Attribuez la connexion pour la base de données, comme
indiqué dans la capture d'écran précédente. Si votre source/cible est un
fichier, l'option de connexion sera désactivée, car nous n'avons pas besoin
de définir des connexions pour les fichiers. Notez que nous verrons
comment ajouter des objets de connexion plus tard dans ce chapitre.
• Properties : Faites défiler les propriétés et apportez des modifications si
nécessaire. Si vous utilisez le fichier comme source, vous devez définir
l'emplacement du fichier dans votre système sous le répertoire du fichier
source. De même, spécifiez le nom du fichier sous le nom de fichier
source si vous utilisez un fichier plat comme source.
• Bulk : Le type de chargement cible est un aspect très important lors du
chargement des données. Le type de chargement cible est de deux types :
Normal et Bulk. La sélection de la propriété bulk permet un chargement
plus rapide dans la cible. Vous ne pouvez pas utiliser la propriété bulk si
vous avez une clé primaire ou d'autres contraintes dans votre table cible.
Comme notre table cible a des clés définies, nous utilisons la propriété
normale.
Exécution du flux de travail complet
Pour exécuter le gestionnaire de flux de travail, effectuez les étapes suivantes :

1. Dans le Gestionnaire de flux de travail, ouvrez le flux de travail que vous


souhaitez exécuter en
l'espace de travail.
2. Naviguez vers Workflows | Start Workflow.

Le flux de travail commencera l'exécution, et le statut peut être vérifié dans


Gestionnaire de flux de travail : workflow monitor.
Workflow monitor
Nous utilisons le workflow monitor pour vérifier l'état du flux de travail que nous avons
exécuté dans le designer. Outre la vérification et la surveillance du déroulement des
flux, il sert aussi à plusieurs fins, comme la vérification des statistiques et la
compréhension des détails de l'exécution.

Lorsque vous exécutez le workflow, Workflow Monitor reçoit continuellement des


informations des services d'intégration et d'autres processus afin d'afficher les
informations à l'écran. L'écran du Workflow Monitor vous montre le statut du workflow
et les tâ ches en cours d'exécution.
L'écran Workflow Monitor, comme mentionné précédemment, affiche le statut du flux
de travail et des tâ ches en cours. Il propose deux vues pour afficher l'état : le
diagramme de Gantt et la vue des tâches. Vous pouvez sélectionner la vue que vous
souhaitez voir. L'écran du moniteur de flux de travail peut être vu dans la capture
d'écran suivante :
L'écran est divisé en plusieurs sections :

• Navigateur : Cette section de l'écran affiche divers référentiels, le service


d'intégration et les noms des flux de travail en cours d'exécution. Cette
section vous montre tous les objets qui ont été exécutés au moins une fois.
• Output : Cette section affiche divers détails d'information au niveau
système : service d'intégration et des référentiels.
• Temps : Cette section affiche les temps d'exécution de divers flux de travail.
• Vue Diagramme de Gantt : Cette vue vous montre les informations de divers
flux de travail
• Détails de la tâche : Cette section vous montre les détails d'une tâ che. Elle
vous montre également les statistiques de la source à la cible et les détails des
performances.
Le statut des flux de travail et des tâches
Les différents statuts possibles pour les flux de travail et les tâ ches sont les suivants :

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

Visualisation du log des sessions et du log


des workflow
Vous pouvez consulter le log de la session et du workflow à partir de l'écran Workflow
Monitor. Lorsque vous exécutez le workflow, les logs sont enregistrés sous forme de
fichier à l'emplacement que vous avez défini dans les propriétés de la session. Vous pouvez
conserver l'historique des fichiers journaux en ajoutant un horodatage ou en enregistrant
l'exécution de la session.
Pour obtenir le journal du workflow, cliquez avec le bouton droit de la souris et sélectionnez
Get Workflow Log.
un autre écran s'ouvre, qui vous montre les détails relatifs à l'exécution du workflow.
Informatica PowerCenter écrit tous les détails relatifs à l'exécution du workflow dans le
journal. En utilisant le journal du flux de travail, vous pouvez vérifier toutes les informations
liées au système qui ont été utilisées dans l'exécution du flux de travail ainsi que les messages
d'erreur, le cas échéant. La capture d'écran suivante montre le journal du workflow :

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.

Vous aimerez peut-être aussi