RankSQL - PowerPoint PPT Presentation

About This Presentation
Title:

RankSQL

Description:

RankSQL V clav N drask Jan Ka par Query Algebra and Optimization for Relational Top-k Queries – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 50
Provided by: Vcl84
Category:
Tags: ranksql | cusine

less

Transcript and Presenter's Notes

Title: RankSQL


1
RankSQL
Václav Nádraský Jan Kašpar
  • Query Algebra and Optimization for Relational
    Top-k Queries

2
Obsah
  • Motivace
  • Úvod
  • Ranking query model
  • Rank-relational algebra
  • Execution model
  • Optimalizace plánu
  • Experimenty

3
Motivace
  • Co je RankSQL?
  • Framework pro efektivní vyhodnocování top-k
    dotazu
  • Prináší rank-aware relacní algebru a nové metody
    pro optimalizaci top-k dotazu

4
Úvod
  • Využití top-k dotazu
  • Podobnost v multimediálních DB
  • Prohledávání webových DB
  • Middlewares
  • Dobývání znalostí (Data Mining)
  • spousty dalších...

5
Úvod
  • Charakterisika top-k dotazu
  • Uživatele nezajímá celkové poradí chce vedet
    jen prvních (k) záznamu
  • Ohodnocovací funkce (použitá k razení) casto
    uživatelsky definovatelná (drahá na výpocet)
  • Vstupní data bývají casto velmi rozsáhlá (spojení
    je drahé)

6
Úvod
  • Dnešní podpora velmi omezená
  • Mimo jádro dotazovacích stroju
  • RankSQL prináší možnost implementace jako
    first-class construct
  • Prímo v jádre plánovace a optimalizátoru

7
Príklad
  • SELECT TOP k FROM
  • Hotel h,
  • Restaurant r,
  • Museum m
  • WHERE c1 AND c2 AND c3
  • ORDER BY p1 p2 p3
  • c1 r.Cusine Italská
  • c2 h.Price r.Price lt 100
  • c3 r.Area m.Area
  • p1 Cheap(h.Price)
  • p2 Close(h.Addr, r.Addr)
  • p3 Related(m.Collection, dinosaur)

8
Úvod
  • Dnešní DB
  • Nacíst záznamy ze všech vstupu
  • Vytvorit spojení
  • Vypocítat predikáty p1, p2, p3 pro každý výsledek
    spojení
  • Seradit podle p1p2p3
  • Vrátit prvních k z výsledku uživateli
  • Dnešní DBS optimalizují
  • Mimo jádro hure optimalizovatelné

9
Úvod
  • Soucásti RankSQL
  • Nová vlastnost relacní algebry ranking jako
    first-class contruct
  • Nový pipeline and incremental execution model
  • Rank-aware optimalizace

10
Ranking Query Model
11
Kanonická forma dotazu
  • Q ? ?k ?F(p1,...,pn) ?B(c1,...,cm) (R1 x ... x
    Rh)
  • Dve operace
  • Filtrování booleovská funkce ?B (selekce)
  • Razení monotónní ohodnocovací fce ?F

12
Kanonická forma dotazu
  •  

13
Klasický relacní model
  •  

14
Klasický relacní model
  • Optimalizace razení pomocí rozdelení a prokládání
    není možná
  • Operátor razení monolitický
  • Vyhodnocován jako celek
  • Schema materialize-then-sort
  • Nevhodné pro optimalizace
  • Cílem je
  • Splitting
  • Vyhodnocovat predikáty postupne
  • Interleaving
  • Prokládat s jinými operátory

15
Rozšírení relacní algebry
  • Razení jako first-class contruct
  • Nutno rozšírit relacní algebru
  • Rank-relation algebra
  • Nová relace s razením (rank-relation)
  • Nová vlastnost ranking
  • Vedle booleovského membership
  • Rozšíreny booleovské operátory o podporu ranking
  • Nový operátor rank

16
Rozšírení relacní algebry
  • Relace s razením
  • Vznikne serazením obycejné relace nejakou
    ohodnocovací funkcí F(p1,...,pn)
  • Zpocátku poradí dáno poradím na disku
  • Prubežne aplikovány operátory rank
  • Nutné definovat cástecné poradí (parial-ranking)
    pomocí tzv. upper-bound (maximální možné) skóre
  • Jako hodnota zatím nespocítaného predikátu se
    bere aplikací urcená maximální hodnota

17
Princip razení
  •  

18
Rank-aware Operátory
  •  

19
Rank-aware Operátory
  •  

20
Algebraické zákony
  • Sada pravidel pro prevádení kanonické formy
    dotazu do jiné ekvivalentní formy
  • Je na nich postavena optimalizace
  • Nutno dodefinovat pro nový rank operátor

21
Algebraické zákony pro rank
  •  

22
Algebraické zákony pro rank
23
Execution model
24
Execution model
  • Plán pro vyhodnocování dotazu
  • Vetšinou implementovány jako strom operátoru
    tzv. iterátoru
  • Všechny iterátory implementuje spolecné rozhraní
  • Metody Open, GetNext, Close
  • Rekuzovní prubeh dotazu
  • Rekurzivní volání metody GetNext od korene stromu
    až k listum
  • Dovoluje proudové (pipeline) a inkrementální
    zpracování
  • Jeden záznam výsledku odpovídá jednomu pruchodu
    stromem
  • Napr. iterátor selekce muže po provedení své
    operace (zjištení pravdivosti podmínky) ihned
    vrátit záznam na výstup narozdíl od operátoru
    sort, který vždy, než neco vrátí, musí pockat na
    kompletní výsledek z podrízeného iterátoru

