68
Master Informatique 2010.03.24. 1 dr. Kiss Attila XML kutatási irányok XML kutatási irányok

XML kutatási irányok

  • Upload
    clare

  • View
    50

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: XML kutatási irányok

Master Informatique 2010.03.24. 1dr. Kiss Attila XML kutatási irányok

XML kutatási irányok

Page 2: XML kutatási irányok

Master Informatique 2010.03.24. 2dr. Kiss Attila 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– 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

Page 3: XML kutatási irányok

Master Informatique 2010.03.24. 3dr. Kiss Attila XML kutatási irányok

Hogy néz ki egy XML dokumentum?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

Page 4: XML kutatási irányok

Master Informatique 2010.03.24. 4dr. Kiss Attila XML kutatási irányok

AzAz XML XML dokumtumfadokumtumfaPath Expression:/course

Textual Representation:<course></course>

4

o1

o2

o5o3

o4

o7

o6

o9

o8

o11

o10 o12 o14

o13 o15 o17

o16

o18

o26

o25 o27o21

o24 o28o22o20

o19 o23

course

instructor

“Ron Charles”

name

“CS 501”

students

student student

@name

“Alice”

a1a2

midterm

project

“78” “86” “91” “87”

@name

“Bob”

a1

a2 midterm

finalexam

“69” “71” “82”

Path Expression:/course/name/text()

Textual Representation:<course> <name>CS 501</name></course>

“60”

Path Expression:/course/name

Textual Representation:<course> <name></name></course>

Page 5: XML kutatási irányok

Master Informatique 2010.03.24. 5dr. Kiss Attila XML kutatási irányok

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

Page 6: XML kutatási irányok

Master Informatique 2010.03.24. 6dr. Kiss Attila XML kutatási irányok

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

Page 7: XML kutatási irányok

Master Informatique 2010.03.24. 7dr. Kiss Attila XML kutatási irányok

A strukturális indexelési technikák

Page 8: XML kutatási irányok

Master Informatique 2010.03.24. 8dr. Kiss Attila XML kutatási irányok

A struktúra tömörebb tárolása 1-indexszel

1

paper

2,4,8,13section

3,5,9,14

title

6,10algorithm

7proof 11

proof12

uses

15,16

17,18about

exp

1-index

1

paper

4 section

5 title 6

algorithm

7proof

8section

9title

10

11proof

12

uses

algorithm

13 section14

15

16

17

18

about

about

title2

section

3

title

expexp

Adatgráf

/paper/section/algorithm

Page 9: XML kutatási irányok

Master Informatique 2010.03.24. 9dr. Kiss Attila XML kutatási irányok

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

Page 10: XML kutatási irányok

Master Informatique 2010.03.24. 10dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

Column Data TypePATHID RAW(8)RID ROWIDORDER_KEY RAW(1000)LOCATOR RAW(2000)VALUE VARCHAR2(4000)

• A Locator a töredék gyorsabb eléréséhez szükséges mutató.

Page 11: XML kutatási irányok

Master Informatique 2010.03.24. 11dr. Kiss Attila XML kutatási irányok

Az OrderKey (Dewey Order)

name

name child

person

person

hobby hobby

1.1 1.2

1

1.2.1

1.2.1.1 1.2.1.2 1.2.1.3

Page 12: XML kutatási irányok

Master Informatique 2010.03.24. 12dr. Kiss Attila XML kutatási irányok

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>

Page 13: XML kutatási irányok

Master Informatique 2010.03.24. 13dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

PATHID Indexed XPath

1 /PurchaseOrder

2 /PurchaseOrder/Reference

3 /PurchaseOrder/Actions

4 /PurchaseOrder/Actions/Action

5 /PurchaseOrder/Actions/Action/User

Page 14: XML kutatási irányok

Master Informatique 2010.03.24. 14dr. Kiss Attila XML kutatási irányok

XMLIndex Path Table szerkezete

