Hurtownie danych - przegląd technologii

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

Hurtownie danych - przegląd technologii

Run-Length Huffman - alternatywny algorytm kompresji map bitowych

Indeksy w hurtowniach danych

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

Jakub Pilecki Szymon Wojciechowski

Optymalizacja poleceń SQL

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

Wydajność hurtowni danych opartej o Oracle10g Database

Haszowanie (adresowanie rozpraszające, mieszające)

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

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

Indeksowanie w bazach danych

Temat: Algorytm kompresji plików metodą Huffmana

Modelowanie wymiarów

Optymalizacja poleceń SQL Indeksy

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

Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl

Hurtownie danych - przegląd technologii

Hurtownie danych - przegląd technologii

Wykład XII. optymalizacja w relacyjnych bazach danych

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

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

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

Indeksy. Indeks typu B drzewo

Partycjonowanie tabel (1)

Przykładowe B+ drzewo

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Plan wykładu. Hurtownie danych. Problematyka integracji danych. Cechy systemów informatycznych

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

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

Hurtownie danych - przegląd technologii

Oracle11g: Wprowadzenie do SQL

STROJENIE PRZETWARZAŃ SAS

STROJENIE BAZ DANYCH: INDEKSY. Cezary Ołtuszyk coltuszyk.wordpress.com

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

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

Definicja pliku kratowego

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Relacyjne bazy danych. Podstawy SQL

(duzo, przeczytac raz i zrozumiec powinno wystarczyc. To jest proste.)

Przestrzenne bazy danych Podstawy języka SQL

Partycjonowanie. Partycjonowanie tabel (1)

Hurtownie danych 2. Wykład przygotował: Robert Wrembel. Zagadnienia implementacyjne i efektywność przetwarzania OLAP

Politechnika Poznańska TWO

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

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

Systemy GIS Tworzenie zapytań w bazach danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Optymalizacja poleceń SQL

Tadeusz Pankowski

Cwiczenie 4. Połączenia, struktury dodatkowe

Zastosowanie kompresji w kryptografii Piotr Piotrowski

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

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

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

PODSTAWY BAZ DANYCH. 10. Partycjonowanie tabel i indeksów. 2009/ Notatki do wykładu "Podstawy baz danych"

Hurtownie danych - przegląd technologii

Wprowadzenie do baz danych

Relacyjne bazy danych. Podstawy SQL

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

DB2 with BLU acceleration rozwiązanie in-memory szybsze niż pamięć operacyjna&

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Technologia HD w IBM DB2

Optymalizacja poleceń SQL Wprowadzenie

System plików przykłady. implementacji

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Spis treści. Przedmowa

Zarządzanie pamięcią operacyjną

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

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

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017

PODSTAWY BAZ DANYCH Wykład Partycjonowanie tabel i indeksów

Szyfrowanie danych w SZBD

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Wielowymiarowy model danych

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

AKD Metody słownikowe

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Optymalizacja zapytań. Proces przetwarzania i obliczania wyniku zapytania (wyrażenia algebry relacji) w SZBD

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

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

System plików przykłady implementacji

Optymalizacja zapytań

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

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

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

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

Hurtownie danych. Projektowanie hurtowni: modele wielowymiarowe. Modelowanie punktowe. Operacje OLAP na kostkach.

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Wykład I. Wprowadzenie do baz danych

Spis tre±ci. Przedmowa... Cz ± I

Transkrypt:

Efektywność przetwarzania OLAP Hurtownie danych - przegląd technologii Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel. Indeksowanie B-drzewo Indeks bitmapowy Indeks połączeniowy Bitmapowy indeks połączeniowy 2. Perspektywa zmaterializowana koncepcja przepisywanie zapytań odświeżanie wybór perspektyw do materializacji 3. Optymalizacja GROUP BY 4. Partycjonowanie 5. Kompresja 6. Przetwarzanie równoległe 2 B-drzewo (B-tree) Indeks połączeniowy (join index) 4 x<=4 x>4 Zmaterializowany wynik połączenia np. indeks na atrybucie Sklepy.sklep_id 2 6 8 x<=2 2<x<=4 4<x<=6 6<x<=8 8<x 2 3 4 5 6 7 8 9 Sklepy sklep_id nazwa Sprzedaż sklep_id produkt_id l_sztuk 3 4 Wprowadzenie (2) Indeks bitmapowy - definicje Zapytania analityczne często nie są selektywne wybierają kilkadziesiąt % rekordów tabeli Indeksy B-drzewo są efektywne dla selektywności max 2% Zastosowanie innego rodzaju indeksu do indeksowania danych w HD indeks bitmapowy Krotność atrybutu - szerokość dziedziny atrybutu Mapa bitowa - wektor bitów bit odpowiada rekordowi tabeli Indeks bitmapowy zbiór map - jedna mapa opisuje jedną wartość z dziedziny Dostęp do map 2-wymiarowa tablica indeks B-drzewo 5 6