25
Execution model klasické relacní algebry
  • Pipelining muže být narušen blokujícím operátorem
  • Napríklad operátor sort pracující na principu
    materialize-then-sort
  • Blokující operátory chceme nahradit za
    neblokující
  • Casovou nárocnost chceme mít proporcionálník k
    parametru k

26
Incremental Execution Model
  • Odlišnosti rank-relation modelu od klasického
  • Každý iterátor inkrementálne vrací záznamy v
    poradí daném relací
  • Vykonávání se zastaví po k nalezených výsledcích

27
Princip inkrementálního vyhodnocování
28
Execution model
  • Kardinalita mezivýsledku a pocet operacích závisí
    na kontextu
  • Tj. umístení operátoru ve strome vuci ostatním
  • Prostor pro optimalizace
  • Napr. pomocí odhadování kardinality

29
Execution model
  • Implementace fyzického operátoru µ
  • Pomáhá pri nacítání dat z indexu
  • Dopad na celý optimalizátor
  • Spojení tabulek
  • HRJN hash rank-join
  • NRJN nested-loop rank-join

30
Execution model µ
  • Práce na fyzické vrstve indexu
  • Bstromy (rank-scan)
  • Rozhodování na úrovni indexu databáze
  • Existuje-li serazený index nad predikátem, je
    použit
  • Jinak se cte index sekvencne a je aplikacne
    serazen

31
Optimalizátor dotazu
32
Optimalizátor dotazu
  • Optimalizátor dotazu s hodnocením
  • S rozšírením algebry je potreba rozšírit
    optimalizátor(problém materialize-then-sort)
  • Model nárocnosti dotazu - hledání optimálního

33
Plány dotazu
  • Velké množství plánu - nárocné hledání
  • Delení (splitting)
  • Prokládání (interleaving)
  • Problém nalezení efektivního plánu spuštení 
  • Shora dolu, zdola nahoru
  •  

34
Reprezentace plánu
35
Optimalizátor dotazu
  • Transformace a implementace
  • Nové transformacní pravidla pro RankSQL
  • Transformace
  • Prevod mezi ekvivalentními algebraickými výrazy
  • Implementace
  • Prevod logických operátoru na fyzickou
    reprezentaci stromu plánu

36
2-dimensionální vycíslení
  • Základem jsou 2 logické hodnoty
  • Clenství (R) a rádící hodnota (P)
  • Vycíslení logického výrazu a volba optimálního
    spojení tabulek
  • Pro jeden výraz muže být více plánu
  • Optimalizátor vybere optimální

37
2-dimensionální vycíslení
  • Muže být rozšíreno o další dimenze
  • Selekce, sloucení, ...
  • Nesmí ovlivnit optimalizaci plánu bez hodnotícího
    operátoru

38
Nárocnost plánu
  • Odhady se provádejí na vzorku dat
  • Z malého vzorku se vypocítá odhadovaná nárocnost
    celého plánu
  • Procentuální vyjádrení vzroku s
  • Card(P) u / (s)
  • u pocet záznamu na výstupu

39
Nárocnost plánu - graficky
Na vzorek dat se aplikuje SQL dotaz
Tabulka o N záznamech
s
k
Na základe procentuálního vyjádrení vzorku dat
systém vypocte odhadovaný výsledek
k
s vybraný vzorek dat tabulky - procentuálne k
odhadnutý výsledek na vzorku k odhadovaný
pocet rádku dotazu
40
Ohodnocení plánu
  • Ohodnocení plánu závisí na jeho kardinalite a
    nárocnosti
  • plan je rozšírený puvodní plán o operator
    hodnocení

41
Nárocnost plánu
  • Závisí na odhadu kardinality
  • Kardinalita není propagována skrze strom plánu
  • Nárocnejší odhady

42
Exerimenty
43
Experimenty - plány
  • Ruzné plány pro jeden SQL dotaz
  • SELECT FROM A, B, CWHERE A.jc1B.jc1 AND
    B.jc2C.jc2 AND A.b AND B.bORDER BY
    f1(A.p1)f2(A.p2) f3(B.p1)f4(B.p2)f5(C.p1)LI
    MIT k

44
Odhad kardinality
  • Pro ruzné plány vznikají ruzné odhady kardinality
    výsledku

45
Testování výkonu
  • Experimenty jsou závislé na mnoha faktorech
  • k pocet výsledných rádku (1 - 1000)
  • s pocet rádku v tabulce (10 100 tis.)
  • j join selectivity (0.001 0.00001 resp.
    1000 100000 rádku)
  • c nárocnost hodnotícího predikátu (0 - 1000)

46
Testování výkonu
  • Závislost výkonu na poctu rádku výsledku

Zde je videt, že pocet rádku výsledku nemá
prílišný vliv na výkon. Naopak je videt výkon
jednotlivých plánu dotazu.
47
Testování výkonu
  • Závislost výkonu na velikosti vstupní tabulky

Pokud roste pocet rádku vstupní tabulky, cas
vykonání dotazu se zvetšuje exponenciálne.
48
Záver
  • Zavedení rank-relacní algebry
  • Hodnotící funkce
  • Model rozdelení a prokládání
  • Operátor hodnocení µ
  • Optimalizece plánu dotazu
  • Odhad nárocnosti plánu
  • Výkon implementace

49
Zdroje
  • C. Li, K. C.-C. Chang, I. F. Ilyas, and S. Song.
  • Ranksql Query algebra and optimization for
    relational top-k Queries.In SIGMOD, 2005,
  • http//eagle.cs.uiuc.edu/pubs/2005/ranksql-sigmod0
    5-lcis-mar05.pdf
Write a Comment
User Comments (0)
About PowerShow.com