PATHID RID ORDER_KEY VALUE1 R1 1 ——2 R1 1.1 SBELL-

2002100912333601PDT

3 R1 1.2 ——

4 R1 1.2.1 ——

5 R1 1.2.1.1 SVOLLMAN

6 R2 1 ——7 R2 1.1 ABEL-

20021127121040897PST

8 R2 1.2 ——

9 R2 1.2.1 ——

10 R2 1.2.1.1 ZLOTKEY

4 R2 1.2.2 ——

5 R2 1.2.2.1 KING

Page 15: XML kutatási irányok

Master Informatique 2010.03.24. 15dr. Kiss Attila XML kutatási irányok

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, FranceXML-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 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

Page 16: XML kutatási irányok

Master Informatique 2010.03.24. 16dr. Kiss Attila XML kutatási irányok

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

Page 17: XML kutatási irányok

Master Informatique 2010.03.24. 17dr. Kiss Attila XML kutatási irányok

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.

Page 18: XML kutatási irányok

Master Informatique 2010.03.24. 18dr. Kiss Attila XML kutatási irányok

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 Inliningcreate table mytab1 (a int, b char(5), c clob inline length 1000);

Page 19: XML kutatási irányok

Master Informatique 2010.03.24. 19dr. Kiss Attila XML kutatási irányok

Példa: Webszerver naplóállományok (Web Server Logs)

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)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)

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

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

ASCII File 15.9 MB (gzipped 1.6MB):

XML formájú apache web log mérete 24.2 MB (gzipped 2.1MB):

Page 20: XML kutatási irányok

Master Informatique 2010.03.24. 20dr. Kiss Attila XML kutatási irányok

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ó)

Page 21: XML kutatási irányok

Master Informatique 2010.03.24. 21dr. Kiss Attila XML kutatási irányok

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

Page 22: XML kutatási irányok

Master Informatique 2010.03.24. 22dr. Kiss Attila XML kutatási irányok

Ö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)

Page 23: XML kutatási irányok

Master Informatique 2010.03.24. 23dr. Kiss Attila XML kutatási irányok

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

Page 24: XML kutatási irányok

Master Informatique 2010.03.24. 24dr. Kiss Attila XML kutatási irányok

XMill felépítése:

Page 25: XML kutatási irányok

Master Informatique 2010.03.24. 25dr. Kiss Attila XML kutatási irányok

Hogy működik az Xmill?

<apache:entry>

<apache:host> </apache:host>

. . .

</apache:entry>

<apache:entry>

<apache:host> </apache:host>

. . .

</apache:entry>

202.239.238.16

GET / HTTP/1.0

text/html

200

202.239.238.16

GET / HTTP/1.0

text/html

200

gzip: struktúra gzip: adatok

=1.75MB+

A struktúrát az adatoktól függetlenül tömörítjük:

Page 26: XML kutatási irányok

Master Informatique 2010.03.24. 26dr. Kiss Attila XML kutatási irányok

Hogy működik az Xmill?

<apache:entry>

. . .

</apache:entry>

<apache:entry>

. . .

</apache:entry>

202.23.23.16

224.42.24.55

202.23.23.16

224.42.24.55

gzip: struktúra gzip: IP címek

=1.33MB+GET / HTTP/1.0

GET / HTTP/1.1

GET / HTTP/1.0

GET / HTTP/1.1

gzip: web műveletek

+

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ó.)

Page 27: XML kutatási irányok

Master Informatique 2010.03.24. 27dr. Kiss Attila XML kutatási irányok

Hogy működik az Xmill?

gzip: struktúra + gzip: c1(adatok1) + gzip: c2(adatok2) + ... =0.82MB

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.

Page 28: XML kutatási irányok

Master Informatique 2010.03.24. 28dr. Kiss Attila XML kutatási irányok

A struktúra tömörítése

• 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 lang=“English”>Data Compression</Title>

<Author>Gray</Author>

