1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML...

22
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005

Transcript of 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML...

Page 1: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

1

StatiX: Making XML Count

J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon:StatiX: Making XML Count ACM SIGMOD, June 2002

Ann Früchtl16.12.2005

Page 2: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

2

Inhalt

Problemstellung Beispiel StatiX System Architektur Wert- / Struktur-Histogramme Kardinalitätsabschätzung XML Schema Transformer Schema Normalisierung Experimente Ausblick / Kritik

Page 3: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

3

Problemstellung

Problem: Entwicklung effizienter und präziser Schätzverfahren für XML Anfrageergebnisse

erlaubte Flexibilität beim Definieren von Elementen im XML Datenmodell führt zu ungleichverteilter Struktur Annahme von Gleichverteilung führt zu sehr großen Fehlern

breite und tiefe XML-Dokumente multi-way joins ungenaue Schätzungen durch Fehlervermehrung

Page 4: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

4

Problemstellung

welche Statistiken(3.) benutzen um Kardinalität zu schätzen?

welchen Algorithmus(4.) benutzen, wenn 1.-3. gegeben?

4. AlgorithmusAnfrage Kardinalität des

Ergebnisses

1. XMLDokument

2. XMLSchema

3. Statistiken

Page 5: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

5

Beispiel Schema

Page 6: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

6

Beispiel Dokument

<imdb><show> <!--ID=1--> <title> ... </title> <year> 1993 </year> <aka> ... </aka> <!--ID=12--> <review> ... </review> <!--ID=30--> <review> ... </review> <!--ID=31--> <review> ... </review> <!--ID=32--> <review> ... </review> <!--ID=33--> <box_office> … </box_office></show><show> <!--ID=2--> <title> ... </title> <year> 1994 </year> <seasons> ... </seasons> <review> ... </review> <!--ID=34--> <episode> <aka> ... </aka> <!--ID=13--> </episode></show><show> <!--ID=3--> <title> ... </title> <year> 1990 </year> <seasons> ... </seasons> <review> ... </review> <!--ID=35--> <episode> <aka> ... </aka> <!--ID=14--> <aka> ... </aka> <!--ID=15--> </episode>

<episode> <aka> ... </aka> <!--ID=16--> </episode> <episode> <aka> ... </aka> <!--ID=17--> <guest_director> ... </guest_director> </episode> <episode> <aka> ... </aka> <!--ID=18--> </episode> <episode> <aka> ... </aka> <!--ID=19--> </episode></show><show> <!--ID=4--> <title> ... </title> <year> 1998 </year> <review> ... </review> <!--ID=36--> <review> ... </review> <!--ID=37--> <box_office> ... </box_office></show><show> <!--ID=5--> <title> ... </title> <year> 2000 </year> <seasons> ... </seasons></show></imdb>

Page 7: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

7

Architektur

Page 8: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

8

Wert-Histogramm

<imdb><show> <!--ID=1--> ... <year> 1993 </year> ...</show><show> <!--ID=2--> ... <year> 1994 </year> ...</show><show> <!--ID=3--> ... <year> 1990 </year> ...</show><show> <!--ID=4--> ... <year> 1998 </year> ...</show><show> <!--ID=5--> ... <year> 2000 </year> ...</show></imdb>

DEFINE STAT Show { CARDINALITY { 5 } ID_DOMAIN { 1 TO 6 } }

DEFINE STAT Show_year { VALUE_DOMAIN { 1990 TO 2001 } BUCKET NUMBER { 2 } BUCKETS { FROM 1990 TO 1995 COUNT 3, FROM 1995 TO 2001 COUNT 2 } }

Figure 4: Statistics Summary for Movie Data

Page 9: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

9

Struktur-Histogramm

<imdb><show> <!--ID=1--> ... <review> ... </review> <!--ID=30--> <review> ... </review> <!--ID=31--> <review> ... </review> <!--ID=32--> <review> ... </review> <!--ID=33--> ...</show><show> <!--ID=2--> ... <review> ... </review> <!--ID=34--> ...</show><show> <!--ID=3--> ... <review> ... </review> <!--ID=35--> ...</show><show> <!--ID=4--> ... <review> ... </review> <!--ID=36--> <review> ... </review> <!--ID=37--> ...</show><show> <!--ID=5--> ...</show></imdb>