7 Indeks bitmapowy - wykorzystanie select count(*) from sprzedaż where marka in ('Audi', 'Ford') and typ = 'sport' and plec='k'; Indeks bitmapowy - charakterystyka () Mały rozmiardla atrybutów o małej krotności l_rekordów = krotność A = 4 adres_rekordu = B (Oracle) indeks bitmapowy na atrybucie A 4 mapy bitowe: 4 x ( / 8) = 4 x 25kB = 5kB indeks B + -drzewo na atrybucie A x B = MB 8 Indeks bitmapowy - charakterystyka (2) Indeks bitmapowy - charakterystyka (3) Szybkość przetwarzania mały indeks mała liczba operacji we/wy przetwarzanie w RAM przetwarzanie 64 bitów w jednym cyklu zegara szybkie operacje AND, OR, NOT, COUNT na mapach nie nadaje się do obsługi operatora LIKE Duży rozmiardla atrybutów o dużej krotności l_rekordów = krotność A = 24 adres_rekordu = B indeks bitmapowy na atrybucie A 24 mapy bitowe: 24 x ( / 8) = 24 x 25kB = 28MB indeks B + -drzewo na atrybucie A x B = MB 9 Indeks bitmapowy charakterystyka (5) Eksperyment () Koszty uaktualniania indeksów w trakcie pracy systemu wstawianie rekordów zwiększanie długości map usuwanie rekordów zmniejszanie długości map modyfikowanie rekordów operacje na 2 mapach współbieżność blokowane są ciągłe obszary map Oracleg R2 bufor danych: 73MB; SGA: 57MB liczba rekordów w indeksowanej tabeli: 3,2 mln 2

3 Eksperyment (2) Eksperyment (3) select count() from T where liczba rekordów w indeksowanej tabeli: 3,2 mln krotność indeksowanego atrybutu: 24 select sum(val) from T where liczba rekordów w indeksowanej tabeli: 3,2 mln krotność indeksowanego atrybutu: 24 4 Eksperyment (4) Techniki zmniejszania rozmiaru IB Tworzenie indeksów Podział dziedziny indeksowanego atrybutu na zakresy Kodowanie map Kompresja map 5 6 Podział na zakresy () Podział na zakresy (2) Dziedzina indeksowanego atrybutu jest dzielona na zadane zakresy np. temperatura <, 2), <2, 4), <4, 6), <6, 8), <8, ) indeksowany atrybut indeks bitmapowy z podziałem na zakresy Możliwe budowanie map dla wybranych zbiorów wartości np. {żółty, pomarańczowy, czerwony}, {błękitny, niebieski, granatowy} Cechy uniezależnienie liczby map od szerokości dziedziny w zbiorze wskazanym przez mapę bitową znajdują się również rekordy nie spełniające warunku selekcji konieczność odfiltrowania zapytanie: policz rekordy dla których <=temp<45 7 8

9 Kodowanie map () Kodowanie map (2) Zastąpienie wartości indeksowanego atrybutu inną wartością, której reprezentacja za pomocą map zajmie mniej miejsca krotność indeksowanego atrybutu: 5 podstawowy indeks bitmapowy: 5 map zakodowanie 5 różnych wartości na log 2 5 =6 bitów konieczność odwzorowania wartości oryginalnych w zakodowane tabela odwzorowania zapytanie: select * from T where taryfa = 'Kubali' maska IB: B2 B B atrybut zakodowany IB tabela odwzorowania 2 Kompresja map Kompresja WAH i BBC Kodowanie run-length zastąpienie jednorodnego ciągu bitów o wartości w ( lub ) i o długości m ciągiem: [w m] 7 3 kompresja BBC (Oracle) kompresja WAH kompresja RLH podział mapy bitowej na słowa o długości n bitów BBC słowa 8 bitowe WAH słowa 3 bitowe RLH słowa 24 bitowe lub brak podziału WAH - Word Aligned Hybrid BBC - Byte-aligned Bitmap Compression Wypełnienie słowo złożone z samych zer lub z samych jedynek podlega kompresji Dopełnienie słowo złożone z zer i jedynek nie podlega kompresji Format skompresowanego słowa bit pierwszy wartość oznacza wypełnienie wartość oznacza dopełnienie 2 22 Kompresja WAH i BBC Kompresja WAH () bit drugi jeśli bit pierwszy przyjmuje wartość oznacza wartość wypełnienia ( lub ) jeśli bit drugi przyjmuje wartość jest najstarszym bitem niekompresowalnej grupy kolejne bity służą do zapisania długości wypełnienia, tj. liczby jednorodnych zer lub jedynek Założenia 32 bitowy procesor mapa bitowa złożona z 5456 bitów Działanie kompresji WAH krok : podział mapy bitowej na grupy złożone z 3 bitów 23 24

