Adat feldolgozás és transzformáció

Összefoglalás

Book to read, knowledge, lecture, open book, reading book icon 1. fejezet
Adatok formátuma, transzformációs megközelítések

A korábbi leckékben átnéztük, hogy a BigData adatforrásokból milyen típusú adatok kerülhetnek ki:

A BigData 4V jellemzőinek egyike a Variety, azaz a megjelenő adatok formátuma heterogén, sokszor előfordul, hogy sok egymástól teljesen különböző formában kapjuk meg a bemenő adatainkat, amiket a tárolás és feldolgozás módjától függően transzformálnunk, egységesítenünk kell mielőtt használni tudnánk egy BigData megoldásban. Alapvetően két fajta adat transzformációt különböztethetünk meg attól függően, hogy az adatok milyen forrásból érkeznek, és mi a transzformáció célja:

https://research.aimultiple.com/wp-content/uploads/2018/04/etl-processes.png

Természetesen a fenti két dolog nem teljesen elkülöníthető, és sokszor vegyesen is használhatók. Például lehetnek olyan ETL eszközök, melyeknek a transzformációs lépésébe saját data wrangling program illeszthető, mint például a lenti ábrán szemléltetett folyamat. Igaz ez a másik irányban is, azaz az ETL eszközöket használhatják például arra, hogy az adatokat elérhetővé tegyék az üzleti elemzők számára későbbi data wrangling elvégzéséhez.

https://avikcloud.com/wp-content/uploads/2020/01/Avik-Flow-copy-1024x500.png

A két módszer közti alapvető különbségeket így lehetne összefoglalni:

Book to read, knowledge, lecture, open book, reading book icon 2. fejezet

Extract Transform Load (ETL)

Egy általános folyamat (és az azt megvalósító eszköz), amely célja az adatok különböző forrásból történő begyűjtése és átmásolása egy célhelyre, amely a forrástól különböző formában és/vagy környezetben tárolja az adatokat. Nem újkeletű dolog, az 1970-es években vált népszerűvé, és leginkább az adattárházakban alkalmazták kötegelt adatfeldolgozás keretein belül. Az ETL eszközök három fő funkciót ötvöznek:

Az ETL szerepe azonban folyamatosan változik, és manapság sokkal szélesebb körben használt, mint a csak adattárházakon belüli adatmozgatás. Az ETL rendszerek manapság támogatják a különböző adattárak, BI platformok (üzleti intelligencia alkalmazások), felhő vagy éppen a Hadoop klaszterek közötti adatmozgatást. Az ETL nem első sorban BigData technológia, de napjainkra már a BigData platformokat is támogatják. Az ETL működése kötegelt és párhuzamosított. Mivel általában hatalmas mennyiségű adatot kell mozgatni, ezért amint egy extract fázis véget ér és elkezdődik az adatok transzformálás, azzal párhuzamosan egy újabb köteg extract indul. Ugyanígy amint előállt egy kötegelt transform lépés eredménye a betöltéssel párhuzamosan újabb transzformálás kezdődik.

Extract

Az ETL folyamat első és egyben legkritikusabb része. Az adatok megfelelő kinyerése az összes későbbi fázis sikeres végrehajtást befolyásolja. A legtöbb esetben több különböző adatforrás használata szükséges, amelyek teljesen különböző formában szolgáltathatják az adatokat, pl. relációs adatbázisok, XML, JSON, hagyományos fájlok, stb. Ezek mellett azonban egyéb, akár kívülről érkező adatforrásokat is használhat, mint például web oldalak beolvasása. Az extract lépés két féle módon történhet:

  1. Az adatokat először közös formátumra hozzuk és eltároljuk egy ideiglenes tárban (ez a tipikus eset)
  2. Nincs ideiglenes tárolás, a kinyert adatokat stream szerűen rögtön a cél adattárba töltjük

Az extract lépés tartalmazza az adatok validálását, minőségi ellenőrzését is. Ebben a fázisban ellenőrizzük, hogy a betöltött értékek megfelelnek-e az adott domain-re jellemző szabályoknak. Amennyiben nem megfelelő a formátuma vagy tartalma az adatnak, azt nem dolgozzuk fel a továbbiakban, és lehetőség szerint a forrás rendszer felé is visszajelzést küldünk, hogy az adatok javítása megtörténhessen.

Transform