DEFINE STAT Show { CARDINALITY { 5 } ID_DOMAIN { 1 TO 6 } }

DEFINE STAT Review { CARDINALITY { 8 } ID_DOMAIN { 30 TO 38 } PARENT HISTOGRAM Show { BUCKET NUMBER { 3 } BUCKETS { FROM 1 TO 2 COUNT 4, FROM 2 TO 3 COUNT 1, FROM 3 TO 5 COUNT 3 } } }

Figure 4: Statistics Summary for Movie Data

Page 10: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

10

Kardinalitätsabschätzung (1)

Beispielanfrage:FOR $s in document(``myshows.xml´´)/show,

$r in $s/reviewWHERE $s/year < 1992RETURN $r

XPath-Ausdruck:/show[year<1992]/review

Page 11: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

11

Kardinalitätsabschätzung (2)

Kardinalitätsabschätzung unter der Annahme der Gleichverteilung innerhalb der Buckets:

Anzahl der Jahre in Bucket 1: 5 (1990-1994)3 Einträge gleichverteilt auf 5 Jahre:2 Jahre sind <1992

2.1532 : )_(1992_ yearShowCard yearShow

JahrEintrag

53

Page 12: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

12

Kardinalitätsabschätzung (3)

verteile auf den Bereich Show:

yearShowCard _

1.2) : 6-[1 : ShowKey

Page 13: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

13

Kardinalitätsabschätzung (4)

8 Reviews verteilt auf 5 Shows

(Der genaue Wert ist 1.)

22.158 : ) )Review(( Review ShowKeyparentHistfreqCard

ShowReview

58

Page 14: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

14

XML Schema Transformer

Durchführung diverser Transformationen zur Normalisierung

Anpassung der Granularität des „statistics gathering process“ an die Anforderungen individueller Anwendungen(feinere Granularität vs.höhere Laufzeit, höherer Speicherplatz)

Page 15: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

15

XML Schema Transformer

union distribution

Mehrdeutigkeit verursachende Transformation!

Page 16: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

16

Schema Normalisierung

erstelle neue types für alle tags, die wiederholt werden oder optional sind (outline types):

(inline types wäre Rückrichtung, aber nicht Teil derNormalisierung)

Page 17: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

17

Schema Normalisierung

erstelle neue types für alle komplexen Strukturen, die innerhalb von Vereinigungen und Wieder-holungen vorkommen (ebenfalls outline types):

Page 18: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

18

Experimente

Datensätze: XMark benchmark 10MB, 50MB (tief verschachtelte

Dokumente) ( Internet Movie Database (IMDB; hauptsächlich

flache Struktur) )

Experimente: Bauzeit Größe Genauigkeit

Page 19: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

19

Bauzeit

10MB 50MBTwigs preprocessing 10 min > 1 h

phasebuilding 90 sec 450 secphase

StatiX parsing, validation, 70 sec 500 sec(worst case) statistics collection

Page 20: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

20

Größe

bsize : Implementationctypes : Tuning-Parameter durch Transformationenbtypes : Tuning-Parameter durch Transformationennbuckets : Tuning-Parameter beim Anlegen der

Histogramme

j jjj

i iii

bsizenbucketsbtypesbsizenbucketsctypessummary

Page 21: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

21

Genauigkeit

Page 22: 1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl 16.12.2005.

22

Ausblick / Kritik

XML Schema muss vorhanden sein Im Moment unterstützt StatiX nur verzweigte Pfad-

ausdrücke mit Wertprädikaten Unterstützung von Aggregatfunktionen und Rekursionen beabsichtigt

Bei Updates hängt die Effektivität von StatiX stark von der Qualität der vom System generierten OIDs ab (ID Ranges u.U. nicht mehr kompakt)

nicht bekannt, welche Transformationen ausgeführt werden müssen, um optimale(n) Platz/Bauzeit/Granulärität zu erhalten