Adattranszformáció megvalósítási lehetõségek tranzakziós adatbázisok

és az adattárház között




Papp Ágnes DE EFK, agi@delfin.klte.hu

Márton Ágnes DE TTK MII, amarton@math.klte.hu




1 Adattárházak


Az adattárház a döntéstámogatás fontos eleme. Célja, hogy biztosítsa a felhasználók, különösen a vezetõk számára a cég adatainak elérhetõségét. A bonyolult, összetett kérdésekre adott válaszokkal, a múltbeli események elemzésével a stratégiai döntéshozatalt támogatja. Adattárház megoldások sok területen alkalmazhatók, pl. gyártás, kereskedelem, banki vagy biztosítási szolgáltatások, telekommunikáció.


Az adatfeldolgozási feladatokat automatizáló, adatbázisokon alapuló rendszerek is szolgáltatnak jelentéseket, biztosítják az adatok lekérdezhetõségét, de elsõdleges feladatuk az adott rendszer aktuális eseményeit leíró adatok rögzítése, karbantartása.


Az adattárház adatbázisának adatai akár több tranzakciós rendszer adatbázisából, külsõ adatokból és nagy idõtartomány összesített adataiból származnak, ezért az adatbázis mérete igen nagy is lehet. Az elsõdleges mûvelet az olvasás, ezért a lekérdezések optimalizálására kell törekedni. „Az adattárház egy témaorientált, integrált, történeti, nem változó adatgyûjtemény, amelyet elsõsorban a döntéshozatalban használnak” (W.H. Inmon).


Az operatív adatbázisokon mûködõ tranzakzió-feldolgozó (OLTP) rendszerekkel összevetve az adattárházak más jellegû adatkezelést igényelnek. Az OLAP-ot támogató adatbázis-kezelõre van szükség, amely hatékonyan valósítja meg az adatok közötti kapcsolatok kezelését, a nagytömegû adatot érintõ lekérdezéseket és analitikus mûveletekkel szolgál. Az adattárházak a multidimenzionális adatmodellt támogatják, amelyben könnyebben le lehet kérdezni a különbözõ mennyiségek közötti összefüggéseket, mint a relációs modellben.


Egy adattárház adatbázisa relációs DBMS-en is megvalósítható, ha az rendelkezik a multidimenzionális adatmodell és OLAP támogatást biztosító kiterjesztésekkel (ROLAP). A multidimenzionális OLAP szerverek (MOLAP) az adatmodellnek megfelelõ formában tárolják és kezelik az adatokat.


Centralizált tárház estén a vállalat minden igényét kielégítõ, annak több területérõl egybegyûjtött adatokról van szó. Azonban a kiépítés, hosszú, bonyolult folyamat. Számos esetben az igényeket kielégítik adatpiacok (data mart) is, amelyek egy-egy témakörre koncentrálnak, valamely szervezet vagy üzletág kiszolgálására.


Adattárház architektúra elemei


A bemeneti oldalon az adatforrások állnak, melyek típusukat tekintve igen heterogének lehetnek. A vállalat tranzakciós rendszerei által kezelt adatbázisok mellett külsõ adatforrások is szerepelhetnek. Eszközök szükségesek az adatok kinyerésére az adatforrásokból, az adatok tisztításának és transzformációjának elvégzéséhez, az összegyûjtött adatok betöltésére és frissítésére.


A betöltött adatok az adattárház információs adatbázisában kerülnek tárolásra. Az adatstruktúrákat leíró metaadatokat az adatszótár tárolja, rendszerezi. A tárházat adminisztráló és monitorig eszközök felügyelik.


A kliens oldalon az adatok kiaknázása lekérdezõ, jelentéskészítõ, analizáló, adatbányászati eszközökkel történik.



2 Alkalmazott technikák, eszközök


Adatok kivonása, tisztítása, betöltés és frissítés


A különbözõ forrásokból kinyert adatok még nem alkalmasak betöltésre. Az elõforduló hiányosságokat, eltéréseket, hibákat adattisztító eszközök használatával lehet korrigálni, hogy az adatok a további feldolgozásra alkalmas formátumúak legyenek. Az eszközök különbözõ eljárásokat valósítanak meg:


Data migration: az adatok értékét egyszerû helyettesítési szabályok alapján hozzák a kívánt formátumúra. Pl. a NEM mezõben a 0 érték F, az 1 érték N értékre cserélése.

Data scrubbing: az adatokat szabályok alapján ellenõrzik, hogy eleget tesznek-e bizonyos formai követelményeknek. Pl. postai címek.

Data auditing: a tárolt adatok alapján feltárt korrelációk teljesülését vizsgálják a bejövõ adatokon. Gyanús mintát fedezhet fel az eszköz a statisztikai analízis során.


A betöltés során a megtisztított, átalakított adatok bekerülnek az adattárház adatbázisába. Elõtte még további elõfeldolgozásra lehet szükség: integritási feltételek ellenõrzése, adatok rendezése, csoportosítása, összegzése, indexelés, indexek aktualizálása. Betöltésre általában batch segédprogramokat használnak.


Frissítés során a forrás adatokon végzett módosításoknak megfelelõen módosulnak az adattárház adatai. Általában periodikus frissítést alkalmaznak, naponta vagy hetente. Elkerülendõ, hogy a gyakori frissítés lassítsa a mûködést, illetve, hogy a ritka frissítés az adatok elavulását eredményezze. Szükséges lehet a teljes forrás újra kivonása, de jellemzõbb az inkrementális frissítés, amit a mai adatbázis-kezelõk replikáció szerverekkel támogatnak.


A multidimenzionális adatmodell


A multidimenzionális adatmodell alapvetõ tárolási egysége a kocka. A kockában a cella a vizsgált adatmennyiség tárolási egysége. Minden cellában tárolt érték egy dimenzióhalmaztól függ, amelynek elemei a kocka éleihez vannak rendelve. Például egy áruforgalmi adatokat tároló kockában az eladások értékei vannak a cellákban, az élek pedig a különbözõ város, termék és dátum adatok. A cellák tartalmazhatnak elemi és összetett adatokat. Minden dimenziót tulajdonságok halmaza ír le, amelyek hierarchikus összefüggésben lehetnek, pl. a város dimenzió (város, megye, ország) esetében.


A tipikus OLAP mûveletek közé tartozik a roll-up és drill-down. A roll-up esetében csoportosításokat végzünk valamely dimenzió mentén, így összesítve például az eladás adatokat hónap, negyedév, év szerint. A drill-down ellentétes mûvelet, amely csökkenti a csoportosítás szintjét. A slice and dice mûvelet a kocka szeletekre bontását jelenti, például egy adott áru estében szeretnénk látni a város és idõ dimenziókkal az eladások adatait. A pivotálás az adatok multidimenzionális képét alakítja át, így például kétdimenziós táblázatban ábrázolhatjuk az összesített eladásokat, hogy a városok szerepelnek az oszlopok, az évek pedig a sorok fejlécében.


A MOLAP szerverek a multidimenzionális adatmodellt valósítják meg. A fizikai struktúrában a kapcsolatok tárolása pointerekkel történik. Amikor azonban ROLAP szerverünk van, a multidimenzionális adatmodellt és mûveleteit tükrözõ relációs sémákra és SQL lekérdezésekre van szükség. Az adattárházak általában a csillag sémát használják. Ez egy ténytáblából és minden dimenzióhoz egy-egy dimenziótáblából áll. A ténytábla tartalmazza a cella értékeket, és kulcsokat minden egyes dimenziótáblához, amelyek a dimenziók jellemzõit tárolják. A csillag sémából nem tûnik ki a dimenziók jellemzõinek hierarchiája. A hópehely sémában a dimenziótáblák normalizációja vezet a dimenzióhierarchia kifejezéséhez.


Kliens oldali eszközök


Az adatok kiaknázása lekérdezõ, jelentéskészítõ, analizáló, adatbányászati eszközökkel történik. A relációs adatbázis-kezelõkben SQL-kiterjesztések implemenálásával könnyíthetõ meg az OLAP lekérdezések megfogalmazása és végrehajtása. Másik lehetõség a relációs szerver és a kliens oldali eszközök közé helyezett OLAP szerver, amely szolgáltatja a multidimenzionális adatnézetet.



3 Adatkonverzió


Az adatok elõállítása az adattárház számára bonyolult, idõigényes folyamat. A betöltött adatok minõsége igen fontos, hiszen ezek az adatok támogatják a szervezetet a döntéshozatalban. Az adatok elállítását végzõ szakemberek feladata a forrás adatok elemzése, a külsõ adatok összegyûjtése, az adatok tisztításának, transzformációjának megtervezése, és implementálása, az adatok minõségének ellenõrzése.


A konverzió megtervezése


A következõ tevékenységeket tartalmazza:


Az adatok kinyerése elõtt számba kell venni a lehetséges adatforrásokat, a forrásadatok mennyiségét, a különbözõ platformok számát és típusát. Minden egyes forrás estében meg kell határozni az elérés módját, a kinyeréshez szükséges eszközt, programozási nyelvet. Ha sok forrásrendszerünk van, a kinyert adatokat célszerû egy közös platformon összegyûjteni a további mûveletek elvégzéséhez. A kinyert adatok sémája nem feltétlenül egyezik meg a forrásadatok sémájával, vagy azzal, amelyben betöltésre kerülnek. Ebben a szerkezetben további oszlopokat tartalmazhatnak, amelyek az adattisztítást, adattranszformációt végzõ eljárások használnak.


A terv kidolgozása után az adatok részletes elemzése által kell elkészíteni az adatkinyerést végzõ eljárások specifikációit. Ha szoftvereszközt használunk, akkor a konverziós metaadatok automatikusan generálásra kerülnek és a dokumentáció is generálható. Ha manuálisan végezzük, elõ kell állítani a metaadatokat is, és gondoskodni kell a terv dokumentálásáról.


Adatok kinyerése


Az implementált eljárások a forrásadatokból elõállítják a további feldolgozáshoz szükséges adatokat. Természetesen csak azokat szelektálva, amelyeknek szükséges az adattárházba való betöltése. Ez nem csak az elsõ betöltésnél, hanem a további frissítéseknél is fontos. A kivonó eljárások tervezésénél figyelembe kell venni, hogy a forrás rendszer megjelöli-e az új vagy megváltozott adatokat, pl. idõbélyeg használatával. Az adatok kinyerését végzõ eljárások gyakran a forrás rendszer környezetében futnak, hiszen pl. valamely adattípus konverzióját egyszerûbb abban a környezetben elvégezni. Mind a forrásadatok, mind az adattárház séma alapos ismerete feltétel ezeknek az eljárásoknak a sikeres megtervezéséhez.


Adattisztítás, adattranszformáció


Az adattisztítás biztosítja az adatok integritását. Az adattisztítás fõ összetevõi:


Más eljárások transzformálják az adatokat. A forrás adatok gyakran kívánnak átalakítást, ha az adattárház másképp kódol bizonyos adatokat. Pl. a NEM mezõben a 0 érték F, az 1 érték N értékre cserélése. A transzformációhoz szükséges egy egyértelmû megfeleltetés a forrásrendszerben és az adattárházban használt kódok között


Ha több forrásból származnak, egyetlen nézetbe kell integrálni az adatokat. Az adatok tisztítását, transzformációjat, integrációját iteratív módon kell elvégezni. Ha elégedettek vagyunk az adatok minõségével, elõ lehet állítani a betöltendõ adatokat.


Ha az adattárház csillag-séma szerint lett tervezve, akkor az elemi adatokból állítjuk elõ a dimenzió táblákat. A dimenziók mindegyikéhez kulcsgeneráló és adminisztráló eljárásra van szükség. Több lehetõség kínálkozik, pl. a forrásrendszerekben használt kulcsok integrálása vagy a rendszer által generált kulcsok használata. A tényadatok elõállításához egy olyan alkalmazás szükséges, amely a dimenziók kulcsértékeire összegyûjti a kapcsolódó elemi tényadatokat.


Aggregált adatok származtathatók a betöltött adatokból az adattárházban, de a fent említett eljárások ismétlésével aggregált dimenzió és kapcsolódó aggregált tényadatok állíthatók elõ betöltés végett, ha ez a módszer a gyorsabb és hatékonyabb.


Adatok betöltése, indexelése


A megfelelõ adatok elõállítása és az adattárház szerverre juttatása után a betöltést az RDBMS betöltõ segédprogramja végzi el. A betöltés közben a hivatkozási megszorítások betartása folyamatosan ellenõrzés alatt áll. Így a betöltendõ tényadatok csak dimenziótáblából származó idegen kulcs értéket tartalmazhatnak. Ha mégsem, akkor a kényszert megszegõ rekord könnyen megtalálható és javítható.


Az indexek aktualizálhatók a betöltés alatt vagy késõbb. Ez a rendelkezésre álló idõtõl és a RDBMS lehetõségeitõl függ.


Az adatok minõségének ellenõrzése


Az adatok minõségének ellenõrzése nem egyszeri feladat, hanem folyamatosan kell végezni a feldolgozás alatt, amelynek eredményeként a forrásokból az adattárházba jutnak az adatok. A tervek és specifikációk kidolgozásakor az adatoknak a forrásadatokkal való összevetése is figyelmet kap. A terv ismeretében a megrendelõ is képet kap, milyen eljárásokon mennek át az adatok, és mi a várható eredmény.


Az adatok kivonása után célszerû az elsõ összevetést elvégezni a forrásadatok és a kinyert adatok között, a rekordok számának és a numerikus értékek összesenjének összhasonlításával.

Az adattisztítás, adattranszformáció és integráció folyamán felderülhetnek adathibák, amelyeket vagy a forrásrendszerben, vagy azon kívüli eljárással javítanak. A forrásadatokkal való összehasonlítás valószínûleg most már eltérést jelez, amit szintén meg kell vizsgálni. Az elvégzett módosítások metaadatként kezelendõk. Végül a betöltendõ adatokat kell összehasonlítani a forrásadatokkal.



Irodalom


B. Devlin: Data Warehouse from Architecture to Implementation. Addison-Wesley, 1996.


S. Chaudhuri, U. Dayal: An Overwiew of Data Warehousing and OLAP technology. ACM SIGMOD Record, 26(1):65-74, 1997.


Kathy Bohn: Converting Data for Warehouses. DBMS Magazine, June 1997.