A transzformáció során szabályok vagy függvények egy sorozatát alkalmazzuk a kinyert és egységesített köztes adatokra, amellyel előállítjuk a cél adattárba betöltendő végleges adatot. Néhány tipikus transzformációs lépés:

Load

Ha elkészültek a transzformált adatok, a load lépés során töltjük be ezeket a cél adattárba. Ez az adattár lehet egy egyszerű tagolt formátumú sima fájltól kezdve egy adattárházig szinte bármi. A load sokszor nem üres adattárba tölti az értékeket, hanem egy már ott lévő adathalmazt frissít. Ez a frissítés lehet akár napi, heti, havi, stb. rendszerességű, és a load a korábbi értékeket felülírhatja, vagy egyszerűen minden korábbi értéket megőrizve betölti a legfrissebb adatokat.

Tipikus ETL felhasználási esetek

Az alábbiakban az ETL néhány tipikus használatát mutatjuk be példákon keresztül:

ETL megvalósítások

A teljesség igénye nélkül felsorolunk néhány ETL eszközt, amelyek a fenti funkcionalitással rendelkeznek:

Book to read, knowledge, lecture, open book, reading book icon 3. fejezet

Data Wrangling

Ahogy már a bevezetőben láttuk, maga a data wrangling folyamat nagyon hasonló az ETL folyamatához, csak más céllal történik. Data wrangling esetében (szokták még data munging néven is illetni) az elsődleges célunk a különböző forrásból érkező adatok "nyers" adatokat olyan formára hozni, amely alkalmasabb üzleti alkalmazások készítéséhez, elemzésekhez, vizualizációhoz, stb. Data wrangling esetében is megtörténik az extract és transform lépés, mint az ETL esetén, de legtöbbször az eredményeket nem eltároljuk, hanem felhasználjuk az adatok elemzéséhez, alkalmazások építéséhez. Egy data wrangling program az alábbi tipikus műveleteket hajthatja végre az adatokon:

Az alábbi ábra azt mutatja meg, hogyan illeszkedik bele a data wrangling egy tipikus BigData alkalmazás építésébe.

https://i.pinimg.com/736x/2a/39/02/2a390250ced51ae14222563687616ba5.jpg

Tipikus data wrangling eszközök

Míg az ETL viszonylag jól formalizált folyamat számos vizuális, adatfolyam leíró eszköz támogatással, addig a data wrangling műveletet tipikusan kézzel szokták elvégezni (értsd ez alatt saját adatfeldolgozó szkriptek készítését). Természetesen ebben az esetben is számos olyan könyvtár áll rendelkezésre, amely megkönnyíti ennek a feladatnak az elvégzését, de persze léteznek olyan eszközök, amelyek kifejezetten data wrangling programozás nélküli elvégzését támogatják.

Néhány konkrét módszer és eszköz a data wrangling elvégzéséhez:

Data wrangling alkalmazása BigData kontextusban

A data wrangling nem kifejezetten BigData technológia, az adattudomány egy fontos eszköze, amelyet tetszőleges méretű adathalmazok esetén bevethetünk. BigData kontextusban alapvetően a következő problémákra nyújt megoldást:

Check mark icon set. Green OK or V tick, red X, exclamation mark ...Ellenőrző kérdések

  1. Miért van szükség az adatok transzformációjára?
  2. Mi az adat transzformáció két fő megközelítése? Mondj 1-1 példát is rájuk!
  3. Mik a két fő adat transzformációs módszer közti fő különbségek?
  4. Mi az ETL folyamat három fő lépése?
  5. Mondj néhány tipikus esetet, amikor az ETL használata indokolt!
  6. Mondj néhány tipikus esetet, amikor a data wrangling használata indokolt!
  7. Milyen ETL eszközöket ismersz?
  8. Milyen data wrangling eszközöket ismersz?

Referenciák

[1] https://www.dummies.com/programming/big-data/data-science/the-role-of-traditional-etl-in-big-data/

[2] https://tdwi.org/articles/2017/02/10/data-wrangling-and-etl-differences.aspx

[3] https://www.dummies.com/programming/big-data/data-science/the-role-of-traditional-etl-in-big-data/

[4] https://www.talend.com/resources/data-wrangling-vs-etl/

[5] https://en.wikipedia.org/wiki/Extract,_load,_transform

[6] https://en.wikipedia.org/wiki/Data_wrangling

[7] https://theappsolutions.com/blog/development/data-wrangling-guide-to-data-preparation/