Indeksy w hurtowniach danych

Podobne dokumenty
Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki

Jakub Pilecki Szymon Wojciechowski

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Systemy OLAP II. Krzysztof Dembczyński. Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska

Optymalizacja poleceń SQL Metody dostępu do danych

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Tadeusz Pankowski

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

"Kilka słów" o strojeniu poleceń SQL w kontekście Hurtowni Danych wprowadzenie. Krzysztof Jankiewicz

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

INDEKSY. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Definicja pliku kratowego

Optymalizacja poleceń SQL Indeksy

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Indeksy. Rozdział 18. Indeksy. Struktura indeksu. Adres rekordu

Bazy danych. Andrzej Łachwa, UJ, /15

PODSTAWY BAZ DANYCH Wykład 6 4. Metody Implementacji Baz Danych

Przykładowe B+ drzewo

Optymalizacja poleceń SQL

Pojęcie bazy danych. Funkcje i możliwości.

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Indeksy. Indeks typu B drzewo

Podstawy Informatyki. Metody dostępu do danych

METODY INŻYNIERII WIEDZY ASOCJACYJNA REPREZENTACJA POWIĄZANYCH TABEL I WNIOSKOWANIE IGOR CZAJKOWSKI

Statystyki (1) Optymalizacja poleceń SQL Część 2. Statystyki (2) Statystyki (3) Informacje, opisujące dane i struktury obiektów bazy danych.

Indeksy. Wprowadzenie. Indeksy jednopoziomowe indeks podstawowy indeks zgrupowany indeks wtórny. Indeksy wielopoziomowe

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików przykłady. implementacji

Modele danych - wykład V

Wyszukiwanie tekstów

Wykład XII. optymalizacja w relacyjnych bazach danych

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

WPROWADZENIE DO BAZ DANYCH

Optymalizacja poleceń SQL Wprowadzenie

Cwiczenie 4. Połączenia, struktury dodatkowe

System plików przykłady implementacji

System plików. dr inż. Krzysztof Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Systemy baz danych. mgr inż. Sylwia Glińska

Indeksy. Schematyczne ujęcie organizacji pamięci i wymiany danych systemu pamiętania.

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Haszowanie (adresowanie rozpraszające, mieszające)

Rozwiązania wspomagające przetwarzanie wielkich zbiorów danych (VLDB) we współczesnych systemach zarządzania bazami danych

Bazy danych wykład ósmy Indeksy

Struktury danych i optymalizacja

Indeksowanie w bazach danych

sprowadza się od razu kilka stron!

16MB - 2GB 2MB - 128MB

Fizyczna organizacja danych w bazie danych

Oracle11g: Wprowadzenie do SQL

Run-Length Huffman - alternatywny algorytm kompresji map bitowych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Zad. 1. Systemy Baz Danych przykładowe zadania egzaminacyjne

System plików. Warstwowy model systemu plików

Fazy przetwarzania zapytania zapytanie SQL. Optymalizacja zapytań. Klasyfikacja technik optymalizacji zapytań. Proces optymalizacji zapytań.

Relacyjne bazy danych. Podstawy SQL

Tabela wewnętrzna - definicja

Wielowymiarowy model danych

Systemy GIS Tworzenie zapytań w bazach danych

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

HURTOWNIE DANYCH Dzięki uprzejmości Dr. Jakuba Wróblewskiego

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Hurtownie danych. 31 stycznia 2017

Baza danych. Baza danych to:

System plików warstwa logiczna

Wydajność hurtowni danych opartej o Oracle10g Database

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Ćwiczenia z Zaawansowanych Systemów Baz Danych

OLAP i hurtownie danych c.d.

Alicja Marszałek Różne rodzaje baz danych

Pojęcie bazy danych funkcje i możliwości

Specjalizacja magisterska Bazy danych

dr inż. Jarosław Forenc

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

060 SQL FIZYCZNA STRUKTURA BAZY DANYCH. Prof. dr hab. Marek Wisła

Porównanie systemów zarządzania relacyjnymi bazami danych

Przestrzenne bazy danych Podstawy języka SQL

Relacyjne bazy danych. Podstawy SQL

Bazy dokumentów tekstowych

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

WPROWADZENIE DO BAZ DANYCH

