Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Michal Hampl Lenka Kreibichová

Podobné prezentace


Prezentace na téma: "Michal Hampl Lenka Kreibichová"— Transkript prezentace:

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í) c1c2(RxS)  c1c2(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! <RP1SP2 t2 právě když F’P1P2[t1] < F’P1P2[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

46

47

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 Chen­Chuan Chang, Ihab F. Ilyas2 Sumin Song: RankSQL: Query Algebra and Optimization for Relational Top-k Queries


Stáhnout ppt "Michal Hampl Lenka Kreibichová"

Podobné prezentace


Reklamy Google