xml kutatási irányok
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 PresentationTRANSCRIPT
Master Informatique 2010.03.24. 1dr. Kiss Attila XML kutatási irányok
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
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
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>
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
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
Master Informatique 2010.03.24. 7dr. Kiss Attila XML kutatási irányok
A strukturális indexelési technikák
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
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
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ó.
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
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>
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
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
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
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
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.
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);
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):
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ó)
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
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)
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
Master Informatique 2010.03.24. 24dr. Kiss Attila XML kutatási irányok
XMill felépítése:
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:
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ó.)
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.
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.
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)
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
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.
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
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)
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)
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.
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.
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
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]
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
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.
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.
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
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
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
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? |
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? |
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 "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
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 "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
entry*
publisher? |
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 "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
entry*
publisher? |
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 "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
entry*
publisher? |
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 "OS "”End element – “title”
Structure Stream:
Data Streams:
T, d0, d1
d0: Tomd1: Introduction to "OS "
<library> <entry> <author name="Tom"/> <title>Introduction to "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
entry*
publisher? |
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 "OS "d2: 2003
Not match
!
F
, F
<library> <entry> <author name="Tom"/> <title>Introduction to "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
entry*
publisher? |
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 "OS "d2: 2003
p1
Not match
!
Match!
, p1
<library> <entry> <author name="Tom"/> <title>Introduction to "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
p1
p0 p2
entry*
publisher? |
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 "OS "d2: 2003d4: 3
<library> <entry> <author name="Tom"/> <title>Introduction to "OS"</title> <year>2003</year> <course_note/> <num_copy>3</num_copy> </entry></library>
entry*
publisher? |
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
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
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
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
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
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
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
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
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
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
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
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).
Master Informatique 2010.03.24. 67dr. Kiss Attila XML kutatási irányok
http://webdocs.cs.ualberta.ca/~gleighto/research/xml-comp.html
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