Indeksy w hurtowniach danych Jakub Pilecki Szymon Wojciechowski
Plan prezentacji 1. Czym są indeksy? 2. Cel stosowania indeksó w 3. Co należy indeksować? 4. Rodzaje indeksó w 5. B-drzewa (drzewa zró wnoważone) 6. Indeksy bitmapowe 7. Indeksy połą czeniowe 8. Bitmapowe indeksy połą czeniowe 9. Kompresja indeksó w 10. Inne struktury indeksowe 11. Podsumowanie 12. Źró dło
Czym są indeksy? Indeks jest ogó lną nazwą struktury wspomagają cej wyszukiwanie danych Są one niezależne fizycznie i logicznie od danych System zarzą dzania bazą danych decyduje o ich użyciu oraz zajmuje się ich utrzymaniem
Cel stosowania indeksó w Zastosowanie indeksó w ma za zadanie optymalizować czas wykonywania zapytań Z powodu olbrzymich rozmiaró w danych poddawanych procesowi OLAP, zapytania mogą wykonywać się godzinami
Co należy indeksować? Zaleca się stosowanie indeksó w, na atrybutach, któ re: Są czę sto używane w klauzulach WHERE zapytań Są czę sto używane w warunkach połą czeniowych Są rzadko modyfikowane Są kluczami obcymi relacji
Rodzaje indeksó w Podział indeksó w, ze wzglę du na: Strukturę : B-drzewa bitmapowe Liczbę atrybutó w indeksowanych w kluczu: zwykłe złożone Unikalność wartości klucza: unikalne nieunikalne Kolejność wartości klucza: zwykłe odwró cone Sposó b składowania: nieskompresowane skompresowane Zastosowanie: funkcyjne Bitmapowe indeksy połą czeniowe
B-drzewa B-drzewa (ang. balanced trees) służą do indeksowania danych w systemach bazodanowych wspierają cych OLTP. Rzadko stosowane dla baz danych OLAPowskich. Są zbudowane z trzech rodzajó w wę złó w: korzenia, warstwy pośredniej i liści
B-drzewa B-drzewa charakteryzuje: Budowa z tylu poziomó w, ile wymaga tego plik o określonej wielkości Organizacja przestrzeni blokó w na dysku, tak by każdy był zapełniony w co najmniej połowie Rzę dem drzewa jest taka wartość p, któ ra jest maksymalną liczbą kluczy w węźle.
B-drzewa
B-drzewa zalety Mała liczba odczytó w dysku dla operacji wyszukiwania, wstawiania i usuwania elementó w Czasochłonne scalanie i podział wę złó w wystę puje bardzo rzadko Łatwe odnajdowanie wartości z zadanego przedziału (oraz zależności mniejszy od ) Trzypoziomowe drzewo efektywnie obsługuje 17 milionowy zbió r danych
B-drzewa zalety Nie zapewniają szybkiego dostę pu do danych Duży rozmiar drzewa sprawia trudności z utrzymywaniem i eksploatacją
Indeksy bitmapowe Indeksy bitmapowe są bardzo efektywną strukturą, szczegó lnie w przypadku atrybutó w posiadają cych wą skie dziedziny Pojedyncza bitmapa jest relacją, w któ rej kolumna reprezentuje jedną z możliwych wartości atrybutu, wiersze są krotkami danych, natomiast na przecię ciu wystę pują wartości 0 i 1 Indeks bitmapowy jest zbiorem wielu bitmap
Indeksy bitmapowe
Indeksy bitmapowe Indeks bitmapowy może być zaimplementowany w postaci B-drzewa, gdzie kluczami są wartości atrybutu, a liść mi bitmapy
Indeksy bitmapowe
Indeksy bitmapowe Załóżmy, że relacja R posiada milion krotek, a atrybut A 4 wartości, wtedy: dla indeksu bitmapowego 1 000 000 bitó w relacji = 125 kb 4 wartości x 125 kb = 500 kb (rozmiar indeksu)
Indeksy bitmapowe Załóżmy, że relacja R posiada milion krotek, a atrybut A 4 wartości, wtedy: dla indeksu w postaci B-drzewa, zakładają c że adres krotki ma długość 4B 1 000 000 bitó w relacji * 4 B = 4 MB (rozmiar indeksu)
Indeksy bitmapowe Załóżmy, że relacja R posiada milion krotek, a atrybut A 64 wartości, wtedy: dla indeksu bitmapowego 1 000 000 bitó w relacji = 125 kb 64 wartości x 125 kb = 8 MB (rozmiar indeksu) Należy zauważyć, iż istnieją metody kompresji macierzy rzadkich
Indeksy bitmapowe zalety Efektywność wykonywania operacji logicznych oraz łatwość zliczania wystą pień (zapytań wykorzystują cych te operacje) Jeżeli relacja posiada dużą liczbę krotek, a wartości atrybutu A jest niewiele to użycie indeksó w bitmapowych powoduje mniejszą eksploatację pamię ci niż wykorzystanie B- drzewa Mała liczba odczytó w danych z dysku wynikają ca z braku konieczności operowania na rekordach
Indeksy bitmapowe wady Długi czas operacji modyfikują cych dane aktualizacja wszystkich map bitowych zdefiniowanych dla tej relacji (AKCEPTOWALNE DLA HURTOWNI DANYCH) Mała efektywność poszukiwania wartości z zadanego zakresu Rozmiar indeksu zależy od dziedziny atrybutu Utrzymywanie dodatkowej mapy krotek usunię tych
Indeksy połą czeniowe Indeks połą czeniowy (ang. join index) łą czy ze sobą krotki z różnych relacji mają cych tą samą wartość atrybutu połą czeniowego Indeks połą czeniowy ma strukturę B- drzewa Liście indeksu zawierają wspó lne wartości atrybutu połą czeniowego każdy liść zawiera adres rekordu z jednej relacji oraz listę adresó w rekordó w z drugiej relacji
Indeksy połą czeniowe
Bitmapowe indeksy połą czeniowe Bitmapowy indeks połą czeniowy (ang. bitmap join index) posiada w swojej strukturze B-drzewa liście, bę dą ce mapami bitowymi opisują cymi połą czone rekordy Ta zawartość liścia jest istotną różnicą mię dzy bitmapowym indeksem połą czeniowym a indeksem połą czeniowym
Bitmapowe indeksy połą czeniowe
Kompresja indeksó w Kompresja indeksó w ma służyć zmniejszeniu zaję tości dysku przez indeks Wię ksza liczba kluczy indeksu zostaje składowana w bloku Wadą tej metody jest zwię kszenie użycia CPU w celu dekompresji kluczy Problemem kompresji jest zatem maksymalizacja kompresji danych, przy jednoczesnej minimalizacji czasu dekompresji
Algorytmy kompresji indeksó w BBC (ang. Byte-aligned Bitmap Code) WAH (ang. Word-Aligned Hybrid) Algorytmy te są rozbudowanymi rozwią zaniami opartymi o kodowanie Huffmana i RLE (ang. Run-length encoding)
Inne struktury indeksowe Przykłady struktur indeksowych wykorzystywanych w zaawansowanym przetwarzaniu analitycznym: Indeksy sygnaturowe Grupowy indeks bitmapowy S-drzewa Indeksy hierarchiczne k-d-b-drzewa R-drzewa (ang. Region tree) Drzewa ć wiartek RD-drzewa (ang. Russian doll tree) Hierarchiczny indeks bitmapowy
Podsumowanie Stosowanie indeksó w ma na celu optymalizację zapytań Zależnie od rozmiaru danych, dziedziny atrybutu i procesu wykorzystuje się różne rodzaje indeksó w Indeksy mogą przyspieszać odnajdowanie danych i zwię kszyć współbieżność operacji Indeksy mogą spowalniać operacje modyfikacji danych oraz zajmują przestrzeń dyskową
Źró dło Kró likowski, Zbyszko. Hurtownie danych, logiczne i fizyczne struktury danych. Poznań 2007 Wrembel, Robert. Materiały dydaktyczne do przedmiotu hurtownie danych. [online] [dostę p 04.06.2010, http://www.cs.put.poznan.pl/rwrembel/d ws.html] Wikipedia [online] [dostę p 04.06.2010, http://wikipedia.org]