Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Michal Hampl Lenka Kreibichová
RankSQL Michal Hampl Lenka Kreibichová
2
Co je RankSQL? ucelený framework pro podporu efektivního vyhodnocování top-k (řadících) dotazů v relačních databázích zabudování potřebných záležitostí přímo do jádra na stejné úrovni jako je filtrování (členství)
3
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
4
Využití řadících dotazů
dotazy na podobnost v multimediálních databázích vyhledávání ve webových databázích middleware dobývaní znalostí
5
Co jsou řadící (top-k) dotazy
Dotazy, u kterých nás zajímá pouze několik (k) prvních záznamů Třídící funkce je specifikovaná uživatelem Může být složením několika různých funkcí
6
Podpora řadících dotazů dnes
Většina dnešních RDBMS podporuje řadící dotazy ale spíše jako doplněk, nikoliv plnohodnotně Postup vyhodnocení: 1) získání záznamů ze všech vstupů 2) spojení záznamů ze vstupů 3) vyhodnocení predikátů 4) seřazení podle predikátů 5) vrácení prvních k záznamů
7
Příklad SELECT * FROM Hotel h, Restaurant r, Museum m WHERE c1 AND c2 AND c3 ORDER BY p1 + p2 + p3 LIMIT K c1: r.cuisine=Italian c2: h.price+r.price<100 c3: r.area=m.area p1: cheap(h.price) p2: close(h.addr,r.addr) p3: related(m.what, X)
8
Problémy současného přístupu
1) vstupy mohou být velké, jejich spojení drahé, navíc nemusí být lokální 2) uživatele nezajímá pořadí všech záznamů (kombinací) 3) predikát pro řazení může být náročné spočítat, měl by se vyhodnocovat až je potřeba
9
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
10
Dotazy s řazením (1) Dotaz v relační algebře v kanonické formě:
Q = * k F(p1,...pn) B(c1,...cm) (R1 x ... x Rh) ... filtrování ... B(c1, ... cm) boolean funkce ... řazení ... F(p1,... pn) monotonní ohodnocovací funkce pi[u] je skore pro predikat pi F(p1,...pn)[u] = F(p1[u],...pn[u]) ... celkové skóre
11
Dotazy s řazením(2) Q vrací seřazený seznam k prvních n-tic, takových, že: u K a v K F[u] F[v] F je monotónní ( F(x1, ...xn) F(y1, ...yn) ) právě když i: xi yi
12
Vyhodnocování relačních dotazů
Při vyhodnocování „standardních“ relačních dotazů se aplikuje: splitting / rozpojování (c1 – selekce, c2 – spojení) c1c2(RxS) c1c2(RxS) c1(R joinc1 S) Interleaving / prokládání c2(R joinc1 S) c2(R) joinc1 S
13
Vyhodnocování dotazů s řazením
operátor (pro řazení) je ale „monolitický“ ohodnocovací funkce F je vyhodnocena naráz a pro všechny záznamy to s sebou nese zbytečnou režii nemusí být nutné získat všechny záznamy a vyhodnocovat pro ně všechny predikáty splitting a interleaving chceme podporovat i pro operátory
14
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
15
Rozšíření relační algebry
Pro podporu top-k dotazů musíme rozšířit stávající algebru Definujeme pojem relace s řazením Je to relace rozšířená a tříděná podle nějakého ohodnocení Ohodnocení je dáno vybranou ohodnocovací funkcí F(p1,...pn) pro daný dotaz
16
N-tice během procesu Na začátku, žádný predikát není vyhodnocen, n-tice nejsou řazeny Postupně při vyhodnocování jednotlivých predikátu získávají určité skore podle již vyhodnocených predikátů Potřebujeme definovat částečné skore n-tice ve chvíli, kdy jsou vyhodnoceny predikáty P = (p1,...pj) j<n
17
Maximální možné skore n-tice
maximální možné skore n-tice pro predikáty P ... F’P[t] F’P(p1,...pn)[t] = pi = pi[t] pro pi P pi = 1 jinak předpokládáme, že 1 je maximální hodnota pi
18
Ranking Principle mějme F’P[t1] > F’P[t2]
potom pokud musíme zpracovat t2, musíme zpracovat i t1 Když následující operace zpracuje t2, pak F’P[t2] je maximální hodnota, kterou může nabývat F[t2] t1 ale může získat vyšší ododhocení, musíme proto tuto n-tici také zpracovat -> proto musí být t1 zpracováno dříve než t2
19
Relace s řazením RP relace R, ohodnocovací funkce F(...) P {p1, ... pn} skóre n-tice t je F’P[t] pořadí <RP n-tic RP t1,t2 RP definujeme t1 <RP t2 iff F’P[t1] < F’P[t2] u shodných skóre řadíme třeba podle ID
20
Nový operátor Definice: t p(RP) iff t RP
t1 <p(RP) t2 iff F’P{p}[t1] < F’P{p}[t2] p(RP) = RP{p}
21
Rozšíření operátorů Ostatní operátory , , , , -, join
vlastnost členství zůstává selekce (): t1 <c(RP) t2 právě když t1 <RP t2 sjednocení (), průnik (), spojení t! <RP1SP2 t2 právě když F’P1P2[t1] < F’P1P2[t2]
22
Algebraické zákony (1) abychom mohli dotazy optimalizovat
aplikovat metody splitting & interleaving 1) splitting pro R{p1, ...pn} p1(...p2(R) ... ) 2) komutativita pro binární operátory RP1 SP2 SP2 RP1 3) asociativita (RP1 SP2) TP3 RP1 (SP2 TP3)
23
Algebraické zákony (2) 4) komutativita pro P1(P2(RP)) P2(P1(RP)) c(P(RP)) P(c(RP)) 5) distributivita p(RP1 SP2) p(RP1) p(SP2)
24
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
25
Standardní plán vyhodnocení
plán vyhodnocení je strom operátorů (iterátorů) během vykonávání jsou n-tice získávány z kořenového operátoru, ten je získává z podřazených operátorů postupně až ke scan operátorům pipelining (proudové zpracování) – v každém kroku je získána 1 n-tice průchodem celého stromu proudové zpracování může být zastaveno blokujícím operátorem (například třídění)
26
Plán vyhodnocení pro top-k dotazy
Dříve je řazení a top-k blokující – nejdříve musíme získat všechny n-tice seřadit a vrátit prvních k Pomocí limitu počtu záznamů chceme snížit adekvátně množství práce a množství záznamů, se kterými se pracuje během procesu vyhodnocování
27
Upravený plán vyhodnocení (1)
1) plán vyhodnocení vrací relace s řazením a to v pořadí podle maximálního možného skore n-tice (F’P[t]) 2) proces se zastaví po vrácení k-té n-tice nebo když již další n-tice k dispozici nejsou
28
Upravený plán vyhodnocení (2)
Mějme p operátor nad RP Nemůže vydat t jako výsledek hned jak jej dostane od předchozího operátoru, může existovat nějaké t’, že: F’P{p}[t] < F’P{p}[t’] i když F’P[t] > F’P[t’] Místo toho vyhodnotit F’P{p}[t] a t do bufferu
29
Upravený plán vyhodnocení (3)
t můžeme z bufferu dát na výstup, pokud ze vstupu přečteme t’: F’P{p}[t] F’P[t’] protože pak pro každé další přečtené t’’ F’P{p}[t] F’P[t’] F’P[t’’] a protože F’P[t’’] F’P{p}[t’’] F’P{p}[t] F’P{p}[t’’]
30
=====================
Příklad TID p3 p4 p5 s1 0.7 0.8 0.9 s2 0.85 s3 0.5 0.45 0.75 s4 0.4 0.95 s5 0.3 0.6 s6 0.25 idxScan p3 p4 p5 ===================== F’P{p}[t] F’P[t’]
31
Selektivita operátory podporou řadících dotazů jsou selektivní -> redukují počet zpracovávaných n-tic Selektivita je závislá na kontextu stejný operátor může mít v různém místě plánu různou selektivitu To dává prostor pro optimalizaci – různé poskládání operátorů v plánu znamená různou cenu ekvivalentních plánů
32
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
33
Optimalizace dotazů Jeden SQL dotaz je možné vyhodnotit mnoha způsoby
Účelem optimalizátoru je transformovat SQL dotaz na co nejefektivnější plán výpočtu
34
Transformace dotazu Optimalizátor zpravidla prozkoumává velký prostor možných plánů využívá algoritmus výčtu plánů dokáže efektivně procházet prostor plánů odřezávat nevhodné plány vzhledem k „ceně“ plánu
35
Transformace dotazu Rozšíření relační algebry má přímý dopad na optimalizaci dotazů -> nutnost rozšířít standardní prostor plánů
36
Příklad SELECT * FROM Hotel h, Restaurant r, Museum m
WHERE c1 AND c2 AND c3 ORDER BY p1 + p2 + p3 LIMIT k idxScanarea(R) Sortp1+p2+p2 join idxScanarea(M) selekcec1 seqScan(H) Tradiční plán seqScan(M) seqScan(R) join selekcec1 idxScan μp1 (H) μp3 μp2 Upravený plán
37
Ekvivalence plánů Řadící funkci zastoupenou operátorem Sort rozdělíme na μp1, μp2, μp3 Operátory μ stlačíme pod join operátory Ohodnocení μp1 je zkombinováno s operací scan na idxScan
38
Začlenění rozšířené algebry do optimalizátoru
Procházení plánů Optimalizátor musí být schopen procházet i plány vzniklé rozšířením prostoru plánů Určení ceny plánu U rank operátorů musí být definován způsob odhadnutí jejich kardinality
39
Optimalizátor shora-dolů
Základní konstrukt: Transformační pravidla Transformují mezi ekvivalentními algebraickými výrazy Implementační pravidla Mapují logické operátory na fyzické operátory a tím vytvářejí exekuční plán
40
Optimalizátor shora-dolů 2
Transformační pravidla Máme algebraické zákony pro ekvivalenci algebraických výrazů Je možné přidat další pravidla založená těchto zákonech Implementační pravidla Převedení logických operátorů na fyzické operátory
41
Optimalizátor zdola-nahoru
Plány jsou konstruovány pomocí spojování logických operátorů Založeno na dynamickém programování Můžeme efektivně odřezávat neefektivní plány na základě znalostí vlastností subplánu
42
Rozšíření algoritmu o ranking
Relace R Logické vlastnosti: členství Relace rozšířená o řazení RP členství R pořadí P -> zvolíme jako druhou dimenzi výčtu plánů
43
Signatura subplánu S Definována každému subplánu signatura(SR,SP)
SR – množina relací SP – množina řadících predikátů Subplány se stejnou signaturou dávají vždy stejný výsledek
44
Subplán se signaturou (SR,SP) vznikne:
Spojením subplánů (SR1,SP1) a (SR2,SP2) joinPlan Přidáním operátoru μp nad subplán (SR,SP-{p}) rankPlan Použitím scanovacího operátoru scanPlan join μp idxScani(R) seqScan(R)
45
Princip optimality Subplán se nemůže stát částí optimálního plánu, pokud existuje „lepší“ subplán se stejnou signaturou
48
Složitost výčtového algoritmu
Exponenciální k počtu relací Exponenciální k počtu ranking predikátů Příliš velká složitost K redukci prostoru plánů se většinou používají heuristiky
49
Heuristiky – spojení doleva do hloubky
V každém kroku povolíme spojení pouze takových subplánů, kde na pravé straně je max.1 relace Úprava algoritmu:
50
Heuristiky – nejlepší predikát
Místo úvahy všech možných permutací vyhodnocování řadících predikátů určíme pořadí, ve kterém mají být vyhodnocovány Operátor μU nemůže být připojen k subplánu, pokud existuje operátor μV,, jehož připojení je v tomto okamžiku „lepší“ Např. lepší selektivita, menší nároky
51
Heuristiky – nejlepší predikát 2
Jak seřadit operátory? Nechť subplán plan’ vznikne z plan připojením jednoho operátoru μ Def: cost(μp) … cena vyhodnocení μp card(plan) … výstupní kardinalita plan card(plan’) … výstupní kardinalita plan’
52
Heuristiky – nejlepší predikát 3
Úprava algoritmu:
53
Odhad ceny plánu - cost(plan)
Závisí na mnoha parametrech kardinality vstupů velikost bufferů přístupové cesty k relacím …. Jeho přesnost závisí nejvíce na odhadu kardinalit
54
Odhad kardinality operátoru
Standardní plány: Vstupní kardinalita operátoru závisí na: Výstupní kardinalitě předchozího operátoru Výstupní kardinalita operátoru závisí na: Vstupní kardinalitě Selektivitě operátoru (logické operace)
55
Odhad kardinality operátoru 2
Plány obsahující řadící predikáty: Vstupní kardinalita řadícího operátoru závisí na: operátoru – spotřebuje pouze určitou část vstupu, aby mohl vyprodukovat „dost“ výstupu Výstupní kardinalita řadícího operátoru závisí na: požadavku na kardinalitu vstupu následujícího operátoru ten neznáme během hodnocení tohoto subplánu Výstupní kardinalita celého plánu je k
56
Odhad kardinality pomocí vzorků
Myšlenka: Nechť x je skóre k-tého záznamu ve výsledku Pokud má záznam nejvyšší možné skóre menší než x, není nutné tento záznam produkovat z tohoto operátoru dále X ale není známo během vyčíslování plánů Vzorková metoda odhadne x a výstupní kardinality subplánu ( = operátoru)
57
Vzorková metoda Z každé tabulky se náhodně vybere vzorek obsahující zlomek ( s% ) řádků Nad každým řádkem se vyhodnotí všechny predikáty Dotaz se vyhodnotí na tomto vzorku S použitím libovolného exekučního plánu … transformujeme top-k dotaz nad databází na top-k’ dotaz nad vzorkem
58
Vzorková metoda – odhad x
Získá se k’ nejlepších výsledných řádků velikost tabulky ti … Ni velikost vzorku ... ni = Ni * s% požadovaná kardinalita výsledků … k’ = k * s% x’ … skóre k’ tého nejlepšího výsledku … Jako odhad hodnoty x použijeme x’
59
Vzorková metoda – kardinality
Nechť subplán P vyprodukuje u řádků, jejichž nejvyšší možné skóre je větší než x’ P tvořen jedním operátorem scan operátor na tabulce vrchní operátor P je unární operátor nad subplánem P’ cardS(P’) … výstupní kardinalita P’ dosažená na vzorku card(P’) … odhadnutá výstupní kardinalita P’ horní operátor P je binární operátor a spojuje subplány P1 a P2
60
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
61
RankSQL - implementace
Vytvořen prototyp pro PostgreSQL 7.4.3 Interní reprezentace řádků doplněna o atribut skóre (nejvyšší možné skóre) Implementovány operátory Rank operátor Modifikovaný Join operátor Rank scan operátory
62
Experimenty Tabulky A,B,C
A.b, B.b - booleanské hodnoty se selektivitou 0.4 Řadící predikáty A.p1, A.p2, B.p1, B.p2, C.p1 uživatelsky definované funkce se stejnou cenou Skóre nabývají hodnot <0,1> Každá tabulka má sloupce jc1,jc2 určené pro join
63
Dotaz Dotaz SELECT * FROM A, B, C
WHERE A.jc1 = B.jc1 AND B.jc2 = C.jc2 AND A.b AND B.b ORDER BY f1(A.p1) + f2(A.p2) + f3(B.p1) + f4(B.p2) + f5(C.p1) LIMIT k
64
Exekuční plány 1,2
65
Exekuční plány 3,4
66
Cena exekučního plánu Závisí na: počtu výsledků … k
počtu záznamů v tabulkách selektivitě operátorů spojení ceně řadících predikátů
67
Experiment 1 - 1
68
Experiment 1 - 2
69
Experiment 1 - 3
70
Experiment 1 - 4
71
Experiment 1 - shrnutí Tradiční plán velmi zaostává za upravenými plány Jsou srovnatelné, pokud jsou: Malé tabulky Operace spojení mají velkou selektivitu Řadící predikáty mají nízkou cenu vyhodnocení
72
Experiment 2 – odhad kardinalit
73
Experiment 2 – odhad kardinalit
74
Obsah 1. Úvod 2. Model vyhodnocování řadících dotazů
3. Relační algebra s podporou řazení 4. Plán vyhodnocení řadících dotazů 5. Optimizátor 6. Experimenty 7. Závěr
75
Použitá literatura Chengkai Li, Kevin ChenChuan Chang, Ihab F. Ilyas2 Sumin Song: RankSQL: Query Algebra and Optimization for Relational Top-k Queries
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.