Direction des Systèmes d’Information et des Moyens Généraux
Oracle Data Integrator (ODI)
20 avril 2023
M1-2012
P 2Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
ODI
ODI
M1-2012
P 3Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Plateforme d’intégration de données
Ex « Sunopsis » Environnement java (Eclipse) / Génération SQL
E-T-L (Extract-Transform-Load) : Analyser et extraire les données à partir de sources et cibles hétérogènes Traitement diverses
Batch / Intégration sur événement / service de données… Nettoyer et standardiser les données selon les règles de gestion établies par
l'entreprise
Constituer le référentiel des flux d’échanges entre les systèmes
Donner la visibilité sur les traitements et les suivre
Permettre une gestion de cas de reprises
Généralités
M1-2012
P 4Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Licence de souscription (payante)
Oracle ODI ETL Traitement de volumes importants Support technique Réutilisations des flux Traçabilité (dépendances amont et aval)
Oracle Data Quality Analyse des données Validation, réparation et enrichissement des données Standardisation et nettoyage des données Identification et dé-doublonnage
Oracle MDM Uniformisation des données Traitement des données synonymes Gestion des données clefs Utilisation multiplateformes
La suite ETL d’Oracle
Généralités
M1-2012
P 5Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Les règles déclaratives
Séparation des processus métier
Modules de connaissance (KM)
Modulaires, flexibles et extensibles.
Définissent les modèles nécessaires pour la génération de code sur les systèmes impliqués
Génériques (flux de données indépendant des règles de transformation)
Hautement spécifiques (optimisation par technologie) Oracle / XML / Teradata / MySql / Flat File…
Généralités
M1-2012
P 6Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
L’approche E-L-T (Extract-Load-Transform)
Exploitation du moteur du SGBDr
Effectué sur le serveur cible
Code spécifique optimisé (KM)
Affranchissement d’un serveur tiers
Economique (licences, serveurs)
Trafic réseau
Généralités
M1-2012
P 7Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
E-T-L
E-L-T
SourceSource
SourceSourceSourceSource
CibleCibleServeurServeur
SourceSource
SourceSourceSourceSource
CibleCible
Généralités
M1-2012
P 8Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Desktop Weblogic 11g / Application server
JVM ODI Studio
Java EE application
ODI SDK
Designer
Operator
Security
Topology
FMW CONSOLEODI Plugin
Servlet container
Java EE application
ODI SDK
ODI console
Runtime WS
Java EE agent
Web Service Container
PublicWS
DataWS
Data source Connection Pool
Repositories
Master RepWork Rep
Work RepWork Rep
Sources and Targets
DBMS Files / XML ERP/CRM…
JVM
Runtime WS
Standaloneagent
Architecture applicative
M1-2012
P 9Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
ODI Studio
ODI Studio
Designer
ModèlesInterfacesScénarios
Operator
Supervisions des exécutions
Topology
Infrastructuresdes connexions
Security
Gestion des privilèges utilisateurs
Master RepWork Rep
Architecture applicative
M1-2012
P 10Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
TopologyRepositoryExp1
SECURITY
TOPOLOGY
VERSIONING
MODELS
PROJECTS
EXECUTION
MODELS
PROJECTS
EXECUTION EXECUTION
Work Rep (DEV) Work Rep (QUA) Exec Rep (PRD)
Master Rep
1
2
3
Architecture applicative
M1-2012
P 11Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
TopologyRepositoryExp2
SECURITY
TOPOLOGY
VERSIONING
MODELS
PROJECTS
EXECUTION
MODELS
PROJECTS
EXECUTION EXECUTION
Work Rep (DEV) Work Rep (QUA) Exec Rep (PRD)
Master Rep
1
2
SECURITY
TOPOLOGY
VERSIONING
4
3
Firewall
Architecture applicative
M1-2012
P 12Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Topology
Architecturelogique
Architecturelogique
Contexte 1Contexte 1 Contexte 2Contexte 2 Contexte 3Contexte 3
BDDBDD
Architecture physique AArchitecture physique A
Architecture physique BArchitecture physique B
BDDBDD
Concepts
M1-2012
P 13Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Designer Modèle
Structure des tables Liée à l’architecture physique RKM (Reverse Engineering)
Concepts
M1-2012
P 14Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Designer Interface
Tables sources Table Cible
Jointures Filtres
Mapping
Concepts
M1-2012
P 15Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Designer
Knowledge modules (KM) : LKM (Chargement) IKM (Intégration) CKM (Vérifications)
L’espace de Travail
Versionning Solutions
Concepts
M1-2012
P 16Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Designer
Knowledge modules
Règles déclaratives Gestion sur erreur
Options paramétrables
Concepts
M1-2012
P 17Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Designer
Package
Enchainement des Interfaces Variables Procédures Stages
Concepts
M1-2012
P 18Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Operator
Suivi exécution Requêtes Planification
Scénarios
Concepts
M1-2012
P 19Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Security
Droits spécifiques Niveau Objet
LDAP
Concepts
M1-2012
P 20Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Agent ODI
Composant actif orchestrant les processus d’intégration Programme Java connecté aux Repository
Se connecte aux serveurs de données pour lancer les exécutions Planification
Concepts
M1-2012
P 21Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Exemple
Ma base Saint Seiya. Modéliser en système transactionnel puis décisionnel les combats des chevaliers de bronze
CHEVALIERCH_IDNomTYPE_ID
ATTAQUEAT_NomVitessePuissance
TYPETYPE_IDNomNiveau
COMBATCOM_IDLieuDateCH_ID1CH_ID2
ASSAUTCOM_IDCH_IDHeureAT_NomRéussite
ATTAQUE_ POSSAT_NomCH_ID
Concepts
M1-2012
P 22Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Concepts
M1-2012
P 23Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
ATTAQUEAT_NomVitessePuissance
TYPETYPE_IDNomNiveau
COMBATCOM_IDLieuDateCH_ID1CH_ID2
ASSAUTCOM_IDCH_NUMHeureAT_NomRéussite
ATTAQUE_ POSSAT_NomCH_ID
CHEVALIERCH_IDNomTYPE_ID
Modèletransactionnel
Concepts
M1-2012
P 24Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Concepts
M1-2012
P 25Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
ATTAQUEAT_NomVitessePuissance
ATTAQUE_ POSSAT_NomCH_IDVitessePuissance
CHEVALIERCH_IDNomTYPE_NomNiveau
COMBATLieuDateCH_ID1CH_ID2HeureCH_NUMAT_NomRéussite
Modèledécisionnel
X 2
JOURDATEDate_suivDate_PrecMoisAnnée
Concepts
M1-2012
P 26Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Exemple
Pour ma base Saint Seiya, à partir des Modèles transactionnels et décisionnels, modéliser les interfaces de chargement des tables cibles On souhaite par ailleurs intégrer la notion d’armure stockée dans une base annexe
ARMUREAR_IDNomTournoiNom_Propriétaireversion
Concepts
M1-2012
P 27Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
ATTAQUEAT_NomVitessePuissance
ATTAQUE_ POSSAT_NomCH_IDVitessePuissance
CHEVALIERCH_IDNomTYPE_NomARM_NomVersion
COMBATLieuDateCH_ID1CH_ID2Heure CH_NUMAT_NomRéussite
Modèledécisionnel
X 2
JOURDATEDate_suivDate_PrecMoisAnnée
Concepts
M1-2012
P 28Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Concepts
M1-2012
P 29Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Exemple
Pour ma base Saint Seiya, il s’avère que le principal rapport utilisé (pour 90% de la population) est le suivant. Proposer une modification de modélisation pour optimiser au maximum le temps exécution du rapport.
Les attaques les plus utilisées avec succès
Météores de Pégase (Seiya)
Poussière de diamant (Hyôga)
Colère du dragon (Shiryû)
Chaine nébulaire (Shun)
Concepts
M1-2012
P 30Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Concepts
M1-2012
P 31Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
ATTAQUEAT_NomVitessePuissance
ATTAQUE_ POSSAT_NomCH_IDVitessePuissance
CHEVALIERCH_IDNomTYPE_NomARM_NomVersion
COMBATLieuDateCH_ID1CH_ID2HeureCH_NUMAT_NomRéussite
Modèledécisionnel
X 2
JOURDATEDate_suivDate_PrecMoisAnnée
COMBAT_AGGCH_IDAT_NomCount(Réussite)
Concepts
M1-2012
P 32Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Les plan d’exécution sous Oracle
Affiche le plan exécution défini par l’optimiseur Select, Insert, Udate et Delete Séquence des opération pour exécuter la requête
Fonction EXPLAIN PLAN Arbre avec coût et cardinalité à chaque niveau
Permet d’identifier Full scan Index utilisés Ordre des jointures et filtres Produits cartésiens, redondances de jointure…
Dépendant des statistiques
Plan d’exécution
M1-2012
P 33Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
select
STPM_ADMNSTRTR, STPM_ADMNSTRTR_NAME
from (
select DISTINCT
DWS_EXTRACT_MVT.CMMRCL_ACT_ADM STPM_ADMNSTRTR,
DWS_EXTRACT_MVT.CMMRCL_ACT_ADM STPM_ADMNSTRTR_NAME
from ODITMP.DWS_EXTRACT_MVT DWS_EXTRACT_MVT
where (1=1)
And (DWS_EXTRACT_MVT.MVT = 'clm_pc')
) S
where NOT EXISTS
( select 1 from TH_D_DW_EXEC.DWA_STPM_ADMNSTRTR T
where T.STPM_ADMNSTRTR = S.STPM_ADMNSTRTR
and ((T.STPM_ADMNSTRTR_NAME = S.STPM_ADMNSTRTR_NAME)
or (T.STPM_ADMNSTRTR_NAME IS NULL and S.STPM_ADMNSTRTR_NAME IS NULL))
)
Exemple
Plan d’exécution
M1-2012
P 34Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Exemple
1) Récupération de toutes les lignes de la table2) Elimination des doublons3) Création d’une vue comprenant les données de la branche4) Récupération des données en utilisant l’index5) Table non partitionnée et lignes localisées par un index6) Application des filtres de données
Plan d’exécution
M1-2012
P 35Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Exemple
Utilisation des index Attention aux fonctions :
Select * from TAB1, TAB2Where concat(‘NM_’,TAB1.nom) = decode(TAB2.nom,null,’ANOMYME’)
Select * from TAB1, TAB2Where TAB1.nom like TAB2.nom
Select * from TAB1, TAB2Where TAB1.nom = TAB2.nomAnd TO_CHAR(TAB1.date_naiss) = ‘1987-07-12’
Plan d’exécution
M1-2012
P 36Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Les fonctions analytiques
Depuis Oracle 8i Simplicité et performance des requêtes SQL Appliquer une fonction à une ligne en relation avec les autres lignes
Syntaxe :fonction (expression) over ([clause de partitionnement] [clause d'ordre] [clause de fenêtrage])
fonction : FIRST_VALUE, LAST_VALUE, MAX, SUM, AVG, ROW_NUMBER, RANK, LAG (ligne prec), LEAD (ligne suiv)…
Plan d’exécution
M1-2012
P 37Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Les fonctions analytiques Exemple : Meilleur de la classe
FIRST_VALUE(Nom) OVER (PARTITION BY Classe ORDER BY note DESC ROWS BETWEEN 1 PRECEDING AND UNBOUNDED FOLLOWING) N1
Nom Classe Note N1Stan Classe1 16 StanKyle Classe1 12 StanKenny Classe2 14 WendyWendy Classe2 17 WendyEric Classe1 8 Kyle
Plan d’exécution
M1-2012
P 38Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Create table SOIREE_LAN as (select '1' as ID,'Biere' as nom,35 as prix, 'Alimentaire' as categorie from dual union allselect '2' as ID,'Clef USB' as nom,25 as prix, 'Technologique' as categorie from dual union allselect '3' as ID,'Cable RJ 45' as nom,4 as prix, 'Technologique' as categorie from dual union allselect '4' as ID,'Pizza' as nom,30 as prix, 'Alimentaire' as categorie from dual union allselect '5' as ID,'Aspirine' as nom,2 as prix, 'Pratique' as categorie from dual union allselect '6' as ID,'Sac de couchage' as nom,20 as prix, 'Pratique' as categorie from dual union allselect '7' as ID,'Bassine' as nom,3 as prix, 'Pratique' as categorie from dual)
Les fonctions analytiques Exemple : Soirée LAN
Nom et prix de l’article le plus cher par catégorie avec le nombre d’article par categorie
Plan d’exécution
M1-2012
P 39Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Plan d’exécution
M1-2012
P 40Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
select T1.categorie,T1.nom,T1.prix,
(select count(nom) from SOIREE_LAN T2 where T1.categorie = T2.categorie group by categorie) nb_art
from SOIREE_LAN T1
where (T1.prix,T1.categorie) in (select max(prix),categorie from SOIREE_LAN group by categorie)
Les fonctions analytiques Exemple : Soirée LAN
SOIREE_LAN = TESTADT
Plan d’exécution
M1-2012
P 41Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Plan d’exécution
M1-2012
P 42Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
select distinct
first_value(categorie) over(partition by categorie order by prix desc ) categorie,
first_value(nom) over(partition by categorie order by prix desc ) nom,
first_value(prix) over(partition by categorie order by prix desc ) prix,
count(*) over(partition by categorie) nb_art
from SOIREE_LAN
Les fonctions analytiques Exemple : Soirée LAN
SOIREE_LAN = TESTADT
Plan d’exécution
M1-2012
P 43Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
La dimension temps
Effectuer des drill up / drill down sur la hiérarchie temps
Contrôles de saisie : (’30/02/2011’…) Gérer les tables « à trous »
JOURjourmoisannee
MOISmoisAnnee
ANNEEAnnee
CHANGEMENT_PRIXMoisArticlePrix
ARTICLE_MOISMoisArticlePrix
Prix par moiset par article
Plan d’exécution
M1-2012
P 44Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
CHANGEMENT_PRIXMois Article Prix201101 Costume Noir 400201103 Costume Noir 350201101 Costume Bleu 500201102 Costume Bleu 550
CHANGEMENT_PRIXMois Article Prix201101 Costume Noir 400201103 Costume Noir 350201101 Costume Bleu 500201102 Costume Bleu 550
ARTICLEMois Article Prix201101 Costume Noir 400201102 Costume Noir 400201103 Costume Noir 350201101 Costume Bleu 500201102 Costume Bleu 550201103 Costume Bleu 550
ARTICLEMois Article Prix201101 Costume Noir 400201102 Costume Noir 400201103 Costume Noir 350201101 Costume Bleu 500201102 Costume Bleu 550201103 Costume Bleu 550
Les costumes de Barney Stinson
Préparer une requête « énormissime » pour remplir la table finale (en utilisant les tables MOIS et ARTICLE)
Plan d’exécution
M1-2012
P 45Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Plan d’exécution
M1-2012
P 46Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
SELECT TABLE_COMP.MOIS, TABLE_COMP.ARTICLE,
nvl(TABLE_COMP.PRIX,lag(TABLE_COMP.PRIX)
over (partition by TABLE_COMP.ARTICLE ORDER BY TABLE_COMP.MOIS)) PRIX
FROM
(SELECT MOIS.MOIS, ARTICLE.ARTICLE, CP.PRIX
FROM MOIS
INNER JOIN ARTICLE
ON (1=1)
LEFT OUTER JOIN CHANGEMENT_PRIX CP
ON (CP.MOIS = MOIS.MOIS AND CP.ARTICLE=ARTICLE.ARTICLE)) TABLE_COMP
Plan d’exécution
M1-2012
P 47Oracle Data Integrator
Amaury de Taddeo – Thélem assurances
Quelques outils Oracle
DBLINK : TABLE_CIBLE@DBLNK
TRIGGER : déclenchement sur événement
Séquences : numéro incrémental, MA_SEQUENCE.NEXTVAL
Procédures / fonctions : PL/SQL
Vues : exécutée à chaque accès Vues matérialisées
SourceSource CibleCible
TAB1TAB1
TAB2TAB2VIEWVIEW
Select …
Plan d’exécution