ETL i ELT

Tutorijal-praktikum za tokove podataka, transformacije, učitavanje, kvalitet podataka i pripremu podataka za analitiku
ETL i ELT – uvod u tokove podataka, ekstrakciju, transformaciju, učitavanje i analitiku
Uvod

ETL i ELT predstavljaju dva važna načina na koja se podaci prenose, pripremaju i pretvaraju u oblik pogodan za analizu, izveštavanje i dalje korišćenje. Iza ovih skraćenica krije se svakodnevni rad sa podacima: preuzimanje iz različitih izvora, čišćenje grešaka, usklađivanje formata, povezivanje tabela, učitavanje u ciljni sistem i priprema za pitanja koja postavljaju analitičari, menadžment, aplikacije ili drugi informacioni sistemi.

ETL znači Extract, Transform, Load – izdvajanje, transformacija i učitavanje. U ovom pristupu podaci se prvo preuzimaju iz izvora, zatim se obrađuju i sređuju, a tek onda se učitavaju u ciljni sistem. To je klasičan i dugo korišćen način rada, posebno u tradicionalnim data warehouse okruženjima, gde je bilo važno da podaci pre ulaska u skladište budu provereni, uređeni i usklađeni sa unapred definisanim modelom.

ELT znači Extract, Load, Transform – izdvajanje, učitavanje i transformacija. U ovom pristupu podaci se najpre preuzimaju i učitavaju u ciljni sistem, često u sirovom ili polusređenom obliku, a transformacije se rade kasnije, unutar platforme u kojoj se podaci već nalaze. Ovaj pristup je posebno značajan u savremenim cloud, data lake i lakehouse arhitekturama, gde je moguće skladištiti velike količine podataka i obrađivati ih fleksibilnije.

Ovaj tutorijal-praktikum namenjen je početnicima koji žele da razumeju kako se podaci kreću od izvora do analitike, ali i svima koji već rade sa bazama podataka, SQL-om, izveštajima, data warehouse sistemima, data lake okruženjima ili poslovnom analitikom. ETL i ELT su most između operativnog sveta, u kome podaci nastaju, i analitičkog sveta, u kome se podaci tumače.

U stvarnom radu podaci retko dolaze iz jednog urednog izvora. Oni mogu stići iz relacionih baza, CSV i Excel fajlova, aplikacija, API servisa, logova, senzora, ERP sistema, CRM sistema, web prodavnica, bankarskih sistema, ITSM alata ili cloud servisa. Svaki izvor može imati svoj format, svoja pravila, svoje greške i svoj ritam promene. Zadatak ETL i ELT procesa jeste da taj raznolik materijal pretvori u korisne, povezane i proverljive podatke.

Jedna od najvažnijih tema ovog tutorijala jeste kvalitet podataka. Ako su podaci netačni, nepotpuni, zastareli, duplirani ili pogrešno povezani, ni najbolji izveštaj neće pomoći. Loši podaci mogu dovesti do pogrešnih zaključaka, pogrešnih odluka i nepoverenja u analitiku. Zato ETL i ELT nisu samo tehnički procesi, već i način da se uvede red, provera i odgovornost u rad sa podacima.

U prvom delu praktikuma upoznaćemo osnovne pojmove. Videćemo šta su ETL i ELT, zašto su tokovi podataka potrebni, kako razlikujemo izvore i odredišta podataka i zašto redosled transformacije i učitavanja menja način projektovanja sistema. Posebno ćemo obratiti pažnju na to da ETL i ELT nisu moda ili puka terminologija, već praktični odgovori na različite potrebe, količine podataka i tehničke uslove.

Zatim ćemo detaljno proći kroz ETL. Objasnićemo šta znači ekstrakcija podataka, kako se podaci izdvajaju iz izvora, šta se dešava tokom transformacije i zašto učitavanje u ciljni sistem mora biti pažljivo kontrolisano. Govorićemo o redosledu koraka, zavisnostima, proverama, neuspelim izvršavanjima i načinu na koji se jedan ETL pipeline gradi tako da bude razumljiv i pouzdan.

Nakon toga prelazimo na ELT. Videćemo zašto se u savremenim sistemima često prvo čuvaju sirovi podaci, pa se zatim transformišu prema potrebama različitih korisnika. Ovaj pristup omogućava više fleksibilnosti, lakše ponovno korišćenje podataka i bolje iskorišćenje snažnih platformi za skladištenje i obradu. Istovremeno, ELT traži dobru organizaciju slojeva, jasna pravila i pažljivo upravljanje pristupom podacima.

Posebno ćemo uporediti ETL i ELT kroz praktična pitanja: gde se podaci transformišu, koliko je podataka potrebno obraditi, koliko brzo moraju biti dostupni, kakva infrastruktura postoji, ko koristi podatke i koliko strogo mora biti kontrolisan ulaz u analitički sistem. Takvo poređenje pomaže da ne biramo pristup napamet, već prema stvarnim potrebama sistema.

U drugom delu praktikuma bavimo se kvalitetom, automatizacijom i nadzorom. Naučićemo šta znači čišćenje podataka, mapiranje polja, validacija, lineage, logging, monitoring, alerti i inkrementalno učitavanje. To su teme koje u praksi odlučuju da li je tok podataka samo jednokratna skripta ili pouzdan proces na koji se poslovanje može osloniti.

ETL i ELT su blisko povezani sa savremenim data arhitekturama. Zato ćemo ih posmatrati u odnosu na Data Warehouse, Data Lake i Lakehouse pristup. Data Warehouse često traži stabilne, uređene i modelovane podatke. Data Lake omogućava čuvanje sirovih i raznovrsnih podataka. Lakehouse pokušava da spoji fleksibilnost jezera podataka sa analitičkom disciplinom skladišta podataka.

Govorićemo i o batch i streaming obradi. Neki podaci se obrađuju jednom dnevno, jednom na sat ili po unapred određenom rasporedu. Drugi podaci moraju stići skoro u realnom vremenu, naročito kada su u pitanju događaji, logovi, korisničke aktivnosti, monitoring ili operativna upozorenja. Razumevanje razlike između periodične i kontinuirane obrade važno je za dobro projektovanje tokova podataka.

Na kraju praktikuma radićemo praktične primere i mini projekte. Krenućemo od jednostavnog primera učitavanja CSV fajla u bazu, zatim ćemo razmotriti preuzimanje podataka iz API-ja, čišćenje podataka i izgradnju jednostavnog ETL pipeline-a. Posebno ćemo obraditi i ELT model sa sirovim, obrađenim i analitičkim slojem, jer takva podela pomaže da se složeni sistemi razumeju korak po korak.

Cilj ovog tutorijala nije samo da zapamtimo redosled slova u skraćenicama ETL i ELT. Cilj je da razumemo kako podaci putuju, kako se menjaju, kako se proveravaju i kako postaju osnova za pouzdano znanje. Kada znamo da projektujemo tok podataka, lakše razumemo izveštaje, analitiku, data warehouse, data lake, lakehouse i sve savremene sisteme koji zavise od kvalitetnih podataka.

Povratak na sadržaj Sledeća lekcija →