INDEKSY I SORTOWANIE ZEWNĘTRZNE

Transkrypt:

Indeksy w hurtowniach danych Hurtownie danych 2011 Łukasz Idkowiak Tomasz Kamiński

Bibliografia Zbyszko Królikowski, Hurtownie danych. Logiczne i fizyczne struktury danych, Wydawnictwo Politechniki Poznańskiej, 2007 Indeksy w hurtowniach danych 2

Plan prezentacji Przetwarzanie analityczne w hurtowniach danych Indeksy w postaci B-drzewa Indeksy bitmapowe Kompresja indeksu bitmapowego Indeksy połączeniowe Zaawansowane przetwarzanie analityczne w hurtowniach danych Indeksy sygnaturowe Indeksy w hurtowniach danych 3

Przetwarzanie analityczne w hurtowniach danych Złożoność zapytań analitycznych i olbrzymie rozmiary danych przez nie adresowanych sprawiają, że czas ich wykonania może sięgać dziesiątek minut, a nawet godzin Jak efektywnie wykonywać zapytania analityczne? Właściwe opracowanie projektu fizycznych struktur hurtowni danych, a w szczególności struktur dostępowych - indeksów Indeksy w hurtowniach danych 4

Ocena indeksu Zysk czasowy ze stosowania indeksu Rozmiar indeksu Łatwość utrzymania struktury indeksu Indeksy w hurtowniach danych 5

B-drzewa Indeksy w hurtowniach danych 6

Indeksy w postaci B-drzewa przykład Wysokość drzewa K Kraków Kraków K > Kraków Korzeń Gniezno Przemyśl Wierzchołki wewnętrzne Warszawa K Gniezno K > Gniezno K Przemyśl Przemyśl < K Warszawa K > Warszawa Buk Gniezno Kraków Olsztyn Przemyśl Radom Warszawa Zabrze Liście Fizyczny adres rekordu na dysku Adres wierzchołka Indeksy w hurtowniach danych 7

B-drzewo - budowa Bloki tworzą strukturę drzewiastą (3 warstwy: korzeń, wierzchołki wewnętrzne oraz liście). Drzewo zrównoważone (ang. balanced) długość dowolnej ścieżki od korzenia do dowolnego liścia jest zawsze taka sama. Każdy wierzchołek nadrzędny wskazuje na podrzędny. Indeksy w hurtowniach danych 8

Rząd drzewa p Maksymalna liczba wskazań do wierzch. podrzędnych z wierzch. nadrzędnych Każdy blok indeksu zawiera maksymalnie p-1 wartości klucza oraz p wskaźników na kolejne bloki lub adresy rekordów (właściwość wykorzystywana przy wyznaczaniu rzędu drzewa) Indeksy w hurtowniach danych 9

B-drzewa - charakterystyka Efektywne operacje wyszukiwania (dana wartość klucza lub zakres), wstawiania i usuwania rekordów. Efektywne dla relacji wymiarów (wysoka selektywność) Nie przydatne dla relacji faktów (duże rozmiary, wysokie koszty przechowywania i utrzymywania) Indeksy w hurtowniach danych 10

Indeks bitmapowy Indeksy w hurtowniach danych 11

Mapa i indeks bitmapowy Mapa bitowa dla wartości w atrybutu A relacji R jest tablicą, której każda komórka przechowuje pojedynczy bit. Każdy bit odpowiada jednej krotce relacji R liczba bitów mapy = liczba krotek relacji R Dla mapy A = w bit n przyjmuje wartość 1, jeżeli atrybut A krotki n przyjmuje wartość w liczba map atrybutu A = liczba różnych wartości atrybutu A krotność (cardinality) Mapę bitową określa się jako gęstą (dense), jeżeli stosunek liczby 1 do liczby 0 w mapie jest duży. W przeciwnym przypadku mapę określa się jako rzadką (sparse). Indeks bitmapowy to zbiór map bitowych dla każdej wartości danego atrybutu relacji Indeksy w hurtowniach danych 12

Indeks bitmapowy - przykład Indeksy w hurtowniach danych 13

Indeks bitmapowy w postaci B-drzewa Indeksy w hurtowniach danych 14

