Data Lake

Tutorijal-praktikum za sirove podatke, raznovrsne formate, skladištenje, metadata, governance i pripremu podataka za analitiku
Data Lake – uvod u sirove podatke, skladištenje, metadata, governance i analitiku
Uvod

Data Lake je arhitektura za čuvanje velikih količina raznovrsnih podataka u izvornom, sirovom ili minimalno obrađenom obliku. U takvom jezeru podataka mogu se nalaziti tabele iz relacionih baza, CSV fajlovi, JSON zapisi, logovi, dokumenti, slike, tekstovi, podaci iz aplikacija, API servisa, senzora, poslovnih sistema i tehničke infrastrukture. Osnovna ideja je jednostavna: podatke ne moramo odmah potpuno oblikovati i svesti na jedan strogi model, već ih možemo prvo sačuvati, opisati, organizovati i kasnije koristiti za različite potrebe.

Za razliku od klasičnog data warehouse pristupa, u kome se podaci obično unapred čiste, transformišu i uklapaju u pažljivo projektovan model, Data Lake polazi od veće fleksibilnosti. On dozvoljava da podaci uđu u sistem i onda kada još ne znamo tačno sva pitanja koja ćemo im kasnije postaviti. To je posebno važno u savremenom okruženju, gde organizacije prikupljaju sve više podataka iz različitih izvora, različitom brzinom i u različitim formatima.

Ovaj tutorijal-praktikum namenjen je početnicima koji žele da razumeju šta je Data Lake, ali i svima koji već rade sa bazama podataka, fajlovima, izveštajima, ETL i ELT procesima, data warehouse sistemima, poslovnom analitikom ili osnovama mašinskog učenja. Data Lake je jedan od ključnih pojmova savremenog rada sa podacima, jer povezuje skladištenje, obradu, istraživanje, analitiku i dugoročno čuvanje podataka.

U stvarnom radu podaci retko dolaze uredni, kompletni i spremni za analizu. Jedan deo podataka može biti u tabelama, drugi u log fajlovima, treći u JSON porukama, četvrti u dokumentima, peti u sistemima za monitoring, a šesti u aplikacijama koje se svakodnevno menjaju. Data Lake omogućava da se taj raznovrstan materijal smesti na jedno mesto, ali to ne znači da ga treba ostaviti neuređenog i bez pravila.

Jedna od najvažnijih lekcija ovog praktikuma jeste da Data Lake nije samo veliki folder pun fajlova. Ako nema dobrih imena, slojeva, pravila, metadata zapisa, kataloga podataka, kontrole pristupa i provere kvaliteta, jezero podataka lako može postati data swamp – močvara podataka. U takvoj močvari podaci postoje, ali ih ljudi ne mogu pronaći, ne znaju šta znače, ne znaju kome pripadaju i ne mogu im verovati.

Zato ćemo Data Lake posmatrati kao uređenu arhitekturu. Upoznaćemo osnovne slojeve: ingestion sloj kroz koji podaci ulaze, raw sloj u kome se čuvaju sirovi podaci, cleaned sloj u kome se podaci osnovno sređuju, curated sloj u kome se pripremaju za analitiku i serving sloj kroz koji ih koriste korisnici, aplikacije, izveštaji ili modeli mašinskog učenja. Takva podela pomaže da veliki sistem postane razumljiv.

Posebno ćemo obratiti pažnju na izvore podataka. Data Lake može primati podatke iz relacionih baza, poslovnih aplikacija, ERP i CRM sistema, API servisa, CSV i Excel fajlova, JSON i XML dokumenata, logova, senzora, streaming platformi i cloud servisa. Svaki izvor ima svoja pravila, brzinu promene, strukturu i moguće greške. Zato ulazak podataka u Data Lake mora biti pažljivo planiran.

Govorićemo i o skladištenju. Savremeni Data Lake se često oslanja na object storage, jer takav način čuvanja omogućava smeštanje velikog broja fajlova različitih formata uz fleksibilno skaliranje. Učićemo kako se podaci organizuju kroz foldere, particije, konvencije imenovanja, datume, izvore i oblasti. Dobra organizacija skladišta nije ukras, već uslov da kasnija obrada i pretraga budu moguće.

