Tags

, , ,

ETL Jobs

Extrage, transformã, si încarcã (ETL) este un proces în utilizarea bazei de date şi în special în depozite de date care implică:

– Extragerea datelor din surse externe
– Transformarea lor pentru a se potrivi nevoilor operaţionale (care pot include nivele de calitate)
– Incarcarea datelor în obiectivul final (baze de date sau depozit de date)

Extrage

Prima parte a unui proces de ETL implică extragerea datelor din sursa sistemelor. Majoritatea proiectelor de depozite de date consolideaza datele din diferite surse de sisteme. Fiecare sistem separat poate utiliza, de asemenea, o organizare diferită a datelor / format. Formatele frecvente de surse de date sunt bazele de date relationale si fisierele plate (text), dar pot include structuri de baze de date non-relaţionale, cum ar fi Information Management System (IMS) sau alte structuri de date, cum ar fi Virtual Storage Access Method (VSAM) sau Indexed Sequential Access Method (Isam), sau chiar şi preluarea din surse externe, cum ar fi prin intermediul web spider sau capturi de date de pe ecran. Extragerea converteşte datele într-un format de prelucrare a transformarii.

O parte intrinsecă a extragerii implică parcurgerea si interpretarea datelor extrase, rezultând într-o verificare pentru a vedea dacă datele îndeplinesc un model aşteptat sau o structură validă. Dacă nu, datele pot fi respinse în întregime sau partial.

Transformã

Etapa de transformare aplică o serie de reguli sau funcţii datelor extrase de la sursă pentru a obţine date noi si pentru a le încărca în dispozitivul final. Unele surse de date vor necesita foarte puţina sau chiar nici o manipulare a datelor. În alte cazuri, unul sau mai multe din următoarele tipuri de transformare pot fi necesare pentru a satisface nevoile de afaceri şi cele tehnice ale bazei de date ţintă:

Selectarea numai unor anumite coloane pentru a încărca (sau selectarea coloanelor null pentru a nu încarca). De exemplu, în cazul în care sursa de date are trei coloane (numite şi atribute) sa spunem roll_no, vârsta şi salariul, apoi extragerea poate să ia numai roll_no şi salariul. În mod similar, mecanismul de extragere poate ignora toate acele înregistrări în cazul în care salariul nu este prezent (salariul = null).

Traducerea valorilor codificate (de exemplu, în cazul în care sursa de sistem stocheaza 1 pentru masculin şi 2 pentru feminin, dar depozitul stocheaza M pentru masculin şi F pentru feminin), apeleaza curăţarea automată de date; nici o curăţare manuală nu apare în timpul ETL

Codarea valorior free-form (de exemplu, maparea “Masculin” la “1” şi “Domnul” pentru D)

Deriva o nouă valoare calculată (de exemplu, sale_amount = Cantitate * unit_price)

Filtrare

Sortare

Imbinarea datelor din surse multiple (de exemplu, căutarea, fuzionarea)

Agregarea (de exemplu, rollup – insumarea mai multor randuri de date – vânzările totale pentru fiecare magazin, şi pentru fiecare regiune, etc)

Generarea înlocuitorului de valori cheie

Transpunerea sau pivotarea (transformarea mai multor coloane în mai multe rânduri sau invers)

Divizarea unei coloane în mai multe coloane (de exemplu, punând o listă separată de o virgula specificata ca un sir de caractere într-o singură coloană ca valori individuale în coloane diferite)

Dezagregarea unor coloane repetate într-un tabel detaliat separat (de exemplu, mutarea unei serii de adrese dntr-o înregistrare în adrese separate într-un set de înregistrări într-un tabel adresă legat)

Aplicarea oricarei forme de validare a datelor simple sau complexe. În cazul în care validarea nu reuşeşte, aceasta poate duce la respingerea datelor completă, sau parţială. Prin urmare, niciuna, o parte sau toate datele sunt predate la pasul următor, în funcţie de regula de proiectare şi manipulare a excepţiei. Multe dintre transformările de mai sus pot duce la excepţii, de exemplu, atunci când o traducere de cod interpreteaza un cod necunoscut în datele extrase.

Incarcã

Faza “Încarcă” incarcă datele în obiectivul final, de obicei, depozitul de date (DW Data Warehouse). În funcţie de cerinţele organizaţiei, acest proces variază foarte mult. Unele depozite de date pot suprascrie informaţiile existente cu date cumulative, actualizate periodica (ex. în fiecare săptămână), în timp ce alte depozite de date (sau chiar alte părţi ale aceluiaşi depozit de date) pot adăuga date noi într-o formă de istorizare a datelor, de exemplu, în fiecare oră. Pentru a înţelege acest lucru, luati în considerare un depozit de date care este necesar pentru a menţine inregistrarile vânzărilor pe anul precedent. Apoi, depozitul de date va rescrie orice date care sunt mai vechi de un an cu date noi. Cu toate acestea, introducerea de date pentru orice fereastra “un an” vor fi făcute într-o manieră istorizatã. Sincronizarea şi domeniul de aplicare pentru a înlocui sau adăuga datele sunt alegeri de proiectare strategice subordonate timpului disponibil şi nevoilor mediului de afaceri. Sisteme mai complexe pot menţine o istorie şi o pistă de audit a tuturor modificărilor datelor încărcate în depozitul de date.

Întrucât faza “încãrcare” interacţionează cu o baza de date, constrângerile definite în schema bazei de date – precum şi în trigger-e activate din datele de încărcare – se aplică (de exemplu, unicitatea, integritatea referenţială, câmpuri obligatorii), care, de asemenea, contribuie la realizarea de date de calitate a procesului de ETL.

Provocãri

Procesele de ETL pot implica complexitate considerabila, şi pot apărea probleme operaţionale importante, cu sisteme operationale ETL impropriu proiectate.

Seria de valori ale datelor sau calitatea datelor într-un sistem operaţional poate depăşi aşteptările proiectantilor, la momentul validarii cand regulile de transformare sunt specificate. Profilarea datelor unei surse în timpul analizei datelor este recomandata [who?] pentru a identifica condiţiile datelor care vor trebui să fie gestionate de specificatiile regulii “transformã”. Aceasta va conduce la o modificare a regulilor de validare puse în aplicare în mod explicit şi, implicit, în procesul de ETL.

Depozitele de date de obicei cresc asincron, alimentate printr-o varietate de surse care toate servesc unui scop diferit, avand ca rezultat, de exemplu, date de referinţă diferite. ETL este un proces cheie ce aduce extrageri din surse eterogene si asincrone intr-un mediu omogen.

Analistii de proiectare ar trebui să stabilească scalabilitatea unui sistem ETL pe întreaga durata de viaţă a utilizarii sale. Aceasta include înţelegerea volumelor de date care vor trebui să fie procesate în termen de acorduri la nivel de servicii.

Timpul disponibil pentru a extrage datele din sursa sistemelor se poate schimba, ceea ce poate însemna ca aceeaşi cantitate de date ar putea fi procesate în mai puţin timp. Unele sisteme ETL trebuie să fie scalabile pentru a procesa terabytes de date sau pentru a actualiza depozite de date cu zeci de terabytes de date.

Creşterea volumului de date poate solicita modele care sunt scalabile. Aceste modele pot satisface fluxuri de date care se integreaza cu cozile mesajelor sau captura schimburilor de date in timp real. Toate acestea sunt necesare pentru transformare continuă şi actualizarea depozitelor de date.

Preluat de pe http://www.ctobi.net

Advertisements