<Author>Reiter</Author>

</Book>

<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 0Book = 1, Title = 2, @lang = 3, Author = 4

1 2 3 -1 0 -2 0 4 -3 0 4 -3 0 0

Szótár nélkül 14 bájtSzótár alapú tömörítés:

minden új szó egy új bejegyzés a szótárban

Ismétlődő részstruktúrák esetén nagyon jó tömörítés érhető el.

Page 29: XML kutatási irányok

Master Informatique 2010.03.24. 29dr. Kiss Attila XML kutatási irányok

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)

Page 30: XML kutatási irányok

Master Informatique 2010.03.24. 30dr. Kiss Attila XML kutatási irányok

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

Page 31: XML kutatási irányok

Master Informatique 2010.03.24. 31dr. Kiss Attila XML kutatási irányok

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.

Page 32: XML kutatási irányok

Master Informatique 2010.03.24. 32dr. Kiss Attila XML kutatási irányok

/

d

b

d

a

b

d e

c c

e

/

d

a

b

d e

c

e

c

d

c b

d

SIT index készítése

0

1

2

3 4

5 6 7

8 9 10

0

1

2

3 4

5 6,6 7

8 9 10,8,10 ,9

,7

,10

Page 33: XML kutatási irányok

Master Informatique 2010.03.24. 33dr. Kiss Attila XML kutatási irányok

XQzip működése

InputXML

Document

SAXParser

Compressor(gzip)

IndexConstructor

b1 a1 c1a2 ... bi ckaj

a c b...

a5c7 ... b9

Parser

Executor

BufferManager

SIT

Hashtable

Compressed blocks

Query Processor

Query

QueryResult

Buffer Pool

XQzip Repository

• 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)

Page 34: XML kutatási irányok

Master Informatique 2010.03.24. 34dr. Kiss Attila XML kutatási irányok

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)

Page 35: XML kutatási irányok

Master Informatique 2010.03.24. 35dr. Kiss Attila XML kutatási irányok

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.

Page 36: XML kutatási irányok

Master Informatique 2010.03.24. 36dr. Kiss Attila XML kutatási irányok

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.

Page 37: XML kutatási irányok

Master Informatique 2010.03.24. 37dr. Kiss Attila XML kutatási irányok

Blokkméret

0

1

2

3

4

5

6

7

8

9

10

10 100 1000 10000

Block Size (# data records)

Qu

eryi

ng T

ime

(sec

)

SwissP rot-L SwissP rot-M SwissP rot-H

XMark-L XMark-M XMark-H

OMIM-L OMIM-M OMIM-H

13.612.9

600

Page 38: XML kutatási irányok

Master Informatique 2010.03.24. 38dr. Kiss Attila XML kutatási irá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 L1/(L2 + L3 + L4)

– L1 : //a[b = “Crete”] (prefix) L2 : c– L3 : d[f/count() >100] L4 : e[//g]

Page 39: XML kutatási irányok

Master Informatique 2010.03.24. 39dr. Kiss Attila XML kutatási irányok

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

Page 40: XML kutatási irányok

Master Informatique 2010.03.24. 40dr. Kiss Attila XML kutatási irányok

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.

Page 41: XML kutatási irányok

Master Informatique 2010.03.24. 41dr. Kiss Attila XML kutatási irányok

Tömörítési arány: 1- méret(tömörített XML)/méret(XML)

0

10

20

30

40

50

60

70

80

90

100

XMark OMIM DBLP SwissProt Treebank PSD Shakespeare Lineitem

Data Sources

Co

mp

ressio

n R

ati

o (

%)

XQzip+ XQzip XMill gzip XGrind

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.

Page 42: XML kutatási irányok

Master Informatique 2010.03.24. 42dr. Kiss Attila XML kutatási irányok

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)

XCQCompression

Engine

XCQQueryingEngine

DTD

XMLdokumentum

tömörítettdokumentum

eredmény

