1 / 68

XML kutatási irányok

XML kutatási irányok. Információs Rendszerek Tanszéken folyó kutatások. Kutató Egyetem pályázat 2 csoport (hálózatok, adatbázisok) Heti 2 szeminárium 2010 februártól kezdve Lukovszki Tamás (hétfő 10-12, 2.519): hálózati topológiák Ács Zoltán Agócs Ádám Balaton Attila Laki Sándor

clare
Télécharger la présentation

XML kutatási irányok

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML kutatási irányok

  2. Információs Rendszerek Tanszéken folyó kutatások • Kutató Egyetem pályázat • 2 csoport (hálózatok, adatbázisok) • Heti 2 szeminárium 2010 februártól kezdve • Lukovszki Tamás (hétfő 10-12, 2.519): hálózati topológiák • Ács Zoltán • Agócs Ádám • Balaton Attila • Laki Sándor • Benczúr András, Kiss Attila • szakdolgozók • Kiss Attila (péntek 9-11, 2.519): adatbázisok, XML, kockázatkezelés, projektütemezések matematikai modelljei • Kósa Balázs • Nyitrai Erika • Varga Balázs • Menyhárt László • Szabó Gyula • Benczúr András • Rácz Gábor (szakdolgozó) • BsC-s, MsC-s hallgatók

  3. Hogy néz ki egy XML dokumentum? <course> <name>CS 501</name> <instructor>Ron Charles</instructor> <students> <student name=“Alice“> <a1>78</a1> <a2>86</a2> <midterm>91</midterm> <project>87</project> </student> <student name=“Bob“> <a1>69</a1> <a2>71</a2> <midterm>82</midterm> <finalexam>60</finalexam> </student> </students> </course> 3

  4. Az XML dokumtumfa Path Expression: /course Textual Representation: <course></course> Path Expression: /course/name/text() Textual Representation: <course> <name>CS 501</name> </course> Path Expression: /course/name Textual Representation: <course> <name></name> </course> course name o1 instructor students o2 o4 student student o6 “CS 501” “Ron Charles” o5 o7 o3 o18 @name @name a1 finalexam a1 project a2 a2 midterm midterm o16 o8 o10 o12 o14 o19 o21 o23 o25 o27 “Alice” “86” “91” “87” “Bob” “78” “69” “71” “82” “60” o13 o9 o11 o15 o17 o20 o22 o24 o26 o28 4

  5. Klasszikus feladatok XML-re • A klasszikus relációs adatbázis-kezelési technológiákat XML adatbázisokra is ki kell terjeszteni: • hatékony tárolás (natív vagy relációs adatbázisban) • hatékony lekérdezés, karbantartás (indexeket is) • jogosultságok kezelése • tranzakció-kezelés • adatbányászat

  6. Hatékony XML lekérdezések indexelési technikákkal • Értékekindexelése • azatomi értékeket (például: data(//emp/salary)) indexeljük • általában B+-fákat használunk • Szöveges indexelés • az XML dokumentumot közönséges szöveges állománynak tekintjük • a kulcsszavak keresése invertált indexekkel segíthető • Strukturális címkézés (számozási sémák) • az előd/utód reláció gyors eldöntésére szolgál • Strukturális indexek • materializálja adott típusú ösvénykifejezések eredményeit

  7. A strukturális indexelési technikák

  8. A struktúra tömörebb tárolása 1-indexszel paper paper 1 1 13 section section title 14 section 2 2,4,8,13 section 8 4 section 3 15 exp exp title exp algorithm title algorithm 16 10 15,16 3,5,9,14 6,10 6 9 algorithm title 5 title 18 about proof proof 17 11 17,18 proof 7 7 11 about about uses proof 12 12 /paper/section/algorithm uses Adatgráf 1-index

  9. Oracle XMLIndex • Az XMLIndex 3 komponensből áll • Útvonalindex (path index) • Címkéző index (order index) • Értékindex (value index) • Néhány eset, amikor nem használható: • felhasználó által definiált XPath függvények • child, descendant és attribute irányoktól eltérő irányok • uniót ( | ) használó kifejezések

  10. XMLIndex Path Table szerkezete Column Data Type PATHID RAW(8) RID ROWID ORDER_KEY RAW(1000) LOCATOR RAW(2000) VALUE VARCHAR2(4000) • A Locator a töredék gyorsabb eléréséhez szükséges mutató.

  11. Az OrderKey (Dewey Order) 1 person 1.1 name child 1.2 1.2.1 person name hobby hobby 1.2.1.1 1.2.1.2 1.2.1.3

  12. XMLIndex Path Table szerkezete <PurchaseOrder> <Reference>SBELL-2002100912333601PDT</Reference> <Actions> <Action> <User>SVOLLMAN</User> </Action> </Actions> . . . </PurchaseOrder> <PurchaseOrder> <Reference>ABEL-20021127121040897PST</Reference> <Actions> <Action> <User>ZLOTKEY</User> </Action> <Action> <User>KING</User> </Action> </Actions> . . . </PurchaseOrder>

  13. XMLIndex Path Table szerkezete PATHID Indexed XPath 1 /PurchaseOrder 2 /PurchaseOrder/Reference 3 /PurchaseOrder/Actions 4 /PurchaseOrder/Actions/Action 5 /PurchaseOrder/Actions/Action/User

  14. XMLIndex Path Table szerkezete PATHID RID ORDER_KEY VALUE • R1 1 —— • R1 1.1 SBELL-2002100912333601PDT • R1 1.2 —— • R1 1.2.1 —— • R1 1.2.1.1 SVOLLMAN • R2 1 —— • R2 1.1 ABEL-20021127121040897PST • R2 1.2 —— • R2 1.2.1 —— • R2 1.2.1.1 ZLOTKEY • R2 1.2.2 —— • R2 1.2.2.1 KING

  15. Néhány kutatási téma 2010-es XML konferenciák tükrében • XML Prague 2010, March 13th & 14th • XML Lifecycle (diffing, merging, change tracking, etc.) • Efficiency and performance in XML (verbosity, processing, overuse) • Hypermedia in XML (SMIL, SVG animations) • Spatial data and XML (WGS84, microformats) • XML all the time (XRX, XQuery web applications) • DBKDA 2010 April 11-16, 2010 - Menuires, France XML-driven data, knowledge, databases: • Data /dissemination, distributed, processing, management/; • XML-data /storage, exchange, compress, metadata/; • XML-data and metadata management; • XML repositories; • Knowledge discovery from XML repositories; • XML-data processing /queries, indexing, management, retrieval, mining/; • XML data and knowledge /representation, discovery, mining, orchestration/; • XML-data in advances environments /clouds, P2P, multimedia, mobile, finance, biotechnologies, geospatial, space/; • XML-data and process /data warehouse, workflow, web, learning, control/; • Balisage: The Markup Conference 2010August 03-06, 2010 Montreal, Canada • Xsd, XQuery, Xslt, Rdf, Sgml, Lmnl, Xsl Fo, Xtm, Svg, Math Ml, Owl, Tex Mecs, Rng, Topic Maps, Document Modeling, Overlap, Ontologies, Xml, Ubl, Metadata

  16. Advanced Techniques on XML Data Management (XML-DM 2010) July 15, 2010, Jiuzhai Valley, China * XML data integration * XML data storage and indexing * XML query languages and optimization * XML views and data publishing * XML applications in semantic web * XML data mining * XML change management * XML views and data mappings * XML data compression* XML in Web services * XML benchmark and performance studies * XML applications in new domains- sensor and biological data management * XML in cloud computing

  17. XML tömörítés - motiváció • Egyre több XML adat keletkezik • Struktúrák ismétlődnek (címkék, útvonalak…) • Adatinfláció: az XML formában tárolt adatok mérete nagyobb, mint a nyers adatoké • Tömörítés célja: tárméret csökkentése, adatátvitel gyorsítása (hely, idő) • Használjunk általános tömörítő algoritmust (például gzip-et)? • az XML adatok jellemző struktúráját elveszítjük, • nem lehet lekérdezni.

  18. Tömörítés adatbázis-kezelőkben • Oracle: • XOP - XML-binary Optimized Packaging // Compress the Message Content CompressionAgent cagent = new CompressionAgent("oracle:xml:compression"); byte [ ] input = cagent.compress(message); • DB2: • XML Inlining create table mytab1 (a int, b char(5), c clob inline length 1000);

  19. Példa: Webszerver naplóállományok (Web Server Logs) ASCII File 15.9 MB (gzipped 1.6MB): <apache:entry> <apache:host> 202.239.238.16 </apache:host> <apache:requestLine> GET / HTTP/1.0 </apache:requestLine> <apache:contentType> text/html </apache:contentType> <apache:statusCode> 200</apache:statusCode> <apache:date> 1997/10/01-00:00:02</apache:date> <apache:byteCount> 4478</apache:byteCount> <apache:referer> http://www.net.jp/ </apache:referer> <apache:userAgent> Mozilla/3.1$[$ja$]$(I)</apache:userAgent> </apache:entry> 202.239.238.16|GET / HTTP/1.0|text/html|200|1997/10/01-00:00:02|-|4478|-|-|http://www.net.jp/|Mozilla/3.1[ja](I) XML formájúapache web logmérete 24.2 MB (gzipped 2.1MB):

  20. XML-specifikus tömörítők • Vannak nem lekérdezhető tömörítők (például XMill): • Nagy darabokat tömörít. • Nagyon jó tömörítési arány • Lekérdezhető tömörítők (például XGrind, XPRESS): • Kisebb szemcséket tömörít. • Gyengébb tömörítési arány és tömörítési idő • Egyszerű ösvénykifejezésekkel lekérdezhető (atomi predikátum is használható)

  21. XML tömörítés fontosabb jellemzői • Tömörítési arány, tömörítési idő, lekérdezhető-e, szükséges memória mérete, stb. Néhány tömörítési algoritmus

  22. Ötlet • Az XML fa struktúrájú. • Különítsük el a fa struktúrát és azokat az adatokat, amiket a levelek tárolnak. Kenyérfa(Hawaii)

  23. XMill • Ez volt az első XML tömörítő • SAX parser használ XML elemzésére • gzip tömörítőt használ • az adatokat tömörítés előtt konténerekbe csoportosítja • Az XML tömörítéshezháromtechnikát használ • Az adatoktól leválasztott struktúrát külön tömöríti • Az adatokat típus szerint csoportosítja (Elnevezés: szemantikus konténer). • A típusnak megfelelő tömörítővel külön tömöríti az adatcsoportokat. (Elnevezés: szemantikus tömörítő használata). • Letölthető: • www.cs.washington.edu/homes/suciu/XMILL

  24. XMill felépítése:

  25. Hogy működik az Xmill? A struktúrát az adatoktól függetlenül tömörítjük: gzip:struktúra gzip:adatok <apache:entry> <apache:host> </apache:host> . . . </apache:entry> 202.239.238.16 GET / HTTP/1.0 text/html 200 … =1.75MB +

  26. Hogy működik az Xmill? Típus szerint csoportosítjuk az adatokat. Egyszerű feltétel: Azonos címke azonos típus. Különböző címkék is jelenthetnek azonos típust: <név>, <anyja neve> A konténereket XPath kifejezésekkel a felhasználó is definiálhatja. (Ez a lépés DataGuide XML indexszel gyorsítható.) gzip: struktúra gzip: IP címek gzip: web műveletek <apache:entry> . . . </apache:entry> 202.23.23.16 224.42.24.55 … GET / HTTP/1.0 GET / HTTP/1.1 … =1.33MB + +

  27. =0.82MB gzip: struktúra + gzip: c1(adatok1) + gzip: c2(adatok2) + ... Hogy működik az Xmill? Speciális (szemantikus) tömörítőket alkalmazunk. xmill -p //price=>i -p //state=>e file.xml • Például: • egészek kódolása 8, 16, vagy 32biten (i) • növekmények tömörítése (di): • például 1999, 1995, 2001, 2000, 1995, ... esetén • listák, rekordok tömörítése: (e) • például 104.32.23.1  4 bájt • A felhasználó választhat a szemantikus tömörítők közül.

  28. A struktúra tömörítése <Book><Title lang=“English”>Data Compression</Title> <Author>Gray</Author> <Author>Reiter</Author> </Book> • Cseréljük az adatértéket a konténer (negatív) sorszámával. • A zárócímkéket cseréljük le 0-ra. • A címkéket/attribútumokat cseréljük le (pozitív) egészekre. Szótár alapú tömörítés: minden új szó egy új bejegyzés a szótárban Szótár nélkül 14 bájt Book = 1, Title = 2, @lang = 3, Author = 4 1 2 3 -1 0 -2 0 4 -3 0 4 -3 0 0 <Book><Title lang=“English”>Data Compression</Title> <Author>Gray</Author> <Author>Reiter</Author> </Book> <Book><Title lang=-1>-2</Title> <Author>-3</Author> <Author>-3</Autor> </Book> <Book><Title lang=-1 0>-2 0 <Author>-3 0 <Author>-3 0 0 Ismétlődő részstruktúrák esetén nagyon jó tömörítés érhető el.

  29. Kísérleti eredmények (bit/bájt) • oszlop: gzip (ASCII) • oszlop: gzip (XML) • oszlop: XMILL (minden adat 1 konténerbe kerül) • oszlop: XMILL (minden címke 1 konténer) • oszlop: XMILL (a legjobb, amit más konténerre osztással el tudtak érni)

  30. Lekérdezhető tömörítők • XQzip:jellemzői: • SITindexet használ a lekérdezés kiértékeléséhez • Blokkat tömörít: a hasonló adatokat blokkokba teszi és a blokkokat tömöríti, ezáltal a keresés+visszaállítás költségét javítja

  31. Strukturális indexfa (SIT) • A strukturális ismétlődéseket megszünteti. • Két testvér csúcsot összevon, ha • a gyökérből ugyanolyan úttal érhetők el • a leszármazottaikhoz tartozó útvonalak rendezett listája megegyezik (dokumentum sorrend szerinti rendezésben). • SIT index készítése: • Az XML fájl egyszeri lineáris végigolvasása. • Ha testvér gyökerű megegyező részfákat találunk, akkor összevonjuk a részfákat.

  32. SIT index készítése / / 0 0 a a 1 1 b b c c b c c c b 7 2 2 ,7 5 6 5 ,6 7 6 d d d e e d d e e d d 9 3 4 8 10 8 ,10 3 4 ,9 9 10 ,8,10

  33. XQzip működése • Indexelő: elkészíti a SIT indexet • Tömörítő • A szemantikusan összetartozó (például azonos címkéjű) értékeket blokkokba teszi, majd • minden blokkot gzip-pel tömörít. • Query Processor: lekérdezés feldolgozó • Elemez • Végrehajt: a SIT indexet használva értékeli ki a lekérdezést • Pufferkezelés ( LRU algoritmussal)

  34. SIT index készítésének költsége N: az XML dokumentum elemeinek (címkék + attribútumok) száma • Időbonyolultság: • Legrosszabb eset: O(N │SIT │) • Átlagos eset: O(N) • Tárbonyolultság: • az összevonáshoz használt 2 részfa: ≤ 2│SIT │ • Az index csúcsokban tároljuk az összevont csúcsok azonosítóit: O(N)

  35. Mekkora legyen a blokkméret ? • A blokkat gzip-pel tömörítjük. • A két véglet: • Külön blokk minden értéknek • Egy blokkba az összes azonos címkéjű érték • Hatás: • Kis blokk: lekérdezési idő↑tömörítési arány↓ • Nagy blokk: lekérdezési idő↓tömörítési arány↑ • A helyes arány tapasztalati minták segítségével állítható be.

  36. Mitől függ a blokkméret? Minták az adathalmazra és lekérdezésekre. • Adathalmazban a szövegek, számok, aránya, szövegek bonyolultsága • Lekérdezések szelektivitása • Különböző típusú minták alapján a tapasztalati optimális blokkméret 600-1000 rekord.

  37. Blokkméret

  38. Milyen lekérdezésekre jó a XQzip? • MindenXPath fel-le irány (axes)használható, az oldalirányok (preceding, followingsiblings) viszont nem. • beágyazott, összetett predikátumok • and / or / notkifejezések • Aggregáció: sum, count, average, max, min • Unió: példáulL1/(L2 + L3 + L4) • L1: //a[b = “Crete”] (prefix)L2: c • L3: d[f/count() >100] L4: e[//g]

  39. Lekérdezés kiértékelése • Az indexfa mélységibejárása alapján • A korábbi lekérdezések miatt kibontott blokkok a pufferben maradnak, először ott keressük • Ha nincs ott, akkor a Hash tábla alapján megtaláljuk azokat a tömörített blokkokat, amelyeket vissza kell állítani. • Pufferkezelés: Least Recently Used módszerrel

  40. A SIT index előnye • Kísérleti eredmények alapján: • Indexméret : 1%-a az eredeti méretnek • A keresés kétszer gyorsabb, mint az F&B-index esetén. • Az index készítése 3-szor gyorsabb mint az F&B-index esetén.

  41. Tömörítési arány: 1- méret(tömörített XML)/méret(XML) XQzip nagyjából olyan mint az XMill és gzip, de lekérdezhető. XQzip+ tartalmazza a SIT index méretét, XQzip nem. 17% -kal jobb, mint az XGrind.

  42. XCQ Querying Engine XCQ Compression Engine eredmény tömörített dokumentum DTD XML dokumentum XPath lekérdezés XCQ tömörítés • Négy technikát használ • DTD fátés SAX eseményfolyam elemzést (DSP) • Parciális ösvényalapú adatcsoportosítás formátumot (PPB) • Blokkstatisztika lenyomatú indexelés (BSS) • elérési módszerek (Access Methods) PPG format BSS indexing DSP Access Methods

  43. DTD fa és SAX (DSP) • Cél: • A DTD sémaleírás felhasználása • Előnyök: • Csak azt kell kódolni, ami DTD sémából nem következik • Az útvonalak alapján csoportosítja az adatokat

  44. A DTD fa Struktúrafolyam DSP Modul Adatfolyam SAX események folyama DSP – Input és Output

  45. library entry* publisher? author (name) title year num_copy | Key: paper book : PCDATA course_note Első lépés– a DTD fa készítése <!ELEMENT library (entry*)> <!ELEMENT entry (author, title, year, publisher?, (paper|course_note|book), num_copy)> <!ELEMENT author EMPTY> <!ATTLIST author name CDATA> <!ELEMENT title (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT paper EMPTY> <!ELEMENT course_note EMPTY> <!ELEMENT book EMPTY> <!ELEMENT num_copy (#PCDATA)>

  46. library entry* publisher? author (name) title year num_copy | Key: paper book : PCDATA course_note Minek mi felel meg a DTD fán? <!ELEMENT library (entry*)> <!ELEMENT entry (author, title, year, publisher?, (paper|course_note|book), num_copy)> <!ELEMENT author EMPTY> <!ATTLIST author name CDATA> <!ELEMENT title (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT paper EMPTY> <!ELEMENT course_note EMPTY> <!ELEMENT book EMPTY> <!ELEMENT num_copy (#PCDATA)>

  47. 2. lépés DSP feldolgozás • A következő XML dokumentumot fogjuk a DTD alapján feldolgozni. • A feldolgozás során egy struktúrafolyam és egy adatfolyam keletkezik. <library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library>

  48. <library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> SAX Event: Start element – “library” Structure Stream: library entry* author (name) publisher? | title year num_copy Data Streams: Keys: paper book : Traversal path course_note : PCDATA : Processing DTD tree node

  49. T <library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> SAX Event: Start element – “entry” Match! Structure Stream: library entry* author (name) publisher? | title year num_copy Data Streams: Keys: paper book : Traversal path course_note : PCDATA : Processing DTD tree node

  50. <library> <entry> <author name="Tom"/> <title>Introduction to &#34;OS&#34;</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> SAX Event: Start element – “author”, att0:name=“Tom” End element – “author” d0 Structure Stream: library T , d0 Match! entry* author (name) publisher? | title year num_copy Data Streams: d0: Tom Keys: paper book : Traversal path course_note : PCDATA : Processing DTD tree node

More Related