Académique Documents
Professionnel Documents
Culture Documents
In Fora Tic A
In Fora Tic A
Repository Manager : Fournit une interface graphique permettant la création des groupes,
utilisateurs, et de gérer leurs privilèges.
Designer : Le designer fournit une interface graphique pour définir des sources de données, concevoir
et définir la cible et les processus ETL
Workflow manager : Permet la création des sessions et de Workflow pour exécuter les processus
ETL. Il permet également de définir des stratégies de chargement de données.
Workflow monitor : Permet de surveiller le processus au moment de l’exécution, de visualiser les
logs.
Integration services : C’est le service qui exécute le Workflow. Vous pouvez définir plusieurs pour
permettre le chargement en parallèle.
Admin console : La console d’administration vous permet de réaliser des taches d’administration tel
que ajouter un autre Integration service, arrêter et démarrer Integration service, gérer les utilisateurs,…
Préparation de l’environnement
Avoir deux compte utilisateur dans la base de données oracle. Le premier pour la source de données,
et le deuxième pour la cible.
Créer le schéma source dans oracle
Dans l’onglet Groups de la fenêtre qui apparaît, cliquez sur Add. Entrez Gp_Tutorial comme nom de
groupe puis cliquez sur Ok.
Cliquez sur l’onglet Users, la fenêtre suivante apparaîtra
Assignez les privileges suivant à Gp_Tutorial: Workflow operator, Use Designer, Use Workflow
Manager, Use Repository Manager, Manage Connection.
Cliquez sur Ok
Entrez Tutorial dans Name. Accordez toutes les permissions à Owner et Owner’s Group.
Cliquez sur Ok
Déconnectez vous de Repository Manager à partir de Repository>Disconnect
Démarrer le Designer
Entrez le nom d’utilisateur User_Tutorial et son mot de passe puis cliquez sur Connect.
La structure d’un folder est la suivante
Entrez le nom d’utilisateur source et le mot de passe source puis cliquez sur Connect.
Sélectionnez la source cible. Entrer le nom cible dans Username et cible dans Password.
Cliquez sur Connect.
Sélectionnez All tables, puis cochez toutes les cases de Generation options.
Le tableau ci-dessous définit le schéma de données d’une application de suivi des commandes qui sera
utilisé dans ce tutorial.
Les tables sources
Mapping MAP_TRG_CUSTOMER
Ce premier Mapping a pour objectif de charger des données de la table source SRC_CUSTOMER
dans la table cible TRG_CUSTOMER.
Cependant la table source SRC_CUSTOMER ne contient pas toutes les données nécessaires, On veut
rajouter les informations suivantes à la table cible.
• La tranche d’age « AGE_RANGE » comme il est définie dans le fichier plat
SRC_AGE_GROUP qui correspond à l’attribut AGE dans la table source.
• Transformer les valeur numériques (0, 1, 2) de l’attribut DEAR de la table source, qui
correspond à Monsieur, Madame, Mademoiselle, à (Mr, Mrs, Ms) dans la table cible
• Le client doit être associé à une ville (CITY_ID) qui existe dans la table TRG_CITY
Jointures
Transformation
Cliquez create
Cliquez Done
Glissez l’attribut AGE de SQ_SRC_CUSTOMER dans LKP_AGE_RANGE
Double cliques sur LKP_AGE_RANGE pour ouvrir ses propriétés
Dans l’onglet Condition, cliquez deux fois sur le bouton Add pour ajouter deux conditions.
Cliquez Done
Dans l’onglet Condition, cliquez une fois sur le bouton Add pour ajouter une conditions.
Entrez cette condition
SALES_PERSON_ID=SALES_PERS_ID
Glissez les colonnes CUSTID, DEAR, LAST_NAME, FIRST_NAME, ADRESS, CITY_ID, PHONE,
AGE de SQ_SCR_CUSTOMER vers EXP_TRG_CUSTOMER
Glissez la colonne AGE_RANGE de LKP_RANGE_AGE vers EXP_TRG_CUSTOMER
Glissez les colonnes FIRST_NAME, LAST_NAME de LKP_SALES_PERSON vers
EXP_TRG_CUSTOMER
Transformation de DEAR
Ajouter un champ DEAR2 de type texte de taille 10
Décochez la case « I » qui correspond à INPUT
Double click dans la case qui lui correspond dans expression
Entrez cette formule dans la zone formula
DECODE(true,
DEAR=0, 'Mr',
DEAR=1, 'Mrs',
DEAR=2, 'Ms'
)
Cliquez sur validate pour valider l’expression puis sur ok
Ajouter les champs suivants : CRE_DATE et UPD_DATE de type DATE/TIME
Cochez uniquement la case « O » qui correspond à OUTPUT
Entrez SYSDATE dans le champ EXPRESSION
Cliquez sur ok
Faire correspondre les champs comme c’est montré dans la figure suivante
Cliquez Repository>save
A présent le récapitulatif du Mapping
Cliquez sur Ok
Creation d’un Workflow
Tools>Workflow Designer
Workflows>Create
Entrez WK_TRG_CUSTOMER dans NAME
Cliquez sur Ok
Tasks>Link Task
Glissez le curseur de START vers S_TRG_CUSTOMER
Repository>Save
Mapping TRG_SALES
L’objectif de ce Mapping est de charger la table SRC_ORDERS et la table SRC_ORDER_LINES à la
table cible TRG_SALES. Les données doivent être agrégé avant d’être chargées. Que les commandes
dont le statut est ‘CLO’ seront utilisées.
Cependant les données ne sont pas toujours consistantes par rapport aux contraintes d’intégrités de la
base cible.
• The sales must be associated with a customer ("CUST_ID") that exists in the
"TRG_CUSTOMER" table (reference "FK_SALES_CUST")
• The sales must be associated with a product ("PRODUCT_ID") that exists in the
"TRG_PRODUCT" table (reference "FK_SALES_PROD")
The functional details for these rules and the procedure to follow are given below.
Données sources
Jointures
Filters
Transformations
Faire glisser tous les attributs des deux tables source dans JOINT_TRG_SALES
Doubles click sur JOINT_TRG_SALES pour éditer ses propriétés
Ajouter la condition ORDER_ID1=ORDER_ID
Ajouter une transformation de type filtre pour filtrer que les commandes de statut « CLO »
Repository>Save
Créez une session et un Workflow pour exécuter ce Mapping
Création d’une session et d’un Workflow pour exécuter ce Mapping
Exécutez le Workflow
Exercices
begin
for i in (select constraint_name, table_name from user_constraints) LOOP
execute immediate 'alter table '||i.table_name||' enable constraint '||i.constraint_name||'';
end loop;
end;
/
10. créer un Workflow WF_TUTORIAL pour exécuter toutes les sessions à la fois.
Solution
Liez les attributs de la table source au attributs de la table cible comme suit
Il faut créer une séquence pour la génération automatique de la clé primaire pour la table
FAMILY_PRODUCT
Transformation>Create
Choisissez Sequence Generator dans transformation type
Entrez SEQ_TRG_PROD_FAMILY
Il faut ajouter un lookup pour relier la source SRC_PRODUCT à la table cible SRC_PROD_FAMILY
avec le champ FAMILY_NAME
Transformation>Create
Entrez LKP_TRG_PRODUCT dans transformation name
Cliquez sur OK
Tasks>Create
Entrez S_TRG_PRODUCT dans task name, puis cliquez sur Create
Cliquez sur Ok
Configurez la source et la cible pour cette session
Tasks>Create
Choisissez Command dans Task type
Entrez dans Task name Pre-Session
Editer les propriétés de la commande Pre-Session, et dans l’onglet command, cliquez sur Add
command.
Entrez le script précèdent dans la zone de texte de la commande.
Tasks>Create
Choisissez Command dans Task type
Entrez dans Task name Post-Session
Tools>Workflow Designer
Workflows>Create
Entrez WF_TUTORIAL dans Workflow name
Cliquez sur OK
Cliquez sur Workflows>Edit pour éditer ses propriétés
Dans l’onglet PROPRIETE, cochez la case correspond à Write Backward Compatible Workflow
Log File pour permettre de générer le fichier log
Entrez le chemin de fichier log C:\Tutorial\
Glissez tous les Mapping créés précédemment, et les deux commande Pre-Sessin et Post-Session
Liez et agencez les sessions comme suit
Sélectionnez le Workflow WF_TUTORIAL, puis cliquez sur le bouton pour lancer l’execution.
Attention : il faut supprimez d’abord les commandes Pre-Session et Post-Session créées dans les
session S_TRG_CUSTOMER, et S_TRG_SALES.
Création d’un Mapping pour charger des données modifiées de SRC_PRODUCT vers
TRG_PRODUCT
Apporter des modification à la source
Exécuter les commandes suivantes dans le schéma source
Nous allons créer un Mapping pour charger des données modifiées.(Utilisez le Type 1)
Dans ce Mapping, les données sources modifiées seront répercutées dans la cible, et les nouvelles
lignes seront insérées avec une clé primaire qui sera générée automatiquement.
Cliquez sur Ok
5. Glissez l’attribut PRODUCT_ID de SRC_PRODUCT dans LKP_UPD_PRODUCT
6. Double click sur LKP_UPD_PRODUCT pour éditer ses propriétés, et ajouter cette condition
PRODUCT_ID=PRODUCT_ID1
Cliquez sur Ok
7. Insérer une transformation « EXP_UPD_PRODUCT » de type Expression
17. faire correspondre les attributs de UPD_PRODUCT avec TRG_PRODUCT comme c’est montré
dans la figure suivante
18. Vous allez faire la même chose avec NewFlag, sauf, dans Update Strategy, vous devez entrez
« DD_INSERT » dans Update Strategy Expression.