MINDSPIRE BLOG
Kövesse a MINDSPIRE közösségi oldalait!
Bevezetés
Tapasztalataink szerint az adatmigrációs projektek során erőforráshiány miatt sok esetben nem kerül sor az adattisztítás végrehajtására, ami természetesen nem tekinthető ideális megoldásnak.
Egy kísérleti projektünk keretében megvizsgáltuk, hogy milyen eszközzel lehetne egyszerűen, hatékonyan és fejlesztői tudás nélkül támogatni egy adatmigrációs projekt egyedi adattisztítási feladatait.
Egy ilyen megoldás és a kapcsolódó módszertan segítségével elkerülhetővé válna, hogy az adatminőség kérdése háttérbe szoruljon az ETL (‘Extract, Transform, Load’, vagy magyarul ’Kinyerés, Átalakítás és Betöltés’) feladatok végrehajtása során.
Erdész Ákos
Üzleti elemző / Adatmigrációs szakértő
Ákos közel 14 éve dolgozik a bankszektorban. Az elmúlt 5-6 évben több jelentős pénzintézeti adatmigrációs projektben vett részt Magyarországon és a kelet-közép-európai régióban. Migrációs szakemberként és adatállomány felelősként fő feladata többek között a logikai leképezési workshopok lebonyolítása, a transzformációs szabályok kidolgozása, a MINDSPIRE DELTA Migration Tool paraméterezés előkészítése, valamint a migrációs tesztek kiértékelése. A projekttevékenységek mellett másik nagy szenvedélye az Excel, amellyel kapcsolatban rendszeresen tart tréningeket munkatársainak.
Előzmények
Cégünk, a MINDSPIRE Consulting sok éve kínálja adatmigrációs szolgáltatását banki, pénzintézeti ügyfelei számára, és számtalan sikeres ETL projektet zárt le Magyarországon, illetve a közép-kelet-európai régióban. Korábbi tapasztalatainkra építve adatmigrációs módszertanunkat és eszközrendszerünket folyamatosan fejlesztjük, célunk, hogy minél teljeskörűbb szolgáltatásokat kínálhassunk ügyfeleinknek.
Ennek keretében szüntelenül kutatjuk azokat az újabb módszertani elemeket és megközelítésmódokat, amelyek közvetlenül vagy közvetve kapcsolódnak a banki adatmigrációhoz és hasznos kiegészítői lehetnek adatmigrációs módszertanunknak vagy saját fejlesztésű DELTA adatmigrációs eszközünknek. Az ilyen jellegű tevékenységeink során korábban fejlesztettünk speciális riporting funkciót a DELTA megoldásunkhoz, valamint kidolgoztuk saját adatmigrációs rekonsziliációs módszertanunkat is.
Blogpostunkban egy újabb ilyen kapcsolódó területtel, az adattisztítással foglalkozunk. Bár specifikus adattisztítási funkcionalitást még nem alakítottunk ki a MINDSPIRE DELTA eszközben, az általunk végrehajtott adattranszformációs folyamatoknak szinte minden esetben része a migrálandó forrásadatok ellenőrzése, javítása, deduplikálása, így rengeteg tapasztalatot szereztünk már ezen a területen is.
Az adatmigrációs és adattisztítási tapasztalatainkat felhasználva a MINDSPIRE, az Inovivo Group egyik tagjával, a Onespire Zrt.-vel közösen egy érdekes kísérleti projektbe is belekezdett, amelynek a részleteit mutatjuk be az alábbiakban.
Adattisztítás migrációs projekteken
Egy adatmigrációs projekt során az IT vezetők, üzleti vezetők és különböző fejlesztők, informatikus szakemberek a legkülönfélébb adattisztasággal kapcsolatos problémákkal találkozhatnak. Az egyszerű ügyfél-törzsadat – mint például név vagy levelezési cím – elírásától kezdve egészen a több adatbázis táblát érintő logikai adathiányosságokig és komplex adatkonzisztencia hibákig.
Annak ellenére, hogy az adattisztítási és az adatmigrációs tevékenységek nagyon szorosan kapcsolódnak egymáshoz, tapasztalataink szerint egy migrációs projektet megelőzően az áttöltendő forrás adatokat tartalmazó rendszerekben az adattisztítási feladatok általában háttérbe szorulnak. Illetve általánosságban is kijelenthető, hogy az adattisztítás mint tevékenység, nem része a napi operatív folyamatoknak. Ennek oka jellemzően az erőforrás-kapacitás hiánya.
Az adatmigrációs projektek megkezdésekor legtöbbször kizárólag a technikailag sikeres migrációhoz szükséges minimális adatjavítások elvégzése a cél, és nem törekednek az ismert adattisztasági problémák teljeskörű megoldására.
A projekt végrehajtása során a feltárt adathibák javítása többféle módon történhet. Ideális esetben az elkészített hibariportok alapján a forrásrendszerben részben vagy egészben megtörténik a hibák javítása.
Amennyiben ez nem lehetséges, akkor jellemzően a transzformációs logikát fejlesztő szakértőkre hárul az a feladat, hogy a célrendszerekbe már az elvárt struktúrában, formában és megfelelő adatminőségben adják át az adatokat.
A hibajavításokat SQL-ben fejlesztett adattáblákkal a transzformációs logikába építve lehet elvégezni. Az adattisztítási módszert érdemes aszerint kiválasztani, hogy az adathiba mennyiben érint több adatkört is (például ügyfél, számla, hitel, bankkártya, stb.) vagy egyedi, csak az adott adatkörre jellemző hibáról van szó.
Számos hazai és külföldi banki adatmigrációs referenciával a hátunk mögött sokféle adathibával, inkonzisztenciával találkoztunk már.
Az adattisztítási feladat egyik nehézsége éppen abban rejlik, hogy egy adott projektben kifejlesztett megoldást nem lehet változatlan formában felhasználni egy másik feladat végrehajtása során. Azaz egy új projekt kezdetén az adatminőség felmérését követően egy teljesen testreszabott koncepciót kell kialakítani az adattisztasági problémák kezelésére. Az adott projekten jelentkező adathibák kezelését jelentős mértékben meg tudja könnyíteni a korábbi sikeres adatmigrációs tevékenységek során felhalmozott módszertani tapasztalat, valamint a kifejlesztett technikai megoldások.
Kitekintés
A fenti tényezők alapján elkezdtük megvizsgálni, hogy milyen alternatív, a jelenlegi eszköztárunkon túlmutató megoldások léteznek, melyek elősegíthetik az adattisztítási feladatok elvégzését egy adatmigrációs projekt végrehajtása során. A megoldást a Data Science világban kerestük, kiaknázva a cégcsoportunkon belül megtalálható kompetenciákat.
Első körben azt vizsgáltuk, hogy a Data Science (DS) eszköztára hogyan képes lefedni egy migrációs projektben jelentkező adattisztítási igényeket.
Ennek során megállapítottuk, hogy a DS módszertanban sok olyan szempont van, amelyek egy adatmigrációs projekt szempontjából nem relevánsak (például skálázás, normalizálás). Azonban számos olyan módszertani elemet is találtunk (például hiányzó értékek pótlása, duplikátumok eltávolítása, típuskonverzió, stb.), amelyet könnyen át lehet ültetni az adatmigrációs módszertanba.
Egy kísérleti projekt (Proof of Concept, POC) keretében a Data Science környezetben elterjedt KNIME nevű eszközzel létrehoztunk egy adattisztítási folyamatot.
A POC keretében azért esett a KNIME platformra a választásunk, mert egyszerű használata mellett számos olyan specifikus funkciója van, amelyet hatékonyan lehet adattisztítási feladatok megoldására használni.
KNIME eszköz bemutatása
Mi az a KNIME?
A KNIME Analytic Platform egy ingyenesen használható, nyílt forráskódú, a teljes data science projekt életciklust lefedni képes adatelemző, jelentéskészítő és integrációs platform, amely hatékonyan támogatja az adatkinyerés – adat transzformálás – adat betöltés (ETL) folyamatokat.
A KNIME széleskörű felhasználási lehetőséget ad annak a 66+ országból érkező több mint 100 ezer fős felhasználói közösségnek a kezébe, akik az ETL folyamatokon túl például adattisztításra, algoritmus tanításra, deep learning-re, prediktív analitikára, interaktív vizuális megjelenítésre, riportkészítésre is előszeretettel választják ezt az eszközt.
Mire használható a KNIME platform?
A KNIME az adatok mögött rejlő mintázatok azonosításában erős, így ezek a rejtett információk kiaknázhatóvá válnak. Például az okmányazonosítók általában meghatározott számú és formátumú karakterekből állnak, az ettől eltérő rekordok a megoldás segítségével hatékonyan kiszűrhetők. Az eszköz így támogatja az üzleti döntéseket olyan szerteágazó területeken, mint például az egészségügy, a pénzügyi szolgáltatások és ezen belül a banki, pénzintézeti szektor, a gyártás, termelés, kiskereskedelem, kutatás-fejlesztés, tanácsadás vagy a kormányzati szféra.
A KNIME eszköz használata
A KNIME nem igényel programozói képzettséget, a felületen (workbench) fogd és vidd (drag and drop) módszerrel fel lehet építeni egy teljes folyamatot. Egy workflow-t az úgynevezett node-ok alkotnak, amelyek egy adatfunkciót ellátó elemi egységek, vagyis valamilyen feladatot látnak el az adatokon, például csv fájl beolvasása, oszlop szűrése, több tábla összekapcsolása. A node-ok beszédes elnevezésű kategóriákba vannak csoportosítva, amit egy hatékony keresés egészít ki, annak érdekében, hogy a felhasználó könnyebben találja meg a számára leginkább megfelelő adatfunkciót a több mint 2000 elérhető variációból.
A KNIME adattisztítási kísérleti projekt bemutatása
A Onespire Zrt. Data Science kompetencia központja által végrehajtott adattisztítási mintaprojekt
A kísérleti projekt célja annak kiderítése volt, hogy a KNIME alkalmazható-e egy adatmigrációs projekt adattisztítási feladatainak támogatására. A KNIME platform nagy előnye az egyszerű használat mellett a rugalmasság. Egy létrehozott munkafolyamaton könnyen és gyorsan lehet változtatni új lépések beillesztésével vagy a korábbi lépések cseréjével, konfigurálásával. Hátránya, hogy nagyobb mennyiségű adat esetén performancia problémákkal szembesülhetünk az ingyenes verzió esetén.
A KNIME workflow felépítése
A teljes munkafolyamat, amely egy 10 rekordos ügyféltörzs adattisztítását végzi el, négy különálló feladatra tagolódott. A workflow kialakításán a Data Science kompetencia központunk két szakértője közösen dolgozott, az alábbi lépések mentén:
- Adattisztító lépes meghatározása a Data Science adattisztítási módszertani elméleti háttere alapján.
- Minta adatbázis kiválasztása vagy felépítése.
- Workflow felépítése a KNIME workbench segítségével.
- Tesztelés és javítás iteratív folyamata.
A gyakorlati végrehajtás során a megfelelő node-ok kiválasztásával került összeállításra az adattisztító folyamat. Eközben lehetőség nyílt a KNIME közösségben rejlő lehetőségeket kiaknázására, ugyanis számos specifikus problémára lehetett ötletet vagy akár kész megoldást kölcsönözni a több mint 100 ezer fős felhasználói bázistól. A node-ok kiválasztása főként „trial and error” alapon történt, ha valamelyik nem az elvárt eredményt hozta, akkor könnyedén lecserélhető egy másikra. Ezzel együtt a munkafolyamat teljes összeállítása 6-8 órát vett igénybe a teszteléssel együtt.
Maga a workflow egy limitált rekordszámú adatkörön futott le, amely „szándékosan” hibás ügyféladatokat tartalmazott.
A munkafolyamat lépései
A workflow egy általános, a Data Science világban alkalmazott adattisztítási módszertanból indul ki.
Első lépéseként hozzáférést kellett adnunk az adatokhoz, amelyeket jelen esetben két különálló csv fájlban tároltunk. A megfelelő Joiner node kiválasztásával és a két tábla közötti kulcs megadásával a KNIME egy adattáblát hoz létre a két forrásfájlból.
Ezt követően a forrásadatokon több lépésben hajtottuk végre az adattisztítási feladatokat:
- a dátumot tartalmazó mezők azonos formátumra való alakítása,
- az eltérő devizák azonos pénznemre történő konvertálása (valódi projektek során csak bizonyos esetekben alkalmazható),
- az országnevekben található elírások javítása,
- a nem releváns adatoszlopok kiszűrése,
- a hiányzó értékek pótlása egy előre definiált logika mentén, például a hiányzó utazási költségek kiszámítása az adott célországba, átlagszámítással (valódi projektek során csak bizonyos esetekben alkalmazható),
- a típus konverziók végrehajtása,
- a kiugró értékek (outlier) azonosítása,
- a normalizálás elvégzése az utazási költség oszlopon,
- végül a megtisztított adattábla összeállítása.
A fenti lépések egy általános Data Science adattisztítási megközelítést tükröznek, azonban ennek nem minden eleme releváns egy migrációs projekt adattisztítási feladata során. Egyrészt adott mezőben lévő adatok azonos formátumra hozása vagy egy mezőben tárolt adat formai helyességének ellenőrzése (például igazolvány szám adatok) kiemelten fontos, viszont az adatok normalizálása vagy a hiányzó adatok például átlagszámítással történő pótlása nem releváns szempont az adatmigráció során.
A mintaprojekt során részletesen megvizsgáltuk a Data Science módszertan szerinti adattisztítási metódusok és azok adatmigrációs projektekben betöltött lehetséges szerepét.
Ennek eredményét a poszt végén található táblázatban foglaljuk össze.
Adatmigrációhoz kapcsolódó adattisztítási folyamat támogatása a KNIME Analytics Platform segítségével: konklúzió
A megvalósított adattisztítási mintaprojekt megerősítette azt az előzetes feltevésünket, hogy sok közös pont van a Data Science által definiált és gyakorlatban is használt metódusok, valamint az adatmigrációs projektekben felmerülő adattisztítási feladatokra használt, többnyire ad-hoc megoldások között.
Így mindenképp érdemes módszertani tudást, vagy akár a Data Science eszközrendszerekkel kapcsolatos gyakorlati tapasztalatokat is felhasználni az adattisztítási migrációs szolgáltatásunk tervezett kibővítése során. A kísérleti projekt eddigi tapasztalatai alapján az a módszertan látszik optimálisnak, amelyben a KNIME workflow-t az adattisztító funkció tervezésére, felépítésére, tesztelésre használjuk a lépéseket addig iterálva, amíg a kívánt eredményt el nem érjük.
Azonban a pénzügyi szektorban a végső adattisztítási megoldást valamely robosztus program nyelven megírt önálló modulban lehet leginkább elképzelni, ami biztosítani tudja nagy tömegű adatok feldolgozását megfelelő válaszidők mellett.
Az adatmigrációs projekteken dolgozó informatikai és üzleti vezetők és IT szakértők számára a KNIME eszköz megismerése azért lehet előnyös, mert a megoldás támogatja az adatok mögött megbújó mintázatok elemzését, mégpedig fejlesztői tudás nélkül.
Ezért az eszköz jóval szélesebb körben használható, ami a sok esetben erőforrás problémákkal szembesülő projektek során lehetővé teszi további kollégák bevonását a végrehajtásba.
Amennyiben kérdése van az adatmigráció során végrehajtott adattisztítási folyamatok KNIME Analytics Platform segítségével történő támogatásával kapcsolatban, kérjen visszahívást szakértőinktől!
Itt érhetők el további információk az adatmigrációs szolgáltatásainkról.
A Data Science módszertan szerinti adattisztítási metódusok és azok adatmigrációs projektekben betöltött lehetséges szerepe
Feladat | Data Science szempont | Adatmigrációs szempont |
---|---|---|
Adatprofilozás | Ellenőrizzük, hogy egy adott oszlop megfelel-e bizonyos szabványoknak vagy mintáknak. | Fontos minden adatbázis mező ellenőrzése, amely meghatározott struktúrában tárol adatot, például okmány szám vagy irányítószám ellenőrzése. |
Vizualizációk | Az adatok statisztikai módszerek, például átlag, szórás, tartomány vagy kvantilisek használatával történő elemzésével és megjelenítésével olyan értékeket találhatunk, amelyek váratlanok és így hibásak. | Adatmigrációs szempontból nem releváns. |
Irreleváns adat tisztítása | A lényegtelen adatok azok, amelyekre valójában nincs szükség, és nem illeszkednek a megoldandó probléma kontextusába. | Az üzleti (logikai) mapping workshopokat követően meg lehet határozni azon forrástáblák és ezen belüli mezők körét, amelyek a adatmigrációs scope szempontjából relevánsak. |
Duplikátumok eltávolítása | A duplikátumok olyan adatpontok, amelyek ismétlődnek az adathalmazban. | Fontos szempont az adatmigrációs projektekben is, ahol elsősorban (de nem kizárólagosan) az ügyfél rekordok deduplikálására külön figyelmet fordítunk. Ehhez projektspecifikusan határozunk meg üzleti attribútumokat, amelyek egyezőségének vizsgálatával, és scoring alapú kiértékelésével azonosítjuk a duplikátumokat. |
Típuskonverzió | Győződjünk meg arról, hogy a számok numerikus adattípusként vannak tárolva, a dátumok dátumobjektumként vagy időbélyegként. A megadott típusra nem konvertálható értékeket érdemes N/A értékre cserélni, ami azt jelzi, hogy az érték helytelen, és javítani kell. | Ezen ellenőrzések jelentős része már a migrációs adatbázisba történő betöltés során megtörténik, amelynek során a talált inkonzisztenciákat visszajelezzük a forrásadat-gazdáknak. |
Szintaktikai hibák | Üres helyek eltávolítása: A karakterlánc elején vagy végén lévő extra üres szóközöket el kell távolítani. | A szintaktikai hibák egy részének kezelését meg lehet valósítani a migrációs adatbázisba történő betöltéskor pl: üres helyek eltávolítása, pad strings. |
Pad strings: A karakterláncok szóközzel vagy más karakterekkel kiegészíthetők egy bizonyos szélességhez. Például egyes numerikus kódokat gyakran megelőző nullákkal jelölnek, hogy mindig ugyanannyi számjegyük legyen. | Egyéb szintaktikai hibák feltárása jellemzően mélyebb adatelemzési feladatot jelent pl: Budapest 17 különböző képpen szerepelt egy banki adatbázis város oszlopában. | |
Karakterláncok elírásainak javítása. | ||
A “fuzzy matching”: Olyan algoritmus, amely azonosítja a várt karakterlánc(ok) és az adott karakterlánc(ok) közötti távolságot. Alapvetően azt számolja, hogy hány műveletre van szükség ahhoz, hogy az egyik karakterláncot egy másikba alakítsa. | ||
A barplot az összes egyedi érték megjelenítésekor hasznos. Észrevehetjük, hogy egyes értékek különbözőek, ugyanazt jelentik, például az "information_technology" és az "IT". Néha a különbséget csak az írásmód okozza, mint például az "egyéb" és az "Egyéb" esetében. | ||
Standardizálás | Az elírások felismerésén túl feladatunk az is, hogy minden egyes értéket standardizált formátumban tároljunk. | Adatmigrációs szempontból is releváns. |
Numerikus értékek esetében győződjünk meg arról, hogy minden érték egy bizonyos mértékegységgel rendelkezik. | ||
A dátumok esetében az USA-beli verzió nem ugyanaz, mint az európai változat. A dátum időbélyegként (ezred másodperc) számként való rögzítése nem egyezik meg a dátum dátumobjektumként való rögzítésével. | ||
Skálázás / Átalakítás | A skálázás azt jelenti, hogy az adatokat úgy alakítja át, hogy azok egy adott skálán belül, például 0–100 vagy 0–1 férjenek el. Segíthet abban is, hogy bizonyos típusú adatok könnyebben ábrázolhatóak, összehasonlíthatóak legyenek. | Adatmigrációs szempontból nem releváns. |
Normalizálás | Míg a normalizálás is skálázza az értékeket egy adott tartományra 0 és 1 között, célja, hogy a normalizált adatok normális eloszlásúak legyenek. A legtöbb esetben akkor normalizáljuk az adatokat, ha olyan statisztikai módszereket fogunk használni, amelyek feltételezik a normális eloszlást. | Adatmigrációs szempontból nem releváns. |
Hiányzó értékek | Drop: Ha egy oszlopban a hiányzó értékek ritkán és véletlenszerűen fordulnak elő, akkor a legegyszerűbb és legkedvezőbb megoldás az, ha a hiányzó megfigyeléseket tartalmazó sorokat elhagyjuk. Ha az oszlop legtöbb értéke hiányzik, és véletlenszerűen fordul elő, akkor tipikus döntés az, hogy az egész oszlopot eldobjuk. | Az adatmigráció során a célrendszer szempontjából releváns adathiányt elsősorban a forrásrendszerekben kell javítani. Ha ez nem lehetséges, akkor az adatmigrációs transzformációba épített logika mentén kell az adatot „mesterségesen” pótolni. |
Impute: kiszámoljuk a hiányzó értékeket más megfigyelések alapján. | ||
Flag: A hiányzó numerikus adatok 0-val helyettesíthetőek, de ezeket a nullákat figyelmen kívül kell hagyni a statisztikai értékek kiszámításakor vagy az eloszlás ábrázolásánál. Bár a kategorikus adatok kitölthetők a következővel: “missing”: Egy új kategória, amely azt jelzi, hogy ez az adat hiányzik. | ||
Outlier keresés | Vannak értékek, amelyek jelentősen eltérnek az összes többi megfigyeléstől. A kiugró értékek ártatlanok, amíg be nem bizonyítjuk a bűnösségüket. Ez alatt azt értjük, hogy nem szabad őket eltávolítani, kivéve, ha van egy jó (üzleti) okunk rá. | Adatmigrációs szempontból nem releváns. |
In-record & cross-datasets hibák | Példa: adott egy adathalmaz a megélhetési költségekről a városokban. A ‚total’ oszlopnak meg kell egyeznie a bérleti díj, a szállítás és az élelmiszer összegével. | Például a számla státuszok változásnak dátuma későbbi kell legyen mint a számlanyitás dátuma, stb. |
Ellenőrzés | Adattisztítás után az eredményeket megvizsgáljuk helyességük ellenőrzése céljából. | Adatmigrációs szempontból is releváns. |
Riporting | Jelentés készítése az elvégzett változtatásokról és az aktuálisan tárolt adatok minőségéről. | Adatmigrációs szempontból is releváns. |
Ismerje meg a MINDSPIRE kapcsolódó szolgáltatásait:
Kérdése vagy megjegyzése van a bejegyzéssel kapcsolatban?
Küldje el üzenetét és munkatársaink felveszik Önnel a kapcsolatot!
Legújabb adatmigrációs referenciáink
Többet szeretne tudni adatmigrációs szolgáltatásainkról?
További információkért kattintson ide: