Tanulmány
Oracle PL/SQL adatfolyam-elemzés automatizáltan
A Clarity nagyvállalati ügyfélkörében, azaz bankoknál, biztosítóknál, illetve állami intézményeknél gyakran találkozunk olyan rendszerekkel, amelyek mögött nagy komplexitású tranzakciós (OLTP) vagy analitikus (DWH) adatbázisok húzódnak meg. Ezek gyakran olyan örökölt (legacy) jellegű adatbázis-rétegek, amelyeket folyamatosan fejlesztenek, esetenként akár 10-15 éven keresztül, komolyabb újratervezés, újragondolás nélkül.
Ezeken a rendszereken az idők folyamán akár több száz fejlesztő is dolgozhat, különböző fejlesztési konvenciók és módszertanok mentén, esetenként nagyon szigorú határidők mellett. Mivel a komplex adatbázis-rendszerek több tucat interfészen keresztül állnak összeköttetésben egyéb társrendszerekkel, az adatmennyiség növekedésével a leképezett üzleti logikák és ezzel együtt az ETL-folyamatok mennyisége és komplexitása is folyamatosan növekszik. Az átláthatóság hiánya gyakran vezet megbízhatósági,- illetve teljesítményproblémákhoz, nem ritkán komolyan lassítva az üzleti igények megvalósításának ütemét.
Egy-egy nagyobb fejlesztés esetén szükség van a rendszerek nagy részének átlátására, különben a fejlesztési feladatok (így az indított projektek) ütemezése akár hónapokat is csúszhat, a folyamatosan megjelenő, ismeretlen működési logikák okozta, nem tervezett fejlesztési- és tesztelési feladatok miatt.
Megfelelő data governance eszközökkel, azon belül pedig a data lineage (adatfolyam-elemzés) eszközkészletének alkalmazásával egy automatikusan előálló adatfolyam-adatbázis jelentősen felgyorsíthatja és pontosabbá teheti a tervezési folyamatot, hiszen a manuális forráskód-értelmezési feladatot minimálisra képes csökkenteni.
Data lineage eszközök a piacon
A fenti probléma megoldása érdekében több mamutvállalat is fejlesztett ki adatfolyam-elemző, illetve adatbázis-felderítő termékeket, azonban ezek elsősorban a dokumentálást és nem a napi tervezői, fejlesztői munkát segítik. Ezeket a szoftvereket ráadásul marketing- és sales okokból széles körű termékcsaládok részeként értékesítik, így csak a data lineage funkcionalitás miatt nem éri meg bevezetni őket.
A K+F évei
A Clarity 2016-ban döntött úgy, hogy kifejezetten Oracle PL/SQL nyelven írt, egyedi fejlesztésű rendszerek adatfolyam-elemzésére fejleszt ki egy olyan terméket, ami hatékonyan használható az adatbázis logikák felderítésében, értelmezésében, és támogatja a gépi eszközökkel való hatáselemzést is.
Ehhez az elképzeléshez a GINOP-2.1.1.-15 keretében kapott vissza nem térítendő európai uniós forrás is hozzájárult, így a Szegedi Tudományegyetemmel közreműködésben megkezdődhetett a tudományos alapok kidolgozása. A kutatási eredményeinket az Acta Polytechnica Hungarica folyóiratban publikáltuk, Capturing Expert Knowledge to Guide Data Flow and Structure Analysis of Large Corporate Databases címmel.
A K+F projekt második szakaszában több banki, biztosítói partnerünknél bemutattuk a rendszert, így az első széles körben elérhető verzió számos olyan funkciót tartalmazott, amit ügyfeleink piaci igényeire válaszul fejlesztettünk ki.
A Clarity Data Lineage eszköze
Az adatfolyam-elemző funkcionalitást megvalósító alkalmazásunknak a DALIA (Database Lineage & Impact Analyzer) nevet adtuk, amely képessé vált az adatszerkezet mellett az Oracle PL/SQL nyelvű programelemeket, tárolt eljárásokat automatizáltan felderíteni. A feltárás eredményeképpen létrejövő adatfolyam-gráf vizuálisan is megtekinthető, szűrhető, ahol metrikák mentén elemezhetők, értelmezhetők az adatkapcsolatok, programozott összefüggések. A hatásbecslő modulnak köszönhetően a forráskódot érintő, fejlesztők által tervezett módosítások potenciális következményeiről, komplexitásáról is képet kaphatunk.
1. ábra: táblaszintű adatfolyam-gráf
A DALIA rendszer jellemzően olyan egyedi fejlesztésű adattárházak vagy OLTP-rendszerek adatbázisainak elemzésére használható, amelyek nagyszámú táblával és viszonylag sok és/vagy komplex adatbázisbeli programmal működnek. A Clarity tapasztalatai szerint egy átlagos nagyvállalatnál több tízezer tábla, több százezer oszlop és több százezer sornyi PL/SQL nyelvű forráskód található meg az analitikus rendszerekben, adattárházakban, amelyek áttekintése, bejárása automatizált eszközök nélkül rendkívül időigényes – így a DALIA-nak a hasonló, gyorsan fejlődő nagyvállalatok esetében jelentős létjogosultsága van a manuálisan végzett feladatok csökkentése terén.
Tapasztalataink szerint egy-egy nagyvállalat adatbázis-rendszereinek továbbfejlesztésével kapcsolatban csupán tervezésre, felmérésre és refaktorálásra éves szinten több száz embernapot (FTE) fordít, amelyből az automatizált adatfolyam-elemzés segítségével, azaz a DALIA-val 25-50% megtakarítható!
Felhasználási területek
A DALIA azon túl, hogy képes bemutatni a kódban implementált összefüggéseket, egy mutatóegyüttest (DALIA-index) is kiszámít az egyes objektumokra, ami segíti a hatáselemzést végző szakember munkáját:
- Megmutatja egy-egy tervezett módosítás, refaktorálás során, hogy melyek az érintett objektumok és azok megértése várhatóan mekkora feladat.
- Segít azonosítani a párhuzamosan létező logikákat, a felesleges/redundáns fejlesztések csökkentése érdekében.
- Historikus működésének köszönhetően megmutatja, hogy az új fejlesztések, kiadott verziók hogyan befolyásolták a rendszer összkomplexitását.
- A kevésbé komplex területek elrejtésével felgyorsítja az érintett logikák, kódrészletek értelmezésének folyamatát.
- Egy-egy jogi megfelelési igény (GDPR, deperszonalizáció) esetén segít mezőszinten azonosítani a végrehajtandó műveletek (pl. ügyféladat-törlés) tovagyűrűző hatásait.
Integráció
A DALIA nem igényel közvetlen adatbázis-kapcsolatot, mivel egyszerű forráskód- és adatszerkezet exportokon képes elvégezni az elemzéseket, ezzel megkönnyítve a nagyvállalati IT-biztonsági és Compliance területek általi elfogadást.
Az elemzési folyamatok akár automatizáltan is beköthetők a fejlesztési folyamatokba, hiszen a DALIA rendelkezik egy könnyen integrálható API-réteggel, így DevOps pipeline részeként is alkalmazható.
Jogosultság-kezelés
A DALIA-t úgy terveztük, hogy rendkívül szenzitív környezetben is megfelelően működjön, így hálózati kapcsolat nélkül, lokális felhasználókezeléssel is elvégezhetők az elemzési feladatok.
Természetesen a hagyományos szituációkban is használható az AD/LDAP alapú autentikációnak, autorizációnak köszönethetően.
Licencelés
A data lineage eszközkészlet licencelése rugalmas, hiszen a kisebb környezetek elemzésekor lehetővé teszi az adatbázis mérete, komplexitása szerinti árazást, illetve szervezeti szinten korlátlanul is licencelhető.
Működtetését tekintve a teljes értékű lokális (on-premise) telepítés és hagyományos, éves szoftverkövetés mellett a felhős (SAAS) megközelítés is támogatott, így akár néhány hónapos projektek számára is költséghatékonyan alkalmazható.
Ingyenes elemzés
Ha adatfolyam-elemző eszközünk felkeltette érdeklődését, a DALIA weboldalán látható elérhetőségeken kérhet ingyenes, bemutató jellegű elemzést saját adatbázisainak egyikéről.