XPath lekérdezés

DSP

PPG format BSS indexing Access

Methods

Page 43: XML kutatási irányok

Master Informatique 2010.03.24. 43dr. Kiss Attila XML kutatási irányok

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

Page 44: XML kutatási irányok

Master Informatique 2010.03.24. 44dr. Kiss Attila XML kutatási irányok

DSP – Input és Output

A DTD fa

AdatfolyamDSP

Modul

Struktúrafolyam

SAX események folyama

Page 45: XML kutatási irányok

Master Informatique 2010.03.24. 45dr. Kiss Attila XML kutatási irányok

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)>

Key:

: PCDATA

library

author(name)

title year num_copy

paper

course_note

book

entry*

publisher? |

Page 46: XML kutatási irányok

Master Informatique 2010.03.24. 46dr. Kiss Attila XML kutatási irányok

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)>

Key:

: PCDATA

library

author(name)

title year num_copy

paper

course_note

book

entry*

publisher? |

Page 47: XML kutatási irányok

Master Informatique 2010.03.24. 47dr. Kiss Attila XML kutatási irányok

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>

Page 48: XML kutatási irányok

Master Informatique 2010.03.24. 48dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “library”

Structure Stream:

Data Streams:

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

entry*

publisher? |

Page 49: XML kutatási irányok

Master Informatique 2010.03.24. 49dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “entry”

Structure Stream:

Data Streams:

T

Match!

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

entry*

publisher? |

Page 50: XML kutatási irányok

Master Informatique 2010.03.24. 50dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “author”, att0:name=“Tom”End element – “author”

Structure Stream:

Data Streams:

T

Match!

d0

, d0

d0: Tom

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

entry*

publisher? |

Page 51: XML kutatási irányok

Master Informatique 2010.03.24. 51dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “title”PCDATA – “Introduction to &#34;OS &#34;”End element – “title”

Structure Stream:

Data Streams:

T, d0, d1

d0: Tomd1: Introduction to &#34;OS &#34;

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

entry*

publisher? |

Page 52: XML kutatási irányok

Master Informatique 2010.03.24. 52dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

SAX Events:Start element – “year”PCDATA – “2003”End element – “year”Start element – “course_note”

Structure Stream:

Data Streams:

T, d0, d1, d2

d0: Tomd1: Introduction to &#34;OS &#34;d2: 2003

Not match

!

F

, F

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

entry*

publisher? |

Page 53: XML kutatási irányok

Master Informatique 2010.03.24. 53dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “course_note”End element – “course_note”

Structure Stream:

Data Streams:

T, d0, d1, d2, F

d0: Tomd1: Introduction to &#34;OS &#34;d2: 2003

p1

Not match

!

Match!

, p1

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

p1

p0 p2

entry*

publisher? |

Page 54: XML kutatási irányok

Master Informatique 2010.03.24. 54dr. Kiss Attila XML kutatási irányok

SAX Event:

library

author(name)

title year num_copy

paper

course_note

bookKeys:

: Traversal path

: PCDATA: Processing DTD tree node

Start element – “num_copy”PCDATA – “3”End element – “num_copy”End element – “entry”

Structure Stream:

Data Streams:

T, d0, d1, d2, F, p1

d0: Tomd1: Introduction to &#34;OS &#34;d2: 2003d4: 3

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

entry*

publisher? |

Page 55: XML kutatási irányok

Master Informatique 2010.03.24. 55dr. Kiss Attila XML kutatási irányok

3 lépés – az output generálása

Struktúrafolyam

SZÓTÁRAz útvonalak és azonosítójuk.d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Page 56: XML kutatási irányok

Master Informatique 2010.03.24. 56dr. Kiss Attila XML kutatási irányok

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)

XCQCompression

Engine

XCQQueryingEngine

DTD

XMLdokumentum

tömörítettdokumentum

eredmény

XPath lekérdezés

DSP

PPG format BSS indexing Access

