Documente Academic
Documente Profesional
Documente Cultură
numele tuturor obiectelor create in Repository-ul ODI pot fi personalizate prin adaugarea
numelui la sfarsitul denumirii utilizate în tutorial.
Scenariu:
Vom adăuga informații despre produse și inventar în data mart-ul nostru, dintr-o baza de date
MySQL cu informații despre produse. Vom realiza o consolidare a datelor despre produse, prin
combinarea informațiilor din două tabele sursă distincte într-o singură tabelă. De asemenea vom
prelucra datele referitoare la inventar prin transformarea unui număr de produs într-o denumire.
Pentru a realiza aceste cerințe vom folosi două metode distincte pentru joncțiunea informațiilor din
două sau mai multe surse.
Deoarece o interfață ODI este utilizată în mod obișnuit pentru a popula un singur datastore
destinație, vom crea două interfețe pentru realizarea scenariului, una pentru datele referitoare la
produse și cealaltă pentru datele de inventar.
Tabela destinatie in care dorim sa integram datele MySQL o reprezinta tabela Produse din schema
datamart. Aceasta tabela are urmatoarea structura:
CATEGORIE_PRODUSE
Fluxul integrării:
Mapări necesare pentru integrare:
Sursa de date o reprezintă o bază de date MYSQL, iar staging are și destinația sunt localizate în
datamart-ul Oracle. Ca atare, vom folosi aceleași module de cunoștințe pentru încărcare și integrare
ca în seminarul anterior.
7. Apare încă o fereastră de dialog în care vom face testarea propriu zisă a conexiunii. Lăsați
nemodificată referința la Physical Agent, deoarece vrem să folosim agentul de execuție
implicit al ODI Studio. Selectați Test.
10. Selectăm tabul Context. Adăugăm un nou context de mapare a unei scheme logice, folosind
ca nume pentru schema logica MySQL_SISTEMPRODUCTIE
11. Salvăm (File→Save) şi închidem editorul.
12. Revenim la tabul Topology si cream un nou Data Server pentru tehnologia Oracle:
Nume DataServer: ODITEMP
User: oditemp
Parola: oditemp
JDBC URL: jdbc:oracle:thin:@localhost:1521:oracle
13. Selectați butonul Test Connection din bara de titlu a editorului. Alegeți să salvati datele și
continuați.
14. Selectați nodul nou creat click-dreapta → New Physical Schema. Alegem din droplist
DATAMART ca Schema(Schema) și ODITEMP ca Schema(Work Schema). De asemenea
asociem schema fizica unei scheme logice cu numele ORACLE_DATAMART folosind Contextul
Global. Salvăm și inchidem editorul.
Observați că termenul pentru zona de date în MySQL este Database (Catalog), în timp ce atunci se
definește schema fizică pentru sistemele Oracle termenul utilizat este Schema (Schema). Astfel de
diferențe între terminologiile furnizor/sistem sunt ascunse de ODI proiectantului fluxului de integrare prin
folosirea schemelor logice și a modelelor.
1. Selectam tabul Design, extindem zona Models, selectam iconița din partea dreapta din bara
Models și apoi alegem opțiunea New Model.
2. În tabul Definition completăm/selectăm următoarele informații:
3. Selectăm tabul Reverse Engineering şi verificăm să fie ales contextul Global. Apoi selectăm
butonul Reverse Engineer din colțul din stânga sus, alegem Yes pentru a salva modelul şi apoi
închidem editorul.
4. Exindem nodul MySQL Sistem Productie, nou apărut în Model şi putem observa faptul că
tabelele categorie_produse, nivel_stocuri si produse au fost transformate in datasore-uri ODI
prin procesul de inginerie inversă dinspre baza de date MySQL.
5. Vom repeta pașii pentru a crea un model pentru datamart. Cream modelul folosind
următoarele date:
o Nume: Oracle DataMart
o Tehnologie : Oracle
o Schema logica: ORACLE_DATAMART
6. Selectăm direct tab-ul Selective Reverse Engineering şi bifăm opțiunea Objects to Reverse
Engineer, ceea ce ar trebui să ducă la încărcarea tabelelor pentru care nu s-a făcut încă
ingineria inversă (le veti incarca pe toate 3).
7. Selectăm butonul Reverse Engineer apoi închidem editorul. În arborele nodului Oracle
DataMart se observă că au fost create data store-uri pentru toate tabelele.
În acet moment am creat în ODI, atât pentru tabelele sursă MySQL cât și pentru tabele destinație
Oracle, datastore-uri ce pot fi utilizate pentru crearea interfațelor de populare a tabelelor din data
mart.
Pentru a realiza aceste operații vom crea o interfață urmând următorii paşi.
1. Creem un proiect nou (din vizualizarea Projects) pe care îl vom numi MySQL-Oracle. Salvăm
(File→Save)
2. Pentru acest proiect alegem să importăm modulele de cunoştințe IKM Oracle Incremental
Update, CKM Oracle şi LKM SQL to Oracle din
C:\ORACLE\Middleware\Oracle_Home\odi\sdk\xml-reference
3. Extindem nodul First Folder şi apoi click-dreapta pe Mappings → New Mapping
5. Selectăm datastore-ul PRODUS din modelul Oracle DataMart şi facem drag-and-drop în zona
principală
6. Selectăm datasore-ul produse din modelul MySQL SISTEM PRODUSE în zona principală
15. Selectam tabul Physical si observam ca cele doua jonctiuni vor fi realizate in sistemul sursa,
ceea ce va duce la diminuarea traficului de date intre sistemele sursa si destinatie.
16. Selectăm JOIN1_AP si verificam ca pentru încărcarea datelor de la sursă în zona de pregatire
a datelor (staging area) sa fie selectat modulul de cunostinte LKM SQL to Oracle, singurul
dintre cele importate potrivit pentru aceasta activitate. Daca nu este selectat il vom selecta
noi.
17. In mod similar selectam tabela țintă (Produse) ->Integration Knowledge Module -> alegem
modulul IKM Oracle Incremental Update. Dacă nu apare în droplist, e posibil să fi sărit peste
punctul 15. La Check Knowledge Module selectăm CKM Oracle.
Inainte de a rula procesul de integrare, vrem sa studiem codul pe care il va genera ODI pe baza
informatiilor pe care le-am specificat la construirea interfetei.
19. Selectam optiunea Run, iar cand apare fereastra de executie bifam optiunea Simulation apoi
selectam OK.
20. Ne apare o fereastra ce contine un Raport de simulare. Parcurgem raportul pana ajungem la
codul SQL folosit pentru a extrage informatiile din sistemul MySQL.
Putem observa implementarea jonctiunilor pe care le-am indicat grafic mai inainte.
21. Inchidem raportul si trecem la executia efectiva a interfetei, in vederea integrarii datelor.
Rulam din nou optiunea Execute, fara a bifa Simulation de aceasta data.
22. Deschidem tabul Operator (langa Designer), extindem nodul All Execution si deschidem
sesiunea Incarcare PRODUS. Observam ca au fost incarcate inregistrarile fara actualizari,
stergeri sau erori.
23. Revenim la interfata, in tabul Mapping selectam din editor Produse→click-dreapta→ Data
pentru a vedea datele care au fost incarcate.
Bibliografie:
Hecksel, David, and Bernard Wheeler. Getting Started with Oracle Data Integrator 11g: A Hands-On
Tutorial. Packt Publishing Ltd, 2012.
Oracle® Fusion Middleware Getting Started with Oracle Data Integrator 12c