Ez az olvasó lecke bevezet az adatfeldolgozás és transzformáció világában. Megismerjük az adat transzformációk két leggyakoribb megközelítését, amelyet az adattudósok alkalmaznak: ETL és data wrangling. Az egyes módszerek megismerése mellett azt is megtanulja az olvasó, hogy mik a főbb közös tulajdonságaik és mik a különbözőségeik. Információt szerezhetünk azokról a konkrét eszközökről is, amelyek rendelkezésre állnak ETL vagy data wrangling feladatok megoldásához.
A lecke fejezetei:
- 1. fejezet: adatok lehetséges formátumai, transzformáció szükségessége és főbb típusai (olvasó)
- 2. fejezet: az ETL módszer jellemzői és eszközei (olvasó)
- 3. fejezet: az data wrangling módszer jellemzői és eszközei (olvasó)
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
data wrangling
-nek nevezzük.xxxxxxxxxx
Példa: adott egy kérdőív, amit egy webalkalmazás szolgál ki. Az egyes kitöltéseket a rendszer egy NoSQL adatbázisba gyűjti, és óránként automatikusan kiexportálja az elmúlt egy óra kitöltéseit egy-egy JSON fájlban. A feladatunk az összes eddigi kitöltés adatainak elemzése és vizualizálása. Ehhez szükséges lehet egy lépés, ami során az összes JSON fájlt összefésüljük egy CSV táblába, amit aztán elemzünk/vizualizálunk.
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:
Felhasználók
Data wrangling
: az adatokat feldolgozó, azt értő és abból értékes információt kinyerő szereplők használják (megfelelő programozói támogatás hiányában ezt korábban spreadsheet vagy BI eszközökkel végezték)ETL
: IT infrastruktúrát üzemeltetők használják, hogy az adatokat a specifikált formában elérhetővé tegyék a megfelelő platformon, de az üzleti szereplők nagyon ritkán alkalmazzákAdatok
Data wrangling
: tetszőleges formátumú (strukturált és nem strukturált) és méretű adatok feldolgozhatók a megfelelő eszközökkelETL
: leginkább jól strukturált adatok mozgatására tervezték, a nagyon intenzív adat formátum transzformálás nem az erősségeHasználati esetek
Data wrangling
: felfedező adatelemzés, új források feltérképezése, analizálási lehetőségek feltárása a cél, vagy már meglévő elemzések hatékonyabbá tételeETL
: elsődlegesen adatok központi/vállalati tárhelyre mozgatása a cél adat elemzések készítéséhez és üzleti alkalmazásokhozEgy á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.
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:
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.
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:
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.
Az alábbiakban az ETL néhány tipikus használatát mutatjuk be példákon keresztül:
A teljesség igénye nélkül felsorolunk néhány ETL eszközt, amelyek a fenti funkcionalitással rendelkeznek:
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
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:
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:
[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/