În prezent, una din marile probleme în companii este integrarea datelor din diferite surse, prelucrarea, stocarea şi expunerea lor pentru a satisface cerinţele businessului şi implicit a lua deciziile în legătură cu îmbunătățirea anumitor produse.
Poate multe companii nu cunosc beneficiile aduse de un tool de integrare a datelor, deşi a avea un astfel de tool reprezintă o necesitate şi nu ceva deosebit.
La ce ajută aceste tool-uri?
măresc viteza de implementare, testare şi deploy;
micşorează estimările;
măresc calitatea datelor şi implicit acurateţea rapoartelor;
Ce este un ETL? Un proces folosit pentru baze de date şi în special în data warehouse care constă în extragerea datelor din diferite surse, transformarea datelor pentru a fi stocate în formatul şi structura dorită, și ulterior încărcarea acestor date în destinaţie.
Pentru a alege un tool fiabil, diverse investigaţii şi demonstraţii sunt făcute, după care o comparaţie cât mai în detaliu din care să rezulte o concluzie: tool-ul. Abilităţile minime pentru a face alegerea sunt: procese de integrare programate pentru a muta datele de pe sursa pe destinaţie, abilitatea de a controla mesajele şi erorile, manipularea metadatelor şi monitorizarea proceselor, având dreptul de a interveni asupra lor.
Am ales aleatoriu două tool-uri: Oracle Data Integrator 12c (ODI 12c) şi Talend Data Integration, încercând să fac o scurtă descriere pentru fiecare.
Ce este ODI 12c?
O platformă de integrare a datelor completă, ce satisface toate cerinţele: volum mare de date, performanță şi paralelism. ODI 12c folosește o arhitectură E-LT pentru a garanta o performanță cât mai mare, dar şi pentru un cost cât mai mic. Diferenţa majoră dintre o arhitectură ETL şi una E-LT este prezenţa serverului ETL aşa cum se observă în imaginea de mai jos:
Pachetul de management pe care îl oferă ODI 12c este ilustrat în imaginea de mai jos:
Interfaţa ODI 12c este simplă şi uşor de folosit, având patru taburi importante: Designer, Operator, Topology şi Security Navigators conectate la un Repository, ca şi mai jos:
Designer este folosit pentru a crea şi modifica metadatele, a transforma datele şi pentru a le asigura integritatea. Principalele obiecte utilizate aici sunt data models (toate detaliile despre date, de exemplu: tabele, coloane etc.) şi proiectele (regulile de încărcare şi transformare a datelor, de exemplu: mappings, proceduri, variabile etc.). Projects, Models, Load Plans and Scenarios, Global Objects şi Solutions sunt componentele acestui tab.
Operator este tab-ul folosit pentru monitorizare, în special de operatori, dar îi ajută şi pe developer-i la debug şi code check. Componentele acestuia sunt Session list (toate sesiunile cu detaliile necesare împărţite pe data, agenţi, status etc.), Hierarchical Sessions, Load Plan Executions, Scheduler, Load Plan and Scenarios şi Solutions.
Topology e folosit pentru a defini arhitectura logică şi fizică a infrastructurii.
Security e folosit pentru drepturile utilizatorilor, rolurilor şi obiectelor.
Organizarea logică şi fizică a datelor sursă şi destinaţie, cât şi transformarea lor se face în componenţa Mappings (din Designer/Projects). Folosind drag and drop din Models putem să construim întregul flow de date: definim surse de date care sunt folosite, agregate sau modificate pentru a popula destinaţia. Tot aici sunt folosite diferite Knowledge Modules pentru încărcare sau manipulare de date.
Ce este un Knowledge Module?
Knowledge Modules sunt template-uri de cod dedicate unui task din întregul proces de integrare a datelor. KM-ul nu poate fi executat fără a folosi metadate, avantajul e că nu are referinţe la obiecte fizice (datastores, coloane, physical path). Există șase categorii de KM-uri:
Reverse-engineering: preia metadatele din diferite surse.
Check: verifică consistenţa datelor.
Loading: încarcă datele la nivel de staging.
Integration: prelucrează datele şi le pune în destinaţie.
Journalizing: creează framework-ul de capturare a modificărilor de date la nivel de staging.
Pentru a automatiza flow-ul de integrare de date este folosit Package, unde se poate crea o diagramă cu interacţiunea dintre subcomponente.
Scenario rezultă din generarea codului salvat în Work Repository, a unor mappings, packages, procedures,variables etc. Chiar dacă se modifică mappings, packages sau procedures, Scenario nu este afectat şi pentru a se aplica modifiăarile trebuie regenerat. Un Scenario poate fi rulat din ODI, linia de comandă sau dintr-un web service.
Ce este Talend?
Talend este primul provider a unei soluţii open source pentru integrarea datelor. Soluţia este construită peste platforma de Eclipse RCP, făcând-o mai uşor de folosit, deoarece pentru multă lume e deja cunoscută această interfaţă. La fel ca şi ODI, Talend foloseste arhitectura E-LT.
Arhitectura pentru Talend Data Integration este ilustrată mai jos:
Repository, design workspace, Palette, diferite view-uri pentru configurări şi Outline/Code viewer sunt componentele interfeţei. În Repository găsim Business Models, Job Designs, Contexts, Code, SQL Templates, Metadata, Documentation şi Recycle bin. Detaliile despre Business Models şi Job Design pot fi afişate în design workspace, iar pentru a le crea sau modifica folosim obiecte din Palette.
Crearea unui Business Model aduce un mare avantaj în găsirea anumitor probleme înainte de a fi implementată soluţia şi la fel şi în corectarea unor probleme la stadiul de design. Business Modelul poate fi creat uşor, atât de către developeri cât şi de oameni din management, folosind diferite forme din Palette. Pe lângă formele din Palette se pot adăuga şi comentarii pentru a clarifica detaliile designului.
Un Job Design este compus din una sau mai multe componente conectate, implementând o parte sau chiar un întreg Business Model.
Componentele de mapare a datelor sunt printre cele mai importante, conţinând datele de intrare, lista de variabile, expresii şi datele de ieşire, incluzând şi legătura dintre ele. Una din componente este tMap care permite diferite operaţii asupra datelor: transformări, concatenări, filtre etc. . O opţiune oferită de tMap, ce ar ajuta la maparea unui volum mare de date, este de a salva datele temporare pe disk şi nu în memorie.
Modalităţile de rulare a unui Job Design sunt multiple, acesta se poate exporta sub diverse forme (script sh sau bat, WAR, ZIP) şi executa din diferite locuri (command line, aplicaţie Java, Talend Data Integration).
Cele două tool-uri se aseamănă foarte mult: ambele folosesc arhitectura E-LT, se bazează pe Java, au o interfaţă uşor de folosit şi se pot instala pe orice sistem de operare. Unul din marile avantaje aduse de ODI 12c este faptul că se integrează foarte bine cu toate produsele Oracle, în special cu Oracle Exadata (compute and storage system), asigurând o performanţă foarte bună. Într-un studiu recent făcut de o companie de research, s-a evidenţiat faptul că ODI 12c stă mai bine pe partea de recovery after fail, feature care este doar parţial prezent în Talend.
Având în vedere expertiza dezvoltată de-a lungul anilor a celor de la Oracle pe partea de baze de date, aceasta ne poate oferi o siguranţă mai mare în utilizarea softului dezvoltat. De asemenea, merită să acordăm încrederea şi unui tool open source precum Talend care vine din urmă şi prezintă o competiţie bună pentru ODI 12c.