EÖTVÖS LORÁND TUDOMÁNYEGYETEM INFORMATIKAI KAR INFORMATIKA DOKTORI ISKOLA INFORMÁCIÓS RENDSZEREK DOKTORI PROGRAM KÜLÖNÖSEN NAGY ADATTÖMEGEK KEZELÉSÉNEK EGYES KÉRDÉSEIRİL DOKTORI ÉRTEKEZÉS TÉZISEI Készítette: BUZA ANTAL okleveles matematikus A DOKTORI ISKOLA VEZETİJE: DR. DEMETROVICS JÁNOS AKADÉMIKUS A DOKTORI PROGRAM VEZETİJE: DR. BENCZÚR ANDRÁS A MATEMATIKAI TUDOMÁNYOK DOKTORA TÉMAVEZETİ: DR. BENCZÚR ANDRÁS A MATEMATIKAI TUDOMÁNYOK DOKTORA INFORMÁCIÓS RENDSZEREK TANSZÉK VEZETİJE Budapest, 2006. 12 1
[15] Buza A, Buza K.: Graph-based Clustering Using Evolutionary Techniques (kiadásra benyújtva) [16] Buza A., Buza K.: The Bounds of Distributed Data-intensive Computing Systems, Pollack Periodica, Pécs. (kiadás alatt) 2 11
[6] A. Buza: "Helping" software tools - our defenselessness, SISY 2003, 1 st Serbian- Hungarian Joint Symposium on the Intelligent Systems, 2003, Subotica, Serbia & Montenegro, 87-92. [7] A. Buza: The bounds of useful-information discover, IS-2003: 5 th International Conference on Interactive Systems: The problem of human-computer interaction, Ulyanovsk, Russia, 2003, 24-28. [8] A. Buza: The abilities and some possible extensions of the Continuous Query Language, ICAI 04 6 th International Conference on Applied Informatics, 2004, Eger, Hungary, Vol.II. 39-46. [9] A. Buza: How the database update must affect the responses being produced by the active continuous queries, IEEE 2 th International Conference on Computational Cybernetics, 2004, Wien, Austria, 401-404. [10] A. Buza: Parallel processing of continuous data streams, IEEE 9 th International Conference on Intelligent Engineering Systems, 2005, Piraeus, Greece, CD-ROM, 3p. [11] Buza A.: Az információtechnológia harmadik korszaka, ME-DFK közlemények XIX, 1998, Dunaújváros, 23-41. [12] Buza A.: The different effects of the database update during the long execution of continuous queries, Conference of PhD Students in Computer Science, 2004, Szeged, 33. [13] Buza A.: Adatfolyamok párhuzamos feldolgozása, Informatika a Felsıoktatásban Konferencia, 2005, Debrecen, CD-ROM, 6p. Bevezetı A mőszaki fejlıdés létrehozta azokat az adatgyőjtı, adattovábbító eszközöket, amelyek alkalmazása lehetıvé teszi azt, hogy viszonylag rövid idı alatt rendkívül nagy adattömegek keletkezzenek és jelenjenek meg egy-egy feldolgozó helyen. Nagy adattömegeket állítanak elı az adatrögzítı készülékek, az automatikus adatgyőjtı rendszerek (szenzorok), de ilyennek tekinthetık például a levelezı rendszerek által egy-egy címzetthez közvetített levéltömegek is. A nagy tömegő adat tárolása is gondot jelenthet, a feldolgozás még inkább, különösen, ha a feldolgozáskor idıkorlátokat is figyelembe kell vennünk. Idıkritikus például egy vihar, vagy más természeti katasztrófa közeledtének, egy éppen történı bőncselekménynek, vagy egy kialakulóban lévı forgalmi dugónak a felismerése, és még sok, egymástól eltérı alkalmazási terület számos más feladata. Az adatgyőjtı és adattovábbító eszközök teljesítménye szakadatlanul nı, áruk csökken, így alkalmazásuk egyre általánosabbá válik, mindez igen erıteljes igényt indukál a győjtött óriási adattömegek hatékony, és az alkalmazási területek idıkorlátait is figyelembe vevı adatrögzítési és feldolgozó módszerek, és ezeket alkalmazó rendszerek megalkotására. Az igény már erıteljesen jelentkezik, az alkalmazható módszerek, eljárások keresése a jelen és a közeli jövı feladata. A nagy adattömegek kezelésének feladata máskor is megjelenik. A keletkezés módjától függetlenül a számítógép-hálózat segítségével összekapcsolt számítógépeken (például az Interneten) hozzáférhetı roppant nagy (és dinamikusan növekvı) adathalmaz hasznos feldolgozásának az igénye már megfogalmazódott, az igény kielégítésének módszerei és eszközei eléggé szegényesek, tág teret adnak az újabb elgondolások kidolgozására. A keletkezett nagy adathalmaz korábban még fel nem ismert értékes összefüggéseket, tudást is tartalmazhat, ennek kinyerését általánosan az adatbányászat feladatának tekintik. Az adatbányászat messze nem lezárt. A dolgozatban bemutatok egy új adatbányászati eljárást és annak implementációját is. [14] Buza A., Buza K.: Egy új klaszterezı algoritmus, Neumann János Számítógéptudományi Társaság Konferenciája, 2006, Gyır. CD-ROM 10p. 10 3
A dolgozat célkitőzései A dolgozat célkitőzése a mai és a közeli jövıbeni nagy adattömegeket produkáló rendszerek áttekintése, az adattömegek kezelésének már látható problémái összefoglalása, és fıként a problémák kezelésére vonatkozó néhány lehetséges megoldás, módszer kidolgozása és elemzése. elosztott feldolgozás, mind az adatfolyam feldolgozás elosztott modellje, és hatékony eljárásai tovább fejleszthetık, de ugyanígy a klaszterezési algoritmus c és h függvényei jó megválasztásának módszerei, valamint a nagy adathalmazok használatának kérdései, illetve az adatfolyam feldolgozó nyelvek is további kutatások tárgyát képezhetik. Az alkalmazott módszerek A dolgozatban más-más típusú problémákkal foglalkoztam. Ezek vizsgálatakor az adott témakör feldolgozásánál megszokott módszereket alkalmaztam. Az adatigényes elosztott feldolgozás vizsgálatakor a helyzet és a lehetıségek felmérését követıen a válaszidıt leginkább befolyásoló fıbb paraméterek vizsgálatával foglalkoztam, majd az optimálishoz közeli megoldások kereséséhez numerikus kísérleteket végeztem. A CQL nyelvi bıvítés szükségességének indoklását követıen a szintaktikus és szemantikus definíciók megadása után az így bıvített nyelv kifejezı erejének és kiértékelhetıségének megváltozását vizsgáltam, különös figyelemmel a megvalósítás és a használhatóság gyakorlati szempontjaira, azaz a korlátos memóriában való kiértékelhetıség és a mőködési idı megváltozásának várható mértékére. Az új klaszterezı algoritmus megalkotásakor és elemzésekor bonyolultságát elméleti úton vizsgáltam, megvalósíthatóságáról és hatékonyságáról tényleges implementációjával és számos kísérlettel gyızıdtem meg. 1. tézis Megállapíthatók az adatigényes elosztott feldolgozás jellemzı paraméterei és ezek összefüggései. A feltárt összefüggések felhasználásával, valamint a gyakorlatban elıforduló további paraméterek figyelembevételével, elméleti számításokkal és modellezés segítségével megállapíthatók a legjobb feladat-megoldási idı, a legolcsóbb feladatmegoldás és más célfüggvényekkel jellemezhetı feladat felbontási és szétosztási paraméterek és módszerek. Alkalmazásukkal optimális, vagy ahhoz közeli feladat-szétosztást érhetünk el. Az algoritmusok párhuzamosíthatóságának és a párhuzamos mőködésnek a kérdéseit már régóta alaposan tanulmányozzák, számos eredmény és ezeket összefoglaló mővek Az értekezésben feldolgozott témakörökhöz kapcsolódó publikációk listája [1] A. Buza: Extension of CQL over dynamic databases, Journal of Universal Computer Science, September, 2006. (Megjelenés alatt.) [2] A. Benczúr, A. Buza: Modeling of response time of distributed data intensive computing systems, 4 th MATHMOD, 4 th IMCAS Symposium on Mathematical Modeling, 2003, Wien, Austria, 1331-1338. [3] A. Buza, P.B.Kis: The third Period of Information technology, FUSST 99 The Sixth Fenno-Ugric Symposium on Software Technology, 1999, Tallinn, Estonia, 269-275. [4] A. Buza: The limits of data-set queries, 2001, Magyarország, ICAI 01 5 th International Conference on Applied Informatics, 2001, Eger, Hungary, 23-29. [5] A. Benczúr, A. Buza: The effect of non-execution and part task result integration in distributed data-intensive computing systems, SPLST'2003, Symposium on Programming Language and Software Tools, 2003, Kuopio, Finland, 2-13. 4 9
nési formája az adatfolyamokban való megjelenés, ennek feldolgozásával a 2. fejezetben foglalkoztam; egyrészt a CQL egy megítélésem szerint hasznos bıvítésével, másrészt az adatfolyam-feldolgozás elosztott modelljével. Nagy adathalmazokban eddig fel nem ismert értékes összefüggések keresése az adatbányászat feladata, a 3. fejezetben egy új adatbányászati algoritmust mutatok be. A nagy adattömegek kezelésének problémái minıségileg különböznek az adatkezeléssel kapcsolatos korábbi számítógépi feladatoktól, ezeket az új feladatokat foglalom össze a 4. fejezetben. Az eredmények hasznosítása Az 1. fejezet eredményei az adatigényes elosztott feldolgozási rendszerek tervezésében és az elosztási algoritmusok tervezésében hasznosíthatók. Az eredmények és a modellezés segítségével megkereshetı az optimálishoz közeli feladatszétosztási stratégia, és a felhasználandó gépek (rendszerek) száma. A CQL R-A-O bıvítésével a CQL nyelv gyakorlati használhatósági köre bıvül, alkalmassá válik olyan típusú kérdések feltevésére is, melyek a hétköznapi használat során gyakran felmerülnek, de az eredeti CQL megválaszolásukra nem (vagy csak részben) volt képes. (2.1 fejezet). Az adatfolyam feldolgozás elosztott sémájának tanulmányozása hasznosítható adatfolyamok idıkritikus feldolgozási rendszerei tervezésekor. (Például meteorológiai, forgalomszabályozási, folyamatszabályozási, bőnüldözési és más alkalmazásokban.) (2.2 fejezet) A 3. fejezetben bemutatott klaszterezési algoritmus hasznossága abban áll, hogy olyan klaszterezési feladatok megoldását is lehetıvé teszi, mely feladatokat a korábbi klaszterezı eljárásokkal nem, vagy kevésbé jól lehetett megoldani. (Bár természetesen ez sem teljes körő megoldás; mindenre jó, univerzális klaszterezési algoritmus az általános vélekedés szerint nem létezik.) További kutatási területek A dolgozatban feldolgozott öt fı témának a további kutatási lehetıségeit a megfelelı fejezetekben tárgyaltam. Mindegyik téma nyitott, tovább kutatható, a most fel nem dolgozott, vagy leegyszerősített paraméterek hatása vizsgálható. Mind az adatintenzív születtek. Ezekben a meggondolásokban általában nem foglalkoznak az adatmennyiség kérdésével. Ugyanakkor számos gyakorlati alkalmazásban nemcsak az algoritmus processzorigénye lehet nagy, hanem a felhasznált adattömeg is. Olyannyira, hogy a felhasznált adattömeg esetleg el sem fér az egy gépen rendelkezésre álló adathordozó(ko)n, tehát mindenképpen szétosztott tárolást kell alkalmazni. Nemcsak az adattömeg nagysága miatt, hanem más meggondolások, okok miatt is egyre inkább megjelennek olyan alkalmazási rendszerek, amelyek adatai is elosztottan (szétszórtan) kerülnek tárolásra. A dolgozat 1. fejezetében az adatigényes elosztott feldolgozással foglalkoztam, az eredmény a fenti tézisben foglalható össze. A témával foglalkozó publikációim: [2], [5], [16]. 2. tézis A CQL nyelv a 2.1.9. pontban bevezetett R-A-O kiterjesztéssel alkalmassá tehetı olyan kérdések megválaszolására, amelyekben a felhasznált adatbázisokban a kérdés hosszú mőködése alatt bekövetkezett tartalmi módosulások a felhasználó által kívánt (különbözı) hatásokkal vehetık figyelembe. Ez az R-A-O kiterjesztés a CQL kifejezı erejét növeli, a korlátos memóriában való kiértékelhetıségét és a válasz pontosságát nem befolyásolja; a válasz késleltetési idejét a triggerek használatához hasonlóan, vagy annál kevésbé növeli. Abból a célból, hogy az adatfolyamokra vonatkozóan kérdéseket adhassunk meg, a Stanford Egyetem kutatócsoportja javasolja a CQL (Continuous Query Language) nyelvet. Ez a nyelv az adatbázisokra vonatkozó kérdések megadási lehetıségét biztosító SQL-hez igen hasonló, annak kiterjesztésének is tekinthetı. Elıfordulnak azonban olyan gyakorlati helyzetek, amikor egy kérdés megválaszolásához egyszerre szükség van adatbázisokban tárolt információkra és az adatfolyamokból érkezı információkra is. A CQL kérdés hosszú mőködési idejő, ezalatt az adatbázisok tartalma is változhat. Különbözı alkalmazási területeken az adatbázis tartalmi változásának a CQL válaszra másmás módon (visszamenılegesen, a módosítás pillanatától érvényesülıen, vagy más módon) kell hatnia. A dolgozat 2. fejezetének elsı felében példákkal illusztrálom a különbözı elvárt hatásokat és a CQL olyan kiterjesztésére teszek javaslatot, amely alkalmassá teszi a CQL-t az adatbázis tartalmi változásainak a felhasználó által kívánt hatással való feldolgozására. A CQL javasolt bıvítését elemezve megállapítható, hogy a CQL 8 5
R-A-O kiterjesztése a CQL kérdések kiértékelhetıségét nem befolyásolja, a késleltetési idejét elfogadható mértékben növeli. A témával foglalkozó publikációim: [1], [8], [9], [12]. 3. tézis Az adatfolyam-feldolgozásban megjelennek a nagy feldolgozási kapacitást igénylı idıkritikus alkalmazások. A kívánt feldolgozási kapacitás egy számítógépen nem, vagy csak nagyon drágán biztosítható, sokkal inkább alkalmasnak látszik sok számítógép együttes használata. Ennek megvalósítására megkonstruálható az adatfolyamfeldolgozás elosztott modellje. A modell vizsgálatával megállapíthatók felhasználási lehetıségei és korlátai. A szenzor hálózatokkal, az adatfolyam feldolgozással kapcsolatos közlemények az adatfolyam feldolgozó algoritmus bonyolultságával nem foglalkoznak, márpedig az adatfolyam-feldolgozó algoritmus lehet olyan bonyolult és/vagy változatos, hogy annak megvalósítására nem ésszerő célhardvert, vagy firmware-t készíteni, másrészt erıforrásigénye lehet olyan nagy, amely egy számítógépen nem, vagy gazdaságosan nem, elégíthetı ki. Ilyenkor a feladatnak jobban megfelel több számítógép használata. A dolgozat 2. fejezete második részében megadom az adatfolyam-feldolgozás elosztott modelljét és annak vizsgálatát. A témával foglalkozó publikációim: [10], [13]. 4. tézis Megadható olyan új klaszterezı algoritmus, amely kategorikus attribútumokkal is bíró adathalmazokat esetenként a korábbi klaszterezı algoritmusoknál jobban klaszterez. Az új algoritmus az adathalmazból gráfot épít, majd ebben elvágó él-, illetve ponthalmazokat keres. A feladat általánosságban NP-nehéz, ezért közelítı algoritmusokkal is megelégedünk. A közelítı algoritmus a feladatát evolúciós technikával oldja meg. Megtörtént az algoritmus implementációja is. Mőködtetésének tapasztalatai kedvezıek. A dolgozat 3. fejezetében a tézisben összefoglalt új klaszterezı algoritmust adok meg. Az algoritmus részletes bemutatása és elemzése után a megvalósításáról és annak kedvezı tapasztalatairól is összefoglalót adok. Az algoritmus nem egyetlen fix mőködéső, hanem két paraméterként is tekinthetı függvényének változtatásával sokféle- képpen befolyásolható, s így számos feladattípusra alkalmazható. A témával foglalkozó publikációim: [14], [15]. 5. tézis Megadható a számítógépes adatkezelés korszakokra bontása és a korszakok jellemzése. Rendszerezhetık a 3. korszak, a különösen nagy adatmennyiségek kezelésének feladatai. Az adatok kezelése igen általános, az informatikai rendszerekben tipikus kísérı feladat. Emiatt az adatkezeléssel régóta foglalkoznak, aminek eredményeként egyre komplexebb adatkezelési elgondolások és megoldások születtek. Az adatkezelési feladatok és megoldások fejlıdése korszakokba sorolható. Az elsı korszak a programozás kora, amely a minél hatékonyabb programozási nyelvek és algoritmusok kidolgozására koncentrált. A második korszak az adatbázisok kora, amely (leginkább a szoftverkrízis hatására) az adatkezelés célszerő megoldását kereste. Az elsı és második korszak eredményei és a jelentısen megnövekedett technikai lehetıségek oda vezettek, hogy mára elıállt az a helyzet, amelyet úgy is jellemezhetünk, hogy: elárasztanak az adatok. Egy alkalmazás, egy alkalmazó számára is hozzáférhetıvé vált óriási és állandóan növekvı adatmennyiség az eddigi módszerekkel már feldolgozhatatlan. Egyre erıteljesebben fogalmazódnak meg minıségileg más feladatok megoldásának igényei. A dolgozat 4. fejezetében az adatkezelés 3. korszaka jellemzését és az új típusú igények, feladatok, problémák áttekintését adom meg. A témával foglalkozó publikációim: [3], [4], [6], [7], [11]. Összegzés A dolgozatban egymástól bizonyos mértékig független kutatási témákat és az ezekben született eredményeket foglaltam össze. E témák azonban egy fı problémacsoport köré rendezhetık, nevezetesen mindannyian a nagy adattömegek kezelésének feladataihoz tartoznak. A hardver-szoftver technikai lehetıségek óriási adattömegek elérhetıségét biztosítják, az ebben rejlı lehetıségek kihasználására egyre erıteljesebben fogalmazódik meg az igény. A nagy adattömeg feldolgozása nagy processzorigényt is jelenthet, az adatigényes elosztott feldolgozásokkal az 1. fejezet foglalkozik. Nagy adattömegek egyik megjele- 6 7