Title: RankSQL
1RankSQL
Václav Nádraský Jan Kašpar
- Query Algebra and Optimization for Relational
Top-k Queries
2Obsah
- Motivace
- Úvod
- Ranking query model
- Rank-relational algebra
- Execution model
- Optimalizace plánu
- Experimenty
3Motivace
- 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
7Prí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
10Ranking Query Model
11Kanonická 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
12Kanonická forma dotazu
13Klasický relacní model
14Klasický 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
15Rozší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
16Rozší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
17Princip razení
18Rank-aware Operátory
19Rank-aware Operátory
20Algebraické 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
21Algebraické zákony pro rank
22Algebraické zákony pro rank
23Execution model
24Execution 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
25Execution 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
26Incremental 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
27Princip inkrementálního vyhodnocování
28Execution 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
29Execution 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
30Execution 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
31Optimalizátor dotazu
32Optimalizá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
-
33Plá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
-
34Reprezentace plánu
35Optimalizá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
362-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í
372-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
38Ná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
39Ná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
40Ohodnocení plánu
- Ohodnocení plánu závisí na jeho kardinalite a
nárocnosti - plan je rozšírený puvodní plán o operator
hodnocení
41Nárocnost plánu
- Závisí na odhadu kardinality
- Kardinalita není propagována skrze strom plánu
- Nárocnejší odhady
42Exerimenty
43Experimenty - 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
44Odhad kardinality
- Pro ruzné plány vznikají ruzné odhady kardinality
výsledku
45Testová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)
46Testová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.
47Testová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.
48Zá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
49Zdroje
- 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