1 / 47

Oracle Data Integrator (ODI)

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

gzifa
Download Presentation

Oracle Data Integrator (ODI)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oracle Data Integrator (ODI) 23 octobre 2014

  2. ODI ODI

  3. 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 • 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

  4. Généralités La suite ETL d’Oracle

  5. Généralités • 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…

  6. Généralités • 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

  7. Généralités E-T-L E-L-T Source Serveur Source Cible Source Source Source Cible Source

  8. Architecture applicative Desktop Weblogic 11g / Application server FMW CONSOLE JVM ODI Studio ODI Plugin Designer Java EE application Servlet container Web Service Container Operator Java EE application ODI console Runtime WS Public WS Data WS ODI SDK Security Java EE agent ODI SDK Topology Data source Connection Pool Repositories Sources and Targets JVM Runtime WS Work Rep Master Rep Work Rep Work Rep Standalone agent DBMS Files / XML ERP/CRM…

  9. Architecture applicative ODI Studio ODI Studio Designer Modèles Interfaces Scénarios Operator Supervisions des exécutions Topology Infrastructures des connexions Security Gestion des privilèges utilisateurs Work Rep Master Rep

  10. Architecture applicative Topology Repository Exp1 SECURITY Master Rep TOPOLOGY VERSIONING 1 3 2 MODELS MODELS PROJECTS PROJECTS EXECUTION EXECUTION EXECUTION Work Rep (DEV) Work Rep (QUA) Exec Rep (PRD)

  11. Architecture applicative Topology Repository Exp2 SECURITY SECURITY Master Rep TOPOLOGY TOPOLOGY 3 VERSIONING VERSIONING 1 2 4 MODELS MODELS PROJECTS PROJECTS EXECUTION EXECUTION EXECUTION Work Rep (DEV) Work Rep (QUA) Exec Rep (PRD) Firewall

  12. Concepts Topology Architecture logique Contexte 3 Contexte 1 Contexte 2 Architecture physique A Architecture physique B BDD BDD

  13. Concepts • Designer • Modèle • Structure des tables • Liée à l’architecture physique • RKM (Reverse Engineering)

  14. Concepts • Designer • Interface • Tables sources • Table Cible • Jointures • Filtres • Mapping

  15. Concepts • Designer • Knowledge modules (KM) : • LKM (Chargement) • IKM (Intégration) • CKM (Vérifications) • L’espace de Travail • Versionning • Solutions

  16. Concepts • Designer • Knowledge modules • Règles déclaratives • Gestion sur erreur • Options paramétrables

  17. Concepts • Designer • Package • Enchainement des Interfaces • Variables • Procédures • Stages

  18. Concepts • Operator • Suivi exécution • Requêtes • Planification • Scénarios

  19. Concepts • Security • Droits spécifiques • Niveau Objet • LDAP

  20. Concepts • 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

  21. Concepts Exemple • Ma base Saint Seiya. Modéliser en système transactionnel puis décisionnel les combats des chevaliers de bronze CHEVALIER CH_ID Nom TYPE_ID ATTAQUE AT_Nom Vitesse Puissance TYPE TYPE_ID Nom Niveau COMBAT COM_ID Lieu Date CH_ID1 CH_ID2 ASSAUT COM_ID CH_ID Heure AT_Nom Réussite ATTAQUE_ POSS AT_Nom CH_ID

  22. Concepts

  23. Concepts TYPE TYPE_ID Nom Niveau Modèle transactionnel CHEVALIER CH_ID Nom TYPE_ID ATTAQUE_ POSS AT_Nom CH_ID ATTAQUE AT_Nom Vitesse Puissance COMBAT COM_ID Lieu Date CH_ID1 CH_ID2 ASSAUT COM_ID CH_NUM Heure AT_Nom Réussite

  24. Concepts

  25. Concepts Modèle décisionnel ATTAQUE_ POSS AT_Nom CH_ID Vitesse Puissance CHEVALIER CH_ID Nom TYPE_Nom Niveau X 2 ATTAQUE AT_Nom Vitesse Puissance COMBAT Lieu Date CH_ID1 CH_ID2 Heure CH_NUM AT_Nom Réussite JOUR DATE Date_suiv Date_Prec Mois Année

  26. Concepts 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 ARMURE AR_ID Nom Tournoi Nom_Propriétaire version

  27. Concepts Modèle décisionnel ATTAQUE_ POSS AT_Nom CH_ID Vitesse Puissance CHEVALIER CH_ID Nom TYPE_Nom ARM_Nom Version X 2 ATTAQUE AT_Nom Vitesse Puissance COMBAT Lieu Date CH_ID1 CH_ID2 Heure CH_NUM AT_Nom Réussite JOUR DATE Date_suiv Date_Prec Mois Année

  28. Concepts

  29. Concepts 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

  30. Concepts

  31. Concepts Modèle décisionnel ATTAQUE_ POSS AT_Nom CH_ID Vitesse Puissance CHEVALIER CH_ID Nom TYPE_Nom ARM_Nom Version ATTAQUE AT_Nom Vitesse Puissance X 2 COMBAT Lieu Date CH_ID1 CH_ID2 Heure CH_NUM AT_Nom Réussite JOUR DATE Date_suiv Date_Prec Mois Année COMBAT_AGG CH_ID AT_Nom Count(Réussite)

  32. Plan d’exécution 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

  33. Plan d’exécution Exemple • select • STPM_ADMNSTRTR, STPM_ADMNSTRTR_NAME • from( • selectDISTINCT • DWS_EXTRACT_MVT.CMMRCL_ACT_ADM STPM_ADMNSTRTR, • DWS_EXTRACT_MVT.CMMRCL_ACT_ADM STPM_ADMNSTRTR_NAME • from ODITMP.DWS_EXTRACT_MVTDWS_EXTRACT_MVT • where(1=1) • And(DWS_EXTRACT_MVT.MVT ='clm_pc') • ) S • whereNOTEXISTS • (select1from TH_D_DW_EXEC.DWA_STPM_ADMNSTRTR T • whereT.STPM_ADMNSTRTR = S.STPM_ADMNSTRTR • and((T.STPM_ADMNSTRTR_NAME = S.STPM_ADMNSTRTR_NAME) • or(T.STPM_ADMNSTRTR_NAME ISNULLand S.STPM_ADMNSTRTR_NAME ISNULL)) • )

  34. Plan d’exécution Exemple 1) Récupération de toutes les lignes de la table 2) Elimination des doublons 3) Création d’une vue comprenant les données de la branche 4) Récupération des données en utilisant l’index 5) Table non partitionnée et lignes localisées par un index 6) Application des filtres de données

  35. Plan d’exécution Exemple • Utilisation des index • Attention aux fonctions : Select * from TAB1, TAB2 Where concat(‘NM_’,TAB1.nom) = decode(TAB2.nom,null,’ANOMYME’) Select * from TAB1, TAB2 Where TAB1.nom like TAB2.nom Select * from TAB1, TAB2 Where TAB1.nom = TAB2.nom And TO_CHAR(TAB1.date_naiss) = ‘1987-07-12’

  36. Plan d’exécution 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)…

  37. Plan d’exécution Les fonctions analytiques Exemple : Meilleur de la classe FIRST_VALUE(Nom) OVER (PARTITION BY Classe ORDER BY note DESCROWS BETWEEN 1 PRECEDING AND UNBOUNDED FOLLOWING) N1 Nom Classe Note N1 Stan Classe1 16 Stan Kyle Classe1 12 Stan Kenny Classe2 14 Wendy Wendy Classe2 17 Wendy Eric Classe1 8 Kyle

  38. Plan d’exécution 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 Createtable SOIREE_LAN as (select'1'asID,'Biere'as nom,35as prix,'Alimentaire'as categorie from dual unionall select'2'asID,'Clef USB'as nom,25as prix,'Technologique'as categorie from dual unionall select'3'asID,'Cable RJ 45'as nom,4as prix,'Technologique'as categorie from dual unionall select'4'asID,'Pizza'as nom,30as prix,'Alimentaire'as categorie from dual unionall select'5'asID,'Aspirine'as nom,2as prix,'Pratique'as categorie from dual unionall select'6'asID,'Sac de couchage'as nom,20as prix,'Pratique'as categorie from dual unionall select'7'asID,'Bassine'as nom,3as prix,'Pratique'as categorie from dual)

  39. Plan d’exécution

  40. Plan d’exécution Les fonctions analytiques Exemple : Soirée LAN select T1.categorie,T1.nom,T1.prix, (selectcount(nom)from SOIREE_LAN T2 where T1.categorie = T2.categorie groupby categorie) nb_art from SOIREE_LAN T1 where(T1.prix,T1.categorie)in(selectmax(prix),categorie from SOIREE_LAN groupby categorie) SOIREE_LAN = TESTADT

  41. Plan d’exécution

  42. Plan d’exécution Les fonctions analytiques Exemple : Soirée LAN selectdistinct first_value(categorie)over(partitionby categorie orderby prix desc) categorie, first_value(nom)over(partitionby categorie orderby prix desc) nom, first_value(prix)over(partitionby categorie orderby prix desc) prix, count(*)over(partitionby categorie) nb_art from SOIREE_LAN SOIREE_LAN = TESTADT

  43. Plan d’exécution 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 » JOUR jour mois annee MOIS mois Annee ANNEE Annee CHANGEMENT_PRIX Mois Article Prix ARTICLE_MOIS Mois Article Prix Prix par mois et par article

  44. Plan d’exécution Les costumes de Barney Stinson Préparer une requête « énormissime » pour remplir la table finale (en utilisant les tables MOIS et ARTICLE) CHANGEMENT_PRIX MoisArticle Prix 201101 Costume Noir 400 201103 Costume Noir 350 201101 Costume Bleu 500 201102 Costume Bleu 550 ARTICLE MoisArticle Prix 201101 Costume Noir 400 201102 Costume Noir 400 201103 Costume Noir 350 201101 Costume Bleu 500 201102 Costume Bleu 550 201103 Costume Bleu 550

  45. Plan d’exécution

  46. Plan d’exécution • SELECT TABLE_COMP.MOIS, TABLE_COMP.ARTICLE, • nvl(TABLE_COMP.PRIX,lag(TABLE_COMP.PRIX) • over(partitionby TABLE_COMP.ARTICLE ORDERBY TABLE_COMP.MOIS)) PRIX • FROM • (SELECT MOIS.MOIS, ARTICLE.ARTICLE, CP.PRIX • FROM MOIS • INNERJOIN ARTICLE • ON(1=1) • LEFTOUTERJOIN CHANGEMENT_PRIX CP • ON(CP.MOIS = MOIS.MOIS AND CP.ARTICLE=ARTICLE.ARTICLE)) TABLE_COMP

  47. Plan d’exécution 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 Source Cible TAB1 VIEW TAB2 Select …

More Related