Važna tema biće i formati podataka. Neki formati su jednostavni za čitanje, kao CSV i JSON, ali nisu uvek najefikasniji za velike analitičke obrade. Drugi formati, kao Parquet, ORC ili Avro, često se koriste kada je potrebno brže čitanje, bolja kompresija i efikasniji rad nad velikim količinama podataka. Razumevanje formata pomaže da Data Lake ne bude samo mesto za čuvanje, već i osnova za dobru obradu.

Jedan od ključnih pojmova biće schema-on-read. To znači da podaci ne moraju uvek imati strogo nametnutu šemu u trenutku kada ulaze u Data Lake, već se njihova struktura može primeniti onda kada ih čitamo i analiziramo. Ovakav pristup daje slobodu, ali traži odgovornost. Ako ne znamo šta se nalazi u podacima i kako ih treba tumačiti, fleksibilnost se lako pretvara u zbrku.

U drugom delu praktikuma bavimo se metadata slojem, katalogom podataka i upravljanjem. Metadata su podaci o podacima: naziv izvora, vreme nastanka, format, vlasnik, značenje polja, kvalitet, osetljivost, učestalost osvežavanja i veze sa drugim podacima. Data Catalog pomaže korisnicima da pronađu podatke i razumeju ih. Data lineage pokazuje odakle je podatak došao i kako je promenjen tokom obrade.

Data governance je posebno važan zato što Data Lake često sadrži veliku količinu poslovno značajnih i potencijalno osetljivih podataka. Potrebno je znati ko sme da pristupi kom skupu podataka, ko je vlasnik podataka, koja pravila važe, šta se sme iznositi, šta mora biti zaštićeno i kako se prati korišćenje. Bez upravljanja, Data Lake može postati tehnički moćan, ali poslovno rizičan sistem.

Kvalitet podataka je još jedna centralna tema. Podaci mogu biti nepotpuni, netačni, duplirani, zastareli, pogrešno formatirani ili neusklađeni sa poslovnim pravilima. U Data Lake okruženju nije uvek cilj da se sve greške uklone pre čuvanja, ali jeste cilj da znamo šta imamo, kakvog je kvaliteta i za koju upotrebu je pogodno. Razlikovaćemo sirove podatke, očišćene podatke i podatke pripremljene za analitiku.

Govorićemo i o bezbednosti, privatnosti i auditu. Data Lake može sadržati lične podatke, poslovne tajne, tehničke logove, finansijske podatke i druge osetljive informacije. Zbog toga je važno uvesti prava pristupa, enkripciju, praćenje aktivnosti, odvajanje slojeva, označavanje osetljivih podataka i jasna pravila korišćenja. Tehnička širina mora biti praćena odgovornošću.

Obrada podataka u Data Lake okruženju može biti batch ili streaming. Neki podaci se obrađuju periodično, na primer jednom dnevno ili jednom na sat. Drugi podaci pristižu stalno i potrebno ih je obrađivati gotovo u realnom vremenu. Data Lake može biti osnova za obe vrste obrade, ali svaka od njih traži drugačiji način planiranja, nadzora, čuvanja i provere.

Data Lake je blisko povezan sa ETL i ELT procesima. Podaci mogu ući u raw sloj gotovo nepromenjeni, zatim se kroz ELT ili ETL tokove mogu čistiti, obogaćivati, spajati i pripremati za analitičke slojeve. Takav pristup omogućava da se sačuva izvorni trag podataka, ali i da se iz njega izgradi uređen materijal za izveštaje, analitičke modele, istraživanje i mašinsko učenje.

Na kraju praktikuma radićemo praktične primere i mini projekte. Krenućemo od jednostavnog smeštanja CSV fajlova u Data Lake, zatim ćemo obraditi JSON logove, organizaciju particija, podelu na raw i cleaned sloj i izgradnju jednostavnog Data Lake sistema za analitičko istraživanje. Cilj je da se velika arhitektura razume kroz male, jasne i upotrebljive korake.

Cilj ovog tutorijala nije samo da zapamtimo definiciju Data Lake sistema. Cilj je da razumemo zašto je nastao, šta rešava, gde može da pomogne, gde može da napravi haos i kako ga treba organizovati da bi postao pouzdana osnova za analitiku. Dobro uređen Data Lake čuva širinu podataka, ali istovremeno uvodi red, značenje i poverenje.

Povratak na sadržaj Sledeća lekcija →