Methods

Page 57: XML kutatási irányok

Master Informatique 2010.03.24. 57dr. Kiss Attila XML kutatási irányok

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– Strukturális aggregációs– Ösvényalapú aggregációs

Page 58: XML kutatási irányok

Master Informatique 2010.03.24. 58dr. Kiss Attila XML kutatási irányok

Szelekciós

//entry[author/@name=“Jess” and publisher/text()=“ABC”]

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Page 59: XML kutatási irányok

Master Informatique 2010.03.24. 59dr. Kiss Attila XML kutatási irányok

Strukturális

/library/entry/author

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Page 60: XML kutatási irányok

Master Informatique 2010.03.24. 60dr. Kiss Attila XML kutatási irányok

Strukturális aggregációs

count(//entry)

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Page 61: XML kutatási irányok

Master Informatique 2010.03.24. 61dr. Kiss Attila XML kutatási irányok

Ösvényalapú aggregációs

sum(//num_copy/text()=1)

Structure Stream

Szótár

d0: /library/entry/author/@named1: /library/entry/title/text()d2: /library/entry/year/text()d3: /library/entry/publisher/text()d4: /library/entry/num_copy/text()

d0

d1

d2

d3

d4

Page 62: XML kutatási irányok

Master Informatique 2010.03.24. 62dr. Kiss Attila XML kutatási irányok

Tömörítési arány XMill-lel azonos

0

0.5

1

1.5

2

2.5

3

3.5

4

Com

pres

sion

rat

io (

bits

/byt

e)

Gzip

XMill

XCQ

XGrind

Page 63: XML kutatási irányok

Master Informatique 2010.03.24. 63dr. Kiss Attila XML kutatási irányok

Tömörítési idő

Compression Time

0

10

20

30

40

50

60

70

80

90

Weblog SwissProt DBLP TPC-H XMark Shakespeare

Com

pres

sion

Tim

e (s

)

gzipXMillXCQXGrind

Page 64: XML kutatási irányok

Master Informatique 2010.03.24. 64dr. Kiss Attila XML kutatási irányok

Visszaállítási idő

Decompression Time

0

5

10

15

20

25

30

35

40

45

50

Weblog SwissProt DBLP TPC-H XMark Shakespeare

Dec

ompr

essi

on T

ime

(s)

gzip

XMill

XCQ

XGrind

Page 65: XML kutatási irányok

Master Informatique 2010.03.24. 65dr. Kiss Attila XML kutatási irányok

Lekérdezésekben jobb mint az XGrind

TPC-H

0

2

4

6

8

10

12

14

0.01% 0.40% 1.00% 10.00% 50% 75.00%Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exact

XGrind - exact

XCQ - range

XGrind - range

XMark

0

5

10

15

20

25

30

35

0.01% 0.40% 1.00% 10.00% 50% 75.00%Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exact

XGrind - exact

XCQ - range

XGrind - range

Weblog

0

5

10

15

20

25

0.01% 0.04% 1% 10% 50% 75%

Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exact

XGrind - exact

XCQ - range

XGrind - range

DBLP

0

5

10

15

20

25

30

0.02% 0.40% 1% 10% 50% 75%Selectivity (%)

Res

pons

e T

ime

(s)

XCQ - exactXGrind - exactXCQ - rangeXGrind - range

Page 66: XML kutatási irányok

Master Informatique 2010.03.24. 66dr. Kiss Attila XML kutatási irányok

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 E-Commerce. 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.

• JunKi Min, MyungJae Park, ChinWan 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).

Page 67: XML kutatási irányok

Master Informatique 2010.03.24. 67dr. Kiss Attila XML kutatási irányok

http://webdocs.cs.ualberta.ca/~gleighto/research/xml-comp.html

Page 68: XML kutatási irányok

Master Informatique 2010.03.24. 68dr. Kiss Attila XML kutatási irányok

Köszönöm a figyelmet!

Tömörített állomány