25 Kompresja WAH (2) Kompresja WAH (3) Działanie kompresji WAH krok 2: scalenie grup z identycznymi bitami w jedną grupę scalane są grupy 2 do 75 Działanie kompresji WAH kodowanie 3 grup wynikowych grupa pierwsza dopełnienie przebiegu grupa 2-75 wypełnienie przebiegu 2 grupa 76 dopełnienie przebiegu 2 grupa niejednorodna grupa niejednorodna 26 Kompresja WAH i BBC - wady Kompresja RLH Podział mapy bitowej na słowa pogarsza jakość jej kompresji jednorodne ciągi bitów nie zawsze pasują do długości słowa i w takim przypadku nie mogą być kompresowane Ze wzrostem krotności indeksowanego atrybutu maleje liczba jednorodnych ciągów bitów (przy nieuporządkowaniu danych) RLH - Run-Length Huffman Bazuje na kodowaniu run-length (zmodyfikowane) kodowaniu Huffmana 27 28 Kodowanie Huffmana () Kodowanie Huffmana (2) Koncepcja: oryginalne symbole są zastępowane ciągami bitów, przy czym symbole występujące częściej są zastępowane krótszymi ciągami bitów zakodować ciąg znaków: to_jest_test Działanie kodowania Huffmana Krok : obliczenie częstości występowania symboli w kodowanym ciągu Działanie kodowania Huffmana Krok 2: zbudowanie drzewa kodów Huffmana 29 3

3 Kodowanie Huffmana (3) Kompresja RLH () Działanie kodowania Huffmana Krok 3: wyznaczenie kodów Huffmana i zastąpienie nimi oryginalnych symboli Zmodyfikowane kodowanie run-length kodowaniu podlegają odległości pomiędzy kolejnymi bitami o wartości jeden 4 2 oryginalny tekst: 2B skompresowany tekst: 4B 42 Wzrost krotności atrybutu zmniejszanie się gęstości map zmniejszanie się liczby symboli wykorzystywanych do kodowania map 32 Kompresja RLH (2) Kompresja RLH (3) Mapy bitowe, zakodowane z wykorzystaniem zmodyfikowanego kodowania run-length są kompresowane z wykorzystaniem kodowania Huffmana Częstości odległości we wszystkich mapach są reprezentowane w drzewie kodów Huffmana Rozmiar drzewa kodów Huffmana jest niewielki przechowywane w RAM, zwiększając efektywność kompresowania i dekompresowania map owe działanie Krok : kodowanie map obliczenie częstości symboli 33 34 Kompresja RLH (4) Kompresja RLH (5) owe działanie Krok 2: zbudowanie drzewa kodów Huffmana owe działanie Krok 3: kompresja oryginalna mapa bitowa płeć='kobieta' reprezentacja mapy po zmodyfikowanym kodowaniu run-length 3 3 skompresowana mapa bitowa RLH 35 36

37 WAH i RLH: rozmiary Liczba rekordów indeksowanej tabeli: 2 mln Zapytanie: WAH i RLH: czasy odpowiedzi select from where indeksowany_atrybut in (w, w2,, w) 38 komercyjnych () Oracle definiowane jawnie przez administratora kompresowane automatycznie (BBC) bitmapowy indeks połączeniowy wykorzystywany do optymalizacji zapytań gwiaździstych komercyjnych (2) Oracle - bitmapowy indeks połączeniowy create bitmap index sprz_jbi on sprzedaz(produkty.kategoria) from sprzedaz, produkty where sprzedaz.produkt_id= produkty.produkt_id; 39 4 komercyjnych (3) komercyjnych (4) Oracle - optymalizacja zapytań gwiaździstych z wykorzystaniem bitmapowego indeksu połączeniowego select sum(wartosc), pr.nazwa, sk.nazwa from sprzedaz sp, sklepy sk, produkty pr where sk.wojewodztwo in ('Mazowieckie', 'Wielkopolskie') and pr.kategoria='kosmetyki' and sp.sklep_id=sk.sklep_id and sp.produkt_id=pr.produkt_id group by pr.nazwa, sk.nazwa; Zdefiniowano bitmapowe indeksy połączeniowe na atrybutach Sklepy.wojewodztwo Produkty.kategoria Indeks na Produkty.kategoria będzie zawierał tyle map ile jest różnych kategorii produktów (w tabeli Produkty) pojedyncza mapa tego indeksu, np. dla grupy kosmetyki będzie wskazywała na te rekordy w tabeli sprzedaż, które opisują sprzedaż kosmetyków Indeks na Sklepy.wojewodztwo będzie zawierał tyle map ile jest różnych województw w tabeli sklepy pojedyncza mapa tego indeksu, np. dla Wielkopolski będzie opisywała te sprzedaże, które zrealizowano w Wielkopolsce 4 42

43 komercyjnych (5) Nastąpi przepisanie oryginalnego zapytania do zapytania z wykorzystaniem połączeniowych indeksów bitmapowych Krok odczytanie mapy opisującej sprzedaż produktów kategorii kosmetyki (MB kosmetyki ) odczytanie mapy opisującej sprzedaż w województwie wielkopolskim (MB Wielkopolska ) odczytanie mapy opisującej sprzedaż w województwie mazowieckim (MB Mazowsze ) Krok2 wyznaczenie wynikowej mapy (MB wynik ) MB wynik = MB kosmetyki and (MB Wielkopolska or MB Mazowsze ) Krok3 odczytanie rekordów z tabeli z wykorzystaniem mapy MB wynik komercyjnych (6) IBM DB2 tworzone i zarządzane niejawnie przez system wykorzystywane do optymalizacji zapytań gwiaździstych Każda z tabel wymiaru jest niezależnie łączona operatorem pół-połączenia z tabelą faktów Do łączenia są wykorzystane indeksy B-drzewo na kluczach obcych tabeli faktów Fizyczne adresy rekordów () będących wynikiem każdego pół-połączenia są reprezentowane przez oddzielną mapę bitową Mapy bitowe B i są konstruowane z wykorzystaniem funkcji haszowej na wartość funkcji haszowej odpowiada określonemu bitowi mapy Mapa wynikowa (opisująca rekordy będące wynikiem całego zapytania) jest iloczynem logicznym map B i 44 komercyjnych (7) komercyjnych (8) pr.kategoria='kosmetyki' SQL Server tworzone i zarządzane niejawnie przez system wykorzystywane do optymalizacji połączeń tabeli wymiaru z tabelą faktów algorytmem hash join tabela z kluczem podstawowym (tab. wymiaru) tabela zewnętrzna tabela z kluczem obcym (tab. faktów) tabela wewnętrzna sk.wojewodztwo in ('Mazowieckie', 'Wielkopolskie') AND 45 46 komercyjnych (9) komercyjnych () Wartości klucza podstawowego tabeli zewnętrznej są odzwierciedlane w mapę bitową za pomocą funkcji haszowej f.haszowa(pk) nr bitu Wartość klucza podstawowego po przetworzeniu funkcją haszową powoduje nadanie odpowiedniemu bitowi wartości tabela zewnętrzna PK 2 3 Haszuje się wartości klucza obcego tabeli wewnętrznej za pomocą tej samej funkcji haszowej jeżeli rekord R i z tabeli wewnętrznej haszuje się do bitu z wartością, wówczas R i łączy się z rekordem z tabeli zewnętrznej tabela zewnętrzna PK 2 3 tabela wewnętrzna FK 3 22 6 6 6 47 48

49 komercyjnych () Sybase IQ definiowane jawnie przez administratora Low Fast dla atrybutów o wąskiej dziedzinie max krotność wartości największa efektywność dla krotności do High Non Group dla atrybutów o szerokiej dziedzinie optymalizacja zapytań z warunkami zakresu i wyliczających agregaty komercyjnych (2) SAS Scalable Performance Data (SPD) Server indeks hybrydowy podział tabeli na segmenty (np. 892 rekordy), z których każdy jest indeksowany niezależnie indeksem bitmapowym lub indeksem B-drzewo rodzaj indeksu wybierany automatycznie przez system na podstawie gęstości wartości indeksowanego atrybutu dystrybucji wartości segment segment 2 segment 3. segment n 5 Podsumowanie Indeks bitmapowy efektywny dla atrybutów o wąskich dziedzinach mniej efektywny dla atrybutów o szerokich dziedzinach rozmiar indeksu podział dziedziny kodowanie map kompresja kodowanie run length algortymy BBC, WAH, RLH Oracle, IBM DB2, Sybase IQ, MS SQL Server, SAS SPD Server 5