47
Direction des Systèmes d’Information et des Moyens Généraux Oracle Data Integrator (ODI) 10 juin 2022

Oracle Data Integrator (ODI)

  • Upload
    gzifa

  • View
    191

  • Download
    3

Embed Size (px)

DESCRIPTION

Oracle Data Integrator (ODI). 23 octobre 2014. ODI. ODI. Généralités. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Oracle Data Integrator (ODI)

Direction des Systèmes d’Information et des Moyens Généraux

Oracle Data Integrator (ODI)

20 avril 2023

Page 2: Oracle Data Integrator (ODI)

M1-2012

P 2Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

ODI

ODI

Page 3: Oracle Data Integrator (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

Page 4: Oracle Data Integrator (ODI)

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

Page 5: Oracle Data Integrator (ODI)

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

Page 6: Oracle Data Integrator (ODI)

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

Page 7: Oracle Data Integrator (ODI)

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

Page 8: Oracle Data Integrator (ODI)

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

Page 9: Oracle Data Integrator (ODI)

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

Page 10: Oracle Data Integrator (ODI)

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

Page 11: Oracle Data Integrator (ODI)

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

Page 12: Oracle Data Integrator (ODI)

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

Page 13: Oracle Data Integrator (ODI)

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

Page 14: Oracle Data Integrator (ODI)

M1-2012

P 14Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Designer Interface

Tables sources Table Cible

Jointures Filtres

Mapping

Concepts

Page 15: Oracle Data Integrator (ODI)

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

Page 16: Oracle Data Integrator (ODI)

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

Page 17: Oracle Data Integrator (ODI)

M1-2012

P 17Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Designer

Package

Enchainement des Interfaces Variables Procédures Stages

Concepts

Page 18: Oracle Data Integrator (ODI)

M1-2012

P 18Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Operator

Suivi exécution Requêtes Planification

Scénarios

Concepts

Page 19: Oracle Data Integrator (ODI)

M1-2012

P 19Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Security

Droits spécifiques Niveau Objet

LDAP

Concepts

Page 20: Oracle Data Integrator (ODI)

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

Page 21: Oracle Data Integrator (ODI)

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

Page 22: Oracle Data Integrator (ODI)

M1-2012

P 22Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Concepts

Page 23: Oracle Data Integrator (ODI)

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

Page 24: Oracle Data Integrator (ODI)

M1-2012

P 24Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Concepts

Page 25: Oracle Data Integrator (ODI)

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

Page 26: Oracle Data Integrator (ODI)

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

Page 27: Oracle Data Integrator (ODI)

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

Page 28: Oracle Data Integrator (ODI)

M1-2012

P 28Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Concepts

Page 29: Oracle Data Integrator (ODI)

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

Page 30: Oracle Data Integrator (ODI)

M1-2012

P 30Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Concepts

Page 31: Oracle Data Integrator (ODI)

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

Page 32: Oracle Data Integrator (ODI)

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

Page 33: Oracle Data Integrator (ODI)

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

Page 34: Oracle Data Integrator (ODI)

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

Page 35: Oracle Data Integrator (ODI)

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

Page 36: Oracle Data Integrator (ODI)

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

Page 37: Oracle Data Integrator (ODI)

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

Page 38: Oracle Data Integrator (ODI)

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

Page 39: Oracle Data Integrator (ODI)

M1-2012

P 39Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Plan d’exécution

Page 40: Oracle Data Integrator (ODI)

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

Page 41: Oracle Data Integrator (ODI)

M1-2012

P 41Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Plan d’exécution

Page 42: Oracle Data Integrator (ODI)

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

Page 43: Oracle Data Integrator (ODI)

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

Page 44: Oracle Data Integrator (ODI)

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

Page 45: Oracle Data Integrator (ODI)

M1-2012

P 45Oracle Data Integrator

Amaury de Taddeo – Thélem assurances

Plan d’exécution

Page 46: Oracle Data Integrator (ODI)

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

Page 47: Oracle Data Integrator (ODI)

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