Michal Hampl Lenka Kreibichová

Slides:



Advertisements
Podobné prezentace
RankSQL Query Algebra and Optimization for Relational Top-k Queries Václav Nádraský Jan Kašpar.
Advertisements

Operační program Vzdělávání pro konkurenceschopnost Název projektu: Inovace magisterského studijního programu Fakulty ekonomiky a managementu Registrační.
Strategické otázky výzkumníka 1.Jaký typ výzkumu zvolit? 2.Na jakém vzorku bude výzkum probíhat? 3.Jaké výzkumné metody a techniky uplatnit?
Období vzniku: duben _inovace_FG.9.48 Autor : Vladimír TesaříkČlověk a svět práce, finanční gramotnost, nové auto.
Mgr. Renáta Davidová.  Hrací plocha je rozdělena do 2 sloupců, které představují různé kategorie otázek.  Každé otázce ve sloupci je přiřazeno bodové.
Vypracováno kolektivem autorů České společnosti pro technickou normalizaci Úřad pro technickou normalizaci, metrologii a státní zkušebnictví
TRANSFORMÁTOR Tato práce je šířena pod licencí CC BY-SA 3.0. Odkazy a citace jsou platné k datu vytvoření této práce. VY_32_INOVACE_18_32.
ZAL – 5. cvičení Martin Tomášek Pole - opakování Základní datový typ. V poli držíme více elementů (jednoho typu) S elementy v poli můžeme manipulovat.
Název kapitoly Název podkapitoly Text Schvalovací proces + hodnoticí kritéria Jakub Krátký Praha, 5. května 2016.
Dopravní modely v SUMP Jitka Ondráčková
Vzdělávací materiál zpracovaný v rámci projektů EU peníze školám
Mocniny, odmocniny, úpravy algebraických výrazů
Bohumil Havel MoodleMoot.cz 2016
Vytvořil: Robert Döring
Organizace výroby Organizace a řízení výroby
Matematická logika 4. přednáška
NÁZEV ŠKOLY: Základní škola Hostouň, okres Domažlice,
Evaluace předmětů studenty (Anketky)
Rozhodování 1.
Řešení nerovnic Lineární nerovnice
MATEMATIKA Obsah přednášky. Opakování, motivační příklady Funkce.
Výukový materiál zpracovaný v rámci projektu EU peníze školám
Lineární rovnice a nerovnice I.
Programování v jazyce C++
Přístupový systém aneb kontrola vstupů
Financováno z ESF a státního rozpočtu ČR.
8.1 Aritmetické vektory.
Jedno-indexový model a určení podílů cenných papírů v portfoliu
Kompetenční modely Mgr. Andrea Drdáková.
Software počítače 1 - opakování
8.1.2 Podprostory.
Databáze MS ACCESS 2010.
Maďarská metoda Kirill Šustov Michal Bednář Stanislav Běloch
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Vytvoření databázového dotazu z více tabulek
Běžné reprezentace grafu
Schvalovací proces + hodnoticí kritéria
Název školy Gymnázium, střední odborná škola, střední odborné učiliště a vyšší odborná škola, Hořice Číslo projektu CZ.1.07/1.5.00/ Název materiálu.
SÁRA ŠPAČKOVÁ MARKÉTA KOČÍBOVÁ MARCELA CHROMČÁKOVÁ LUKÁŠ BARTOŠ B3E1
USMĚRŇOVAČE V NAPÁJECÍCH OBVODECH
Výukový materiál zpracován v rámci projektu
Kvadratické nerovnice
Schvalovací proces + hodnoticí kritéria
Regulátory spojité VY_32_INOVACE_37_755
Řešení nerovnic Lineární nerovnice
BIBS Informatika pro ekonomy přednáška 2
Informatika pro ekonomy přednáška 8
MNOŽINY.
Rovnice základní pojmy.
Pravděpodobnost a statistika
Optimální pořadí násobení matic
Rovnice s absolutními hodnotami
MATEMATIKA Obsah přednášky. Opakování, motivační příklady Funkce.
Microsoft Office Access
Materiál byl vytvořen v rámci projektu
Remote login.
3. přednáška Laplaceova transformace
Jiří Vyskočil, Marko Genyg-Berezovskyj 2010
A5M33IZS – Informační a znalostní systémy
KOMBINACE BEZ OPAKOVÁNÍ
Dynamické programování Úloha batohu neomezená
Analýza informačního systému
Centrální limitní věta
Lineární funkce a její vlastnosti
Grafy kvadratických funkcí
Seminář o stavebním spoření
Teorie chyb a vyrovnávací počet 2
Algoritmizace a datové struktury (14ASD)
Slovní úlohy o společné práci − 3
SQL Server 2017: Automatic tuning
Transkript prezentace:

Michal Hampl Lenka Kreibichová RankSQL Michal Hampl Lenka Kreibichová

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

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

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í

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í

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ů

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)

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

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

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

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

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

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

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

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

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

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

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

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

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}

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]

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)

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)

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

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

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í

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

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

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

===================== 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’]

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ů

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

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

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

Transformace dotazu Rozšíření relační algebry má přímý dopad na optimalizaci dotazů -> nutnost rozšířít standardní prostor plánů

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

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

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

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

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

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

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ů

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

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)

Princip optimality Subplán se nemůže stát částí optimálního plánu, pokud existuje „lepší“ subplán se stejnou signaturou

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

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:

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

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’

Heuristiky – nejlepší predikát 3 Úprava algoritmu:

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

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)

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

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)

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

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’

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

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

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

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

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

Exekuční plány 1,2

Exekuční plány 3,4

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ů

Experiment 1 - 1

Experiment 1 - 2

Experiment 1 - 3

Experiment 1 - 4

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í

Experiment 2 – odhad kardinalit

Experiment 2 – odhad kardinalit

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

Použitá literatura Chengkai Li, Kevin Chen­Chuan Chang, Ihab F. Ilyas2 Sumin Song: RankSQL: Query Algebra and Optimization for Relational Top-k Queries http://eagle.cs.uiuc.edu/pubs/2005/ranksql-sigmod05-lcis-mar05.pdf