XML kutatsi irnyok Kiss Attila Master dr Informatique

  • Slides: 68
Download presentation
XML kutatási irányok Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24.

XML kutatási irányok Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 1

Információs Rendszerek Tanszéken folyó kutatások • • • Kutató Egyetem pályázat 2 csoport (hálózatok,

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 – – – 1. Á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 1. 2. 3. 4. 5. 6. 7. 8. Kósa Balázs Nyitrai Erika Varga Balázs Menyhárt László Szabó Gyula Benczúr András Rácz Gábor (szakdolgozó) Bs. C-s, Ms. C-s hallgatók Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 2

Hogy néz ki egy XML dokumentum? <course> <name>CS 501</name> <instructor>Ron Charles</instructor> <students> <student name=“Alice“>

Hogy néz ki egy XML dokumentum? <course> <name>CS 501</name> <instructor>Ron Charles</instructor> <students> <student name=“Alice“> <a 1>78</a 1> <a 2>86</a 2> <midterm>91</midterm> <project>87</project> </student> <student name=“Bob“> <a 1>69</a 1> <a 2>71</a 2> <midterm>82</midterm> <finalexam>60</finalexam> </students> </course> 3 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 3

Az XML dokumtumfa Path Expression: /course/name/text() /course/name course name o 1 instructor o 2

Az XML dokumtumfa Path Expression: /course/name/text() /course/name course name o 1 instructor o 2 students o 4 “CS 501” student “Ron Charles” o 5 o 3 o 6 Textual Representation: <course></course> <course> Representation: <course> <name>CS 501</name> student </course> <name></name> </course> o 7 o 18 @name a 1 a 2 o 8 “Alice” o 9 o 10 “ 78” o 12 “ 86” o 11 o 13 a 1 project finalexam a 2 midterm o 14 “ 91” o 15 o 16 “ 87” o 19 “Bob” o 17 o 20 o 21 “ 69” o 22 o 23 “ 71” midterm o 25 “ 82” o 24 o 26 o 27 “ 60” o 28 4 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 4

Klasszikus feladatok XML-re • A klasszikus relációs adatbázis-kezelési technológiákat XML adatbázisokra is ki kell

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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 5

Hatékony XML lekérdezések indexelési technikákkal 1. Értékek indexelése – az atomi értékeket (például: data(//emp/salary))

Hatékony XML lekérdezések indexelési technikákkal 1. Értékek indexelése – az atomi értékeket (például: data(//emp/salary)) indexeljük – általában B+-fákat használunk 2. 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ő 3. 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 4. Strukturális indexek – materializálja adott típusú ösvénykifejezések eredményeit Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 6

A strukturális indexelési technikák Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03.

A strukturális indexelési technikák Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 7

A struktúra tömörebb tárolása 1 -indexszel paper 1 section title 14 2 4 section

A struktúra tömörebb tárolása 1 -indexszel paper 1 section title 14 2 4 section 3 title 2, 4, 8, 13 section 8 15 exp 16 exp 10 6 9 algorithm title 18 proof 17 about algorithm 5 title proof 1 13 section 7 uses 11 12 title 3, 5, 9, 14 about /paper/section/algorithm Adatgráf Kiss Attila Master dr. Informatique 7 section algorithm 6, 10 proof 12 uses 11 proof exp 15, 16 17, 18 about 1 -index XML kutatási irányok 2010. 03. 24. 8

Oracle XMLIndex • Az XMLIndex 3 komponensből áll – Útvonalindex (path index) – Címkéző

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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 9

XMLIndex Path Table szerkezete Column PATHID RID ORDER_KEY LOCATOR VALUE Data Type RAW(8) ROWID

XMLIndex Path Table szerkezete Column PATHID RID ORDER_KEY LOCATOR VALUE Data Type RAW(8) ROWID RAW(1000) RAW(2000) VARCHAR 2(4000) • A Locator a töredék gyorsabb eléréséhez szükséges mutató. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 10

Az Order. Key (Dewey Order) 1 1. 1 person name child 1. 2. 1

Az Order. Key (Dewey Order) 1 1. 1 person name child 1. 2. 1 name 1. 2. 1. 1 Kiss Attila Master dr. Informatique 1. 2 person hobby 1. 2 XML kutatási irányok hobby 1. 2. 1. 3 2010. 03. 24. 11

XMLIndex Path Table szerkezete <Purchase. Order> <Reference>SBELL-2002100912333601 PDT</Reference> <Actions> <Action> <User>SVOLLMAN</User> </Actions>. . .

XMLIndex Path Table szerkezete <Purchase. Order> <Reference>SBELL-2002100912333601 PDT</Reference> <Actions> <Action> <User>SVOLLMAN</User> </Actions>. . . </Purchase. Order> <Reference>ABEL-20021127121040897 PST</Reference> <Actions> <Action> <User>ZLOTKEY</User> </Action> <User>KING</User> </Actions>. . . </Purchase. Order> Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 12

XMLIndex Path Table szerkezete PATHID 1 2 3 4 5 Kiss Attila Master dr.

XMLIndex Path Table szerkezete PATHID 1 2 3 4 5 Kiss Attila Master dr. Informatique Indexed XPath /Purchase. Order/Reference /Purchase. Order/Actions/Action/User XML kutatási irányok 2010. 03. 24. 13

XMLIndex Path Table szerkezete PATHID 1 2 3 4 5 4 5 Kiss Attila

XMLIndex Path Table szerkezete PATHID 1 2 3 4 5 4 5 Kiss Attila Master dr. Informatique RID R 1 R 1 R 1 R 2 R 2 ORDER_KEY VALUE 1 1. 2 1. 2. 1. 1 1. 2. 2. 1 —— XML kutatási irányok SBELL-2002100912333601 PDT —— —— SVOLLMAN —— ABEL-20021127121040897 PST —— —— ZLOTKEY —— KING 2010. 03. 24. 14

Néhány kutatási téma 2010 -es XML konferenciák tükrében • • • XML Prague 2010,

Néhány kutatási téma 2010 -es XML konferenciák tükrében • • • XML Prague 2010, March 13 th & 14 th – 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 (WGS 84, 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, P 2 P, multimedia, mobile, finance, biotechnologies, geospatial, space/; – XML-data and process /data warehouse, workflow, web, learning, control/; Balisage: The Markup Conference 2010 August 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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 15

Advanced Techniques on XML Data Management (XML-DM 2010) July 15, 2010, Jiuzhai Valley, China

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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 16

XML tömörítés - motiváció • Egyre több XML adat keletkezik – Struktúrák ismétlődnek (címkék,

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. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 17

Tömörítés adatbázis-kezelőkben • Oracle: – XOP - XML-binary Optimized Packaging // Compress the Message

Tömörítés adatbázis-kezelőkben • Oracle: – XOP - XML-binary Optimized Packaging // Compress the Message Content Compression. Agent cagent = new Compression. Agent("oracle: xml: compression"); byte [ ] input = cagent. compress(message); • DB 2: – XML Inlining create table mytab 1 (a int, b char(5), c clob inline length 1000); Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 18

Példa: Webszerver naplóállományok (Web Server Logs) ASCII File 15. 9 MB (gzipped 1. 6

Példa: Webszerver naplóállományok (Web Server Logs) ASCII File 15. 9 MB (gzipped 1. 6 MB): 202. 239. 238. 16|GET / HTTP/1. 0|text/html|200|1997/10/01 -00: 02|-|4478|-|-|http: //www. net. jp/|Mozilla/3. 1[ja](I) XML formájú apache web log mérete 24. 2 MB (gzipped 2. 1 MB): <apache: entry> <apache: host> 202. 239. 238. 16 </apache: host> <apache: request. Line> GET / HTTP/1. 0 </apache: request. Line> <apache: content. Type> text/html </apache: content. Type> <apache: status. Code> 200</apache: status. Code> <apache: date> 1997/10/01 -00: 02</apache: date> <apache: byte. Count> 4478</apache: byte. Count> <apache: referer> http: //www. net. jp/ </apache: referer> <apache: user. Agent> Mozilla/3. 1$[$ja$]$(I)</apache: user. Agent> </apache: entry> Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 19

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. –

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ó) Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 20

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.

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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 21

Ötlet • Az XML fa struktúrájú. • Különítsük el a fa struktúrát és azokat

Ö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) Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 22

XMill • Ez volt az első XML tömörítő – SAX parser használ XML elemzésére

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éshez három techniká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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 23

XMill felépítése: Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 24

XMill felépítése: Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 24

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

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> 202. 239. 238. 16 GET / HTTP/1. 0 text/html 200 … + . . . </apache: entry> Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. =1. 75 MB 25

Hogy működik az Xmill? Típus szerint csoportosítjuk az adatokat. Egyszerű feltétel: Azonos címke azonos

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 Data. Guide XML indexszel gyorsítható. ) gzip: struktúra gzip: IP címek gzip: web műveletek <apache: entry>. . . </apache: entry> 202. 23. 16 224. 42. 24. 55 … GET / HTTP/1. 0 GET / HTTP/1. 1 … Kiss Attila Master dr. Informatique + XML kutatási irányok + 2010. 03. 24. =1. 33 MB 26

Hogy működik az Xmill? Speciális (szemantikus) tömörítőket alkalmazunk. xmill -p //price=>i -p //state=>e file.

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 32 biten (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. gzip: struktúra + gzip: c 1(adatok 1) + gzip: c 2(adatok 2) +. . . Kiss Attila Master dr. Informatique XML kutatási irányok =0. 82 MB 2010. 03. 24. 27

A struktúra tömörítése <Book><Title lang=“English”>Data Compression</Title> <Author>Gray</Author> <Author>Reiter</Author> Szótár alapú tömörítés: </Book> minden új

A struktúra tömörítése <Book><Title lang=“English”>Data Compression</Title> <Author>Gray</Author> <Author>Reiter</Author> Szótár alapú tömörítés: </Book> minden új szó egy új bejegyzés a szótárban Szótár nélkül 14 bájt • 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. <Book><Title Book =lang=“English”>Data lang=-1>-2</Title> lang=-1 1, Title = 0>-2 2, @lang 0 <Author>-3 = 3, Compression</Title> Author 0 <Author>-3 =4 00 <Author>Gray</Author> <Author>-3</Author> 1 2 3 -1 0 -2 0 4 -3 0 0 <Author>Reiter</Author> <Author>-3</Autor> Ismétlődő </Book> részstruktúrák esetén nagyon jó tömörítés érhető el. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 28

Kísérleti eredmények (bit/bájt) 1. oszlop: gzip (ASCII) 2. oszlop: gzip (XML) 3. oszlop: XMILL

Kísérleti eredmények (bit/bájt) 1. oszlop: gzip (ASCII) 2. oszlop: gzip (XML) 3. oszlop: XMILL (minden adat 1 konténerbe kerül) 4. oszlop: XMILL (minden címke 1 konténer) 5. oszlop: XMILL (a legjobb, amit más konténerre osztással el tudtak érni) Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 29

Lekérdezhető tömörítők • XQzip: jellemzői: • SIT indexet használ a lekérdezés kiértékeléséhez • Blokkat

Lekérdezhető tömörítők • XQzip: jellemzői: • SIT indexet 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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 30

Strukturális indexfa (SIT) • A strukturális ismétlődéseket megszünteti. • Két testvér csúcsot összevon, ha

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. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 31

SIT index készítése / 0 0 1 1 a b c 2 d c

SIT index készítése / 0 0 1 1 a b c 2 d c 5 e 3 b 4 Kiss Attila Master dr. Informatique 7 6 d c e 8 2, 7 5 , 6 6 7 d d 9 10 3, 8, 10 XML kutatási irányok 4, 9 8, 10 9 2010. 03. 24. 10 32

XQzip működése • Indexelő: elkészíti a SIT indexet • Tömörítő – A szemantikusan összetartozó

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) Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 33

SIT index készítésének költsége N: az XML dokumentum elemeinek (címkék + attribútumok) száma •

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) Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 34

Mekkora legyen a blokkméret ? • A blokkat gzip-pel tömörítjük. • A két véglet:

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. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 35

Mitől függ a blokkméret? Minták az adathalmazra és lekérdezésekre. • Adathalmazban a szövegek, számok,

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. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 36

Blokkméret Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 37

Blokkméret Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 37

Milyen lekérdezésekre jó a XQzip? • Minden XPath fel-le irány (axes) használható, az oldalirányok

Milyen lekérdezésekre jó a XQzip? • Minden XPath fel-le irány (axes) használható, az oldalirányok (preceding, following siblings) viszont nem. • beágyazott, összetett predikátumok – and / or / not kifejezések • Aggregáció: sum, count, average, max, min • Unió: például L 1/(L 2 + L 3 + L 4) – L 1 : //a[b = “Crete”] (prefix) L 2 : c – L 3 : d[f/count() >100] L 4 : e[//g] Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 38

Lekérdezés kiértékelése • Az indexfa mélységi bejárása alapján • A korábbi lekérdezések miatt kibontott

Lekérdezés kiértékelése • Az indexfa mélységi bejá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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 39

A SIT index előnye • Kísérleti eredmények alapján: • Indexméret : 1%-a az eredeti

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&Bindex esetén. • Az index készítése 3 -szor gyorsabb mint az F&B-index esetén. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 40

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,

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. Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 41

XCQ tömörítés • Négy technikát használ – – DTD fát és SAX eseményfolyam elemzést

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 DTD XML dokumentum Kiss Attila Master dr. Informatique Access Methods XCQ Compression Engine tömörített dokumentum XCQ Querying Engine eredmény XPath lekérdezés XML kutatási irányok 2010. 03. 24. 42

DTD fa és SAX (DSP) • Cél: – A DTD sémaleírás felhasználása • Előnyök:

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 Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 43

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

DSP – Input és Output A DTD fa Struktúrafolyam DSP Modul Adatfolyam SAX események folyama Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 44

Első lépés – a DTD fa készítése library <!ELEMENT library (entry*)> <!ELEMENT entry (author,

Első lépés – a DTD fa készítése library <!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)> Kiss Attila Master dr. Informatique entry* author (name) title Key: XML kutatási irányok year publisher? paper : PCDATA | num_copy book course_note 2010. 03. 24. 45

Minek mi felel meg a DTD fán? library <!ELEMENT library (entry*)> <!ELEMENT entry (author,

Minek mi felel meg a DTD fán? library <!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)> Kiss Attila Master dr. Informatique entry* author (name) title Key: XML kutatási irányok year publisher? paper : PCDATA | num_copy book course_note 2010. 03. 24. 46

2. lépés DSP feldolgozás • A következő XML dokumentumot fogjuk a DTD alapján feldolgozni.

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 " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 47

<library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library>

<library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> SAX Event: Start element – “library” Structure Stream: library entry* author (name) title year Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique publisher? | num_copy paper Data Streams: book course_note XML kutatási irányok 2010. 03. 24. 48

SAX Event: Start element – “entry” Match! Structure Stream: library entry* author (name) title

SAX Event: Start element – “entry” Match! Structure Stream: library entry* author (name) title year Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique <library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> T publisher? | num_copy paper Data Streams: book course_note XML kutatási irányok 2010. 03. 24. 49

SAX Event: Start element – “author”, att 0: name=“Tom” End element – “author” d

SAX Event: Start element – “author”, att 0: name=“Tom” End element – “author” d 0 library title Structure Stream: T , d 0 Match! author (name) <library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> entry* year publisher? | num_copy Data Streams: d 0: Tom Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique paper book course_note XML kutatási irányok 2010. 03. 24. 50

SAX Event: Start element – “title” PCDATA – “Introduction to " OS " ”

SAX Event: Start element – “title” PCDATA – “Introduction to " OS " ” End element – “title” <library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> Structure Stream: library T, d 0, d 1 entry* author (name) title year publisher? | num_copy Data Streams: d 0: Tom d 1: Introduction to " OS " Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique paper book course_note XML kutatási irányok 2010. 03. 24. 51

<library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library>

<library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> SAX Event: SAX Events: Start element – “year” PCDATA – “ 2003” End element – “year” Start element – “course_note” library Not match! entry* Structure Stream: T, d 0, d 1, d 2, F F author (name) title year Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique publisher? | num_copy paper book Data Streams: d 0: Tom d 1: Introduction to " OS " d 2: 2003 course_note XML kutatási irányok 2010. 03. 24. 52

SAX Event: Start element – “course_note” End element – “course_note” <library> <entry> <author name="Tom"/>

SAX Event: Start element – “course_note” End element – “course_note” <library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> Structure Stream: library T, d 0, d 1, d 2, F, p 1 entry* Match! Not match! author (name) p 1 title year publisher? | p 0 num_copy Data Streams: p 2 d 0: Tom d 1: Introduction to " OS " d 2: 2003 p 1 Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique paper book course_note XML kutatási irányok 2010. 03. 24. 53

<library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library>

<library> <entry> <author name="Tom"/> <title>Introduction to " OS" </title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry> </library> SAX Event: Start element – “num_copy” PCDATA – “ 3” End element – “num_copy” End element – “entry” Structure Stream: library T, d 0, d 1, d 2, F, p 1 entry* author (name) title year Keys: : Traversal path : PCDATA : Processing DTD tree node Kiss Attila Master dr. Informatique publisher? | num_copy paper book Data Streams: d 0: Tom d 1: Introduction to " OS " d 2: 2003 d 4: 3 course_note XML kutatási irányok 2010. 03. 24. 54

3 lépés – az output generálása Struktúrafolyam SZÓTÁR Az útvonalak és azonosítójuk. d 0:

3 lépés – az output generálása Struktúrafolyam SZÓTÁR Az útvonalak és azonosítójuk. d 0: /library/entry/author/@name d 1: /library/entry/title/text() d 2: /library/entry/year/text() d 3: /library/entry/publisher/text() d 4: /library/entry/num_copy/text() Kiss Attila Master dr. Informatique XML kutatási irányok d 0 d 1 d 2 d 3 2010. 03. 24. d 4 55

A XCQ tömörítés • Négy technikát használ (a 2 -3 technikát most átugorjuk) –

A XCQ tömörítés • Négy technikát használ (a 2 -3 technikát most átugorjuk) – 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 DTD XML dokumentum Kiss Attila Master dr. Informatique Access Methods XCQ Compression Engine tömörített dokumentum XCQ Querying Engine eredmény XPath lekérdezés XML kutatási irányok 2010. 03. 24. 56

4. Elérési módszerek • Cél – Lekérdezések kiértékelése a tömörítés alapján • 4 féle

4. Elérési módszerek • Cél – Lekérdezések kiértékelése a tömörítés alapján • 4 féle lekérdezésre jó – – Szelekciós Strukturális aggregációs Ösvényalapú aggregációs Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 57

Szelekciós //entry[author/@name=“Jess” and publisher/text()=“ABC”] Structure Stream d 0 Szótár d 0: d 1: d

Szelekciós //entry[author/@name=“Jess” and publisher/text()=“ABC”] Structure Stream d 0 Szótár d 0: d 1: d 2: d 3: d 4: d 1 d 2 d 3 d 4 /library/entry/author/@name /library/entry/title/text() /library/entry/year/text() /library/entry/publisher/text() /library/entry/num_copy/text() Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 58

Strukturális /library/entry/author Structure Stream d 0 Szótár d 0: d 1: d 2: d

Strukturális /library/entry/author Structure Stream d 0 Szótár d 0: d 1: d 2: d 3: d 4: d 1 d 2 d 3 d 4 /library/entry/author/@name /library/entry/title/text() /library/entry/year/text() /library/entry/publisher/text() /library/entry/num_copy/text() Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 59

Strukturális aggregációs count(//entry) Structure Stream d 0 Szótár d 0: d 1: d 2:

Strukturális aggregációs count(//entry) Structure Stream d 0 Szótár d 0: d 1: d 2: d 3: d 4: d 1 d 2 d 3 d 4 /library/entry/author/@name /library/entry/title/text() /library/entry/year/text() /library/entry/publisher/text() /library/entry/num_copy/text() Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 60

Ösvényalapú aggregációs sum(//num_copy/text()=1) Structure Stream d 0 Szótár d 0: d 1: d 2:

Ösvényalapú aggregációs sum(//num_copy/text()=1) Structure Stream d 0 Szótár d 0: d 1: d 2: d 3: d 4: d 1 d 2 d 3 d 4 /library/entry/author/@name /library/entry/title/text() /library/entry/year/text() /library/entry/publisher/text() /library/entry/num_copy/text() Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 61

Tömörítési arány XMill-lel azonos Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03.

Tömörítési arány XMill-lel azonos Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 62

Tömörítési idő Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 63

Tömörítési idő Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 63

Visszaállítási idő Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 64

Visszaállítási idő Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 64

Lekérdezésekben jobb mint az XGrind Kiss Attila Master dr. Informatique XML kutatási irányok 2010.

Lekérdezésekben jobb mint az XGrind Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 65

Néhány alapcikk az XML tömörítési témából • • XMILL: An Efficient Compressor for XML

Néhány alapcikk az XML tömörítési témából • • XMILL: An Efficient Compressor for XML Data by Liefke and Suciu, in SIGMOD'2001 P. M. Tolani and J. R. Haritsa. XGRIND: A Query-friendly XML Compressor. IEEE ICDE Conf. , pp. 225 -234, 2002. M. Girardot and N. Sundaresan. Millau: an encoding format for efficient representation and exchange of XML over the Web. WWW Conf. , pp. 747 -765, 2000. H. Ishikawa, S. Yokoyama, S. Isshiki and M. Ohta. Project Xanadu: XML- and Active-Database-Unified Approach to Distributed ECommerce. Int. Workshop on DEXA, 2001. A. Arion, A. Bonifati, G. Costa, S. D’Aguanno, I. Manolescu, A. Pugliese, Efficient Query Evaluation over XML Compressed Data, EDBT 2004. Jun. Ki Min, Myung. Jae Park, Chin. Wan Chung, XPRESS: A Queriable Compression for XML Data, EDBT 2004. Wilfred NG, Wai-Yeung LAM, Peter WOOD and Mark LEVENE. XCQ: A Queriable XML Compression System. Accepted and to appear: An International Journal of Knowledge and Information Systems, (2005). Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 66

http: //webdocs. ualberta. ca/~gleighto/research/xml-comp. html Kiss Attila Master dr. Informatique XML kutatási irányok 2010.

http: //webdocs. ualberta. ca/~gleighto/research/xml-comp. html Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 67

Köszönöm a figyelmet! Tömörített állomány Kiss Attila Master dr. Informatique XML kutatási irányok 2010.

Köszönöm a figyelmet! Tömörített állomány Kiss Attila Master dr. Informatique XML kutatási irányok 2010. 03. 24. 68