Indeks bitmapowy zysk czasowy SELECT COUNT(*) FROM Sprzedaż WHERE Marka IN ('Audi', 'Ford') AND Typ = 'sport' AND Płeć = K' Indeksy w hurtowniach danych 15

Indeks bitmapowy - rozmiar Zależny od krotności Przykład Liczba rekordów = 1 000 000 Rozmiar indeksu B-drzewo 4MB Krotność = 4 Rozmiar indeksu: 4 x (1 000 000 / 8) = 4 x 124 kb = 500kB Krotność = 64 Rozmiar indeksu: 64 x (1 000 000 / 8) = 64 x 124 kb = 8MB Indeksy w hurtowniach danych 16

Kompresja indeksów bitmapowych Liczba 0 w mapach bitowych jest duża w porównaniu do liczby 1 Optymalizacja współczynnika kompresji oraz czasu dekompresji Przechowywanie 0 lub 1 i liczby jego kolejnych wystąpień Indeksy w hurtowniach danych 17

Kompresja indeksów bitmapowych Kodowanie run-length jednorodnego ciągu bitów o wartości w (0 lub 1) i długości m [w m] Przykład 0000000 1111111111 000 [07] [110] [03] Podział mapy bitowej na słowa o długości n bitów Specjalizowane metody BBC (Byte-aligned Bitmap Code) słowa 8 bitowe WAH (Word-Aligned Hybrid) słowa 31 bitowe Indeksy w hurtowniach danych 18

Kompresja BBC i WAH Wypełnienie słowo złożone z samych 0 lub 1, podlega kompresji Dopełnienie - słowo złożone z 0 i 1 nie podlega kompresji Format skompresowanego słowa bit pierwszy 1 wypełnienie 0 dopełnienie bit drugi wartość wypełnienia ( 0 lub 1 ) kolejne bity długość wypełnieni a (liczba jednorodnych 0 lub 1 ) Indeksy w hurtowniach danych 19

Indeks bitmapowy koszt utrzymania Wstawienie rekordu Zwiększenie długości mapy Opcjonalne zbudowanie nowej mapy Usuwanie rekordu Zmniejszenie długości mapy Opcjonalne usunięcie mapy Modyfikowanie rekordu Operacje na 2 mapach Kosztowne, ale akceptowalne w hurtowniach danych Indeksy w hurtowniach danych 20

Indeks bitmapowy mapa istniejących krotek SELECT COUNT(*) FROM Sprzedaż WHERE Marka!= 'Ford' Indeksy w hurtowniach danych 21

Odwzorowanie w adres fizyczny RID, ROWID (row identifier) numer strony na dysku pozycja na stronie - szczelina Indeksy w hurtowniach danych 22

Indeks bitmapowy podsumowanie Zapytania z dużą ilością predykatów warunkowych oraz zapytania z funkcją COUNT Wykonywanie operacji na indeksach a nie na samych krotkach Efektywne przetwarzanie map bitowych (AND, OR, NOT) - procesory 64-bitowe Składowanie w RAM Mała efektywność poszukiwania wartości z zadanego zakresu Indeksy w hurtowniach danych 23

Indeks połączeniowy Indeks połączeniowy (join index) łączy ze sobą krotki z różnych relacji mające tę samą wartość atrybutu połączeniowego Indeksy w hurtowniach danych 24

Bitmapowe indeksy połączeniowe Struktura B-drzewa z mapami bitowymi w liściach opisujące połączone rekordy Zbiór bitmap Indeksy w hurtowniach danych 25

Zaawansowane przetwarzanie analityczne w hurtowniach danych Problemy zaawansowanego przetwarzania analitycznego w hurtowniach danych Indeksy w hurtowniach danych 26

Problemy zaawansowanego przetwarzania analitycznego w hurtowniach danych W modelu OLAP to użytkownik steruje analizą danych Zbyt szczegółowy poziom abstrakcji do bardziej ogólnych zapytań! Niemożność automatyzacji procesu analizy Indeksy w hurtowniach danych 27

Problemy zaawansowanego przetwarzania analitycznego w hurtowniach danych Odpowiedzią jest technologia eksploracji danych (ang. data mining), czyli: Proces odkrywania wiedzy w postaci nowych, użytecznych, poprawnych i zrozumiałych wzorców w bardzo dużych wolumenach danych. Najczęściej wykorzystywany model wiedzy: reguły asocjacyjne mleko ^ płatki kakao Indeksy w hurtowniach danych 28

Eksploracja danych Liczba odkrytych wzorców może być bardzo duża najczęściej zapisywane są w osobnej relacji/bazie danych Wzorce te są szczegółowo analizowane przez użytkowników za pomocą zapytań operujących na zbiorach Zapytania te są słabo wspierane przez systemy zarządzania relacyjnymi bazami danych! Indeksy w hurtowniach danych 29

Zapytania operujące na zbiorach Dane są Baza D transakcji T q skończony zbiór elementów Definiujemy cztery typy zapytań operujących na zbiorach Zapytanie równościowe Zapytanie o nadzbiory Zapytanie o podzbiory Zapytanie przybliżone Zapytania uogólnione wykorzystują zdefiniowane w hurtowni danych hierarchie elementów Indeksy w hurtowniach danych 30

Zapytanie równościowe Zapytanie zwracające następujący zbiór identyfikatorów transakcji: znajduje wszystkie reguły, które zawierają podany zbiór elementów, np.: Wyświetl reguły, których ciało stanowią mleko i kefir Indeksy w hurtowniach danych 31

Zapytanie o nadzbiory Zapytanie zwracające następujący zbiór identyfikatorów transakcji: znajduje wszystkie reguły, których ciało zawiera się w zadanym zbiorze elementów, np.: Wyświetl klientów, którzy w ramach jednej transakcji kupili mleko, płatki i kawę Indeksy w hurtowniach danych 32

Zapytanie o podzbiory Zapytanie zwracające następujący zbiór identyfikatorów transakcji: znajduje wszystkie transakcje, które zawierają podany zbiór elementów, np.: Wyświetl wszystkie reguły, w których ciele znajdują się jedynie napoje Indeksy w hurtowniach danych 33

Zapytanie przybliżone Zapytanie zwracające następujący zbiór identyfikatorów transakcji: gdzie: ε - próg podobieństwa sim(t,q) wartość podobieństwa między zbiorami znajduje wszystkie transakcje, których podobieństwo do zbioru q przekracza próg ε, np.: Wyświetl klientów, którzy w ramach jednej transakcji zakupili koszyk towarów, jak chleb, mleko, miód lub podobny. Indeksy w hurtowniach danych 34

Brak wsparcia ze strony DBMS! Powyższe rodzaje zapytań nie są efektywnie wspierane przez istniejące systemy zarządzania bazami danych Przykład odczytanie z tabelki Zakupy(id_transakcji, produkt) identyfikatory transakcji, zawierających produkty mleko, kefir, jajka Zapytanie wykorzystujące wielokrotne połączenie zwrotne relacji: SELECT DISTINCT A.id_transakcji FROM Zakupy A, Zakupy B, Zakupy C WHERE A.id_transakcji = B.id_transakcji AND B.id_transakcji = C.id_transakcji AND A.produkt = mleko AND B.produkt = kefir AND C.produkt = jajka ; Zapytanie wykorzystujące grupowanie: SELECT id_transakcji FROM Zakupy WHERE produkt IN ( mleko, kefir, jajka ) GROUP BY id_transakcji HAVING COUNT(*) = 3; Indeksy w hurtowniach danych 35

Zaawansowane przetwarzanie analityczne w hurtowniach danych Struktury indeksowe wspierające zaawansowane przetwarzanie analityczne Indeksy w hurtowniach danych 36

Struktury indeksowe wspierające zaawansowane przetwarzanie analityczne Indeksy sygnaturowe Plik sygnaturowy S-drzewa Grupowy indeks bitmapowy Ograniczony indeks bitmapowy Haszowy grupowy indeks bitmapowy Indeksy w hurtowniach danych 37

Struktury indeksowe wspierające zaawansowane przetwarzanie analityczne, c.d. Wyszukiwanie i analiza danych wielowymiarowych Indeksy hierarchiczne K-d-drzewa Drzewa ćwiartek R-drzewa Pozostałe struktury indeksowe RD-drzewa Odwrócone RD-drzewa Pliki odwrócone Hierarchiczny indeks bitmapowy Indeksy w hurtowniach danych 38

Zaawansowane przetwarzanie analityczne w hurtowniach danych Indeksy sygnaturowe Indeksy w hurtowniach danych 39

Indeksy sygnaturowe Podstawowa cecha sygnaturowa reprezentacja zbiorów Sygnatura elementu Sygnatura zbioru A Waga sygnatury Przykład: Długość sygnatury: n = 4 Liczba ustawionych bitów 1 : k = 2 Indeksy w hurtowniach danych 40

Sygnatury - przykład Indeksy w hurtowniach danych 41

Sygnatury Transformacja zbioru elementów w sygnaturę nie jest wzajemnie jednoznaczna Fałszywe trafienia (ang. false drop) Zbyt mała liczba 1 mniejsza liczba odwzorowywanych elementów Zbyt duża wartość k klucze są w większości wypełnione jedynkami, przez co więcej kluczy wymaga weryfikacji Indeksy w hurtowniach danych 42

Plik sygnaturowy Plik sygnaturowy sekwencyjny plik rekordów postaci [sig(s), ref(s)] sig(s) sygnatura zbioru S ref(s) wskaźnik do zbioru S Wykorzystanie pliku sygnaturowego 1. utworzenie sygnatury zapytania 2. sekwencyjny odczyt pliku 3. sprawdzenie odpowiedniej relacji zawierania na poziomie sygnatur 4. odczyt z hurtowni lub bazy danych znalezionych zbiorów 5. weryfikacja fałszywych trafień Indeksy w hurtowniach danych 43

Plik sygnaturowy - przykład Indeksy w hurtowniach danych 44

Grupowy indeks bitmapowy Wariant pliku sygnaturowego Idea utworzenie binarnej reprezentacji indeksowanego zbioru i wykorzystaniu zbiorów spełniających podane kryteria Klucz indeksu, reprezentujący dany zbiór to wektor N bitów, gdzie N całkowita liczba różnych elementów k-ty bit jest ustawiony na 1, jeśli zbiór zawiera k-ty element Przykład na rysunku informacje o transakcjach i odpowiadający im indeks grupowy Indeksy w hurtowniach danych 45

Grupowy indeks bitmapowy przykład Indeksy w hurtowniach danych 46

Grupowy indeks bitmapowy cechy Podstawowa wada rozmiar klucza zależy od liczby różnych elementów Nie nadaje się do wspomagania wykonywania zapytań uogólnionych, operujących na wyższym poziomie generalizacji Czasem jednak stanowi najlepsze rozwiązanie dla aplikacji z niewielką i stałą liczbą różnych elementów Indeksy w hurtowniach danych 47

Ograniczony grupowy indeks bitmapowy Zmodyfikowana postać grupowego indeksu bitmapowego W trakcie przeszukiwania bierze się pod uwagę tylko aktualnie używany fragment indeksu W celu uniknięcia przetwarzania niepotrzebnych fragmentów indeksu ograniczamy go tylko do tych fragmentów, które są niepuste w kluczu wyszukiwania, tylko te fragmenty są ładowane do pamięci i przetwarzane Indeksy w hurtowniach danych 48

Ograniczony grupowy indeks bitmapowy - cechy Zaleta redukcja rozmiaru indeksu, dzięki czemu do pamięci można wczytać więcej kluczy indeksowych Wada indeks musi być rekonstruowany podczas każdego nowego zapytania Indeksy w hurtowniach danych 49

Haszowy grupowy indeks bitmapowy Cel: wyeliminowanie wad związanych ze zmienną długością klucza indeksowego w grupowym indeksie bitmapowym Klucz: stały rozmiar n bitów, wartość funkcji haszowej dla elementu x Indeksy w hurtowniach danych 50

Haszowy grupowy indeks bitmapowy Wyszukiwanie przebiega w dwóch krokach: Filtrowanie Weryfikacja Indeksy w hurtowniach danych 51

Haszowy grupowy indeks bitmapowy przykład hurtowni danych Indeksy w hurtowniach danych 52

Haszowy grupowy indeks bitmapowy przykład wyszukiwania Indeksy w hurtowniach danych 53

Dziękujemy!!! Indeksy w hurtowniach danych 54