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

Optymalizacja poleceń SQL

Jakub Pilecki Szymon Wojciechowski

Optymalizacja poleceń SQL Metody dostępu do danych

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

Wydajność hurtowni danych opartej o Oracle10g Database

Modelowanie wymiarów

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

Haszowanie (adresowanie rozpraszające, mieszające)

Indeksowanie w bazach danych

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

Optymalizacja poleceń SQL Indeksy

Temat: Algorytm kompresji plików metodą Huffmana

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

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

Indeksy. Indeks typu B drzewo

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

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

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

Partycjonowanie tabel (1)

Oracle11g: Wprowadzenie do SQL

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

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

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

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

Przestrzenne bazy danych Podstawy języka SQL

Przykładowe B+ drzewo

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

Hurtownie danych - przegląd technologii

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

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

Relacyjne bazy danych. Podstawy SQL

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

STROJENIE PRZETWARZAŃ SAS

Optymalizacja poleceń SQL

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Cwiczenie 4. Połączenia, struktury dodatkowe

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

Wprowadzenie do baz danych

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

Definicja pliku kratowego

Systemy GIS Tworzenie zapytań w bazach danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

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

Hurtownie danych - przegląd technologii

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Spis treści. Przedmowa

Optymalizacja poleceń SQL Wprowadzenie

Politechnika Poznańska TWO

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Relacyjne bazy danych. Podstawy SQL

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

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

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

Partycjonowanie. Partycjonowanie tabel (1)

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

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

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

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

Zarządzanie pamięcią operacyjną

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

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

Technologia HD w IBM DB2

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

Szyfrowanie danych w SZBD

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

Wykład I. Wprowadzenie do baz danych

Tadeusz Pankowski

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

System plików przykłady. implementacji

Tabela wewnętrzna - definicja

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

ZADANIE 1. Rozwiązanie:

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

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

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

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

AKD Metody słownikowe

Cwiczenie 2. Metody dostępu do danych

PODSTAWY BAZ DANYCH. 7. Metody Implementacji Baz Danych. 2009/ Notatki do wykładu "Podstawy baz danych" 1

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

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

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

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

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

Wielowymiarowy model danych

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

Transkrypt:

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

Efektywność przetwarzania OLAP 1. 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) 4 x<=4 x>4 2 6 8 x<=2 2<x<=4 4<x<=6 6<x<=8 8<x 1 2 3 4 5 6 7 8 9 10 3

Indeks połączeniowy (join index) Zmaterializowany wynik połączenia np. indeks na atrybucie Sklepy.sklep_id Sklepy sklep_id nazwa Sprzedaż sklep_id produkt_id l_sztuk 4

Wprowadzenie (2) Zapytania analityczne często nie są selektywne wybierają kilkadziesiąt % rekordów tabeli Indeksy B-drzewo są efektywne dla selektywności max 20% Zastosowanie innego rodzaju indeksu do indeksowania danych w HD indeks bitmapowy 5

Indeks bitmapowy - definicje Krotność atrybutu - szerokość dziedziny atrybutu Mapa bitowa - wektor bitów bit odpowiada rekordowi tabeli Indeks bitmapowy zbiór map bitowych - jedna mapa opisuje jedną wartość z dziedziny Dostęp do map bitowych 2-wymiarowa tablica indeks B-drzewo... 6

Indeks bitmapowy - wykorzystanie select count(*) from sprzedaż where marka in ('Audi', 'Ford') and typ = 'sport' and plec='k'; 7

Indeks bitmapowy - charakterystyka (1) Mały rozmiar dla atrybutów o małej krotności Przykład l_rekordów = 1 000 000 krotność A = 4 adres_rekordu = 10B (Oracle) indeks bitmapowy na atrybucie A 4 mapy bitowe: 4 x (1 000 000 / 8) = 4 x 125kB = 500kB indeks B + -drzewo na atrybucie A 1 000 000 x 10B = 10MB 8

Indeks bitmapowy - charakterystyka (2) 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 bitowych nie nadaje się do obsługi operatora LIKE 9

Indeks bitmapowy - charakterystyka (3) Duży rozmiar dla atrybutów o dużej krotności Przykład l_rekordów = 1 000 000 krotność A = 1024 adres_rekordu = 10B indeks bitmapowy na atrybucie A 1024 mapy bitowe: 1024 x (1 000 000 / 8) = 1024 x 125kB = 128MB indeks B + -drzewo na atrybucie A 1 000 000 x 10B = 10MB 10

Indeks bitmapowy charakterystyka (5) Koszty uaktualniania indeksów w trakcie pracy systemu wstawianie rekordów zwiększanie długości map bitowych usuwanie rekordów zmniejszanie długości map bitowych modyfikowanie rekordów operacje na 2 mapach współbieżność blokowane są ciągłe obszary map bitowych 11

Eksperyment (1) Oracle10g R2 bufor danych: 73MB; SGA: 570MB liczba rekordów w indeksowanej tabeli: 3,2 mln 12

Eksperyment (2) select count(1) from T where... liczba rekordów w indeksowanej tabeli: 3,2 mln krotność indeksowanego atrybutu: 1024 13

Eksperyment (3) select sum(val) from T where... liczba rekordów w indeksowanej tabeli: 3,2 mln krotność indeksowanego atrybutu: 1024 14

Eksperyment (4) Tworzenie indeksów 15

Techniki zmniejszania rozmiaru IB Podział dziedziny indeksowanego atrybutu na zakresy Kodowanie map bitowych Kompresja map bitowych 16

Podział na zakresy (1) Dziedzina indeksowanego atrybutu jest dzielona na zadane zakresy np. temperatura <0, 20), <20, 40), <40, 60), <60, 80), <80, 100) indeksowany atrybut indeks bitmapowy z podziałem na zakresy zapytanie: policz rekordy dla których 10<=temp<45 17

Podział na zakresy (2) Możliwe budowanie map bitowych dla wybranych zbiorów wartości np. {żółty, pomarańczowy, czerwony}, {błękitny, niebieski, granatowy} Cechy uniezależnienie liczby map bitowych od szerokości dziedziny w zbiorze wskazanym przez mapę bitową znajdują się również rekordy nie spełniające warunku selekcji konieczność odfiltrowania 18

Kodowanie map bitowych (1) Zastąpienie wartości indeksowanego atrybutu inną wartością, której reprezentacja za pomocą map bitowych zajmie mniej miejsca Przykład krotność indeksowanego atrybutu: 50000 podstawowy indeks bitmapowy: 50000 map bitowych zakodowanie 50000 różnych wartości na log 2 50000 =16 bitów konieczność odwzorowania wartości oryginalnych w zakodowane tabela odwzorowania 19

Kodowanie map bitowych (2) zapytanie: select * from T where taryfa = 'Kubali' maska IB: B2 B1 B0 atrybut zakodowany IB tabela odwzorowania 20

Kompresja map bitowych Kodowanie run-length zastąpienie jednorodnego ciągu bitów o wartości w (0 lub 1) i o długości m ciągiem: [w m] 0000000 1111111111 000 07 110 03 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 31 bitowe RLH słowa 1024 bitowe lub brak podziału 21

Kompresja WAH i BBC 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ść 1 oznacza wypełnienie wartość 0 oznacza dopełnienie bit drugi oznacza wartość wypełnienia (0 lub 1) kolejne bity służą do zapisania długości wypełnienia, tj. liczby jednorodnych zer lub jedynek 22

Kompresja WAH (1) Przykład Założenia 32 bitowy procesor mapa bitowa złożona z 5456 bitów Działanie kompresji WAH krok 1: podział mapy bitowej na grupy złożone z 31 bitów 23

Kompresja WAH (2) Działanie kompresji WAH krok 2: scalenie grup z identycznymi bitami w jedną grupę scalane są grupy 2 do 175 grupa niejednorodna grupa niejednorodna 24

Kompresja WAH (3) Działanie kompresji WAH kodowanie 3 grup wynikowych grupa pierwsza dopełnienie przebiegu 1 grupa 2-175 wypełnienie przebiegu 2 grupa 176 dopełnienie przebiegu 2 25

Kompresja WAH i BBC - wady 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) 26

Kompresja RLH RLH - Run-Length Huffman Bazuje na kodowaniu run-length (zmodyfikowane) kodowaniu Huffmana 27

Kodowanie Huffmana (1) 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 Przykład zakodować ciąg znaków: to_jest_test Działanie kodowania Huffmana Krok 1: obliczenie częstości występowania symboli w kodowanym ciągu 28

Kodowanie Huffmana (2) Działanie kodowania Huffmana Krok 2: zbudowanie drzewa kodów Huffmana 29

Kodowanie Huffmana (3) Działanie kodowania Huffmana Krok 3: wyznaczenie kodów Huffmana i zastąpienie nimi oryginalnych symboli oryginalny tekst: 12B skompresowany tekst: 4B 30

Kompresja RLH (1) Zmodyfikowane kodowanie run-length kodowaniu podlegają odległości pomiędzy kolejnymi bitami o wartości jeden 4 0 0 0 1 2 1 0 0 0 0 1 1 1 1 0 1 0 0 1 400012 Wzrost krotności atrybutu zmniejszanie się gęstości map bitowych zmniejszanie się liczby symboli wykorzystywanych do kodowania map bitowych 31

Kompresja RLH (2) Mapy bitowe, zakodowane z wykorzystaniem zmodyfikowanego kodowania run-length są kompresowane z wykorzystaniem kodowania Huffmana Częstości odległości we wszystkich mapach bitowych 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 bitowych 32

Kompresja RLH (3) Przykładowe działanie Krok 1: kodowanie map bitowych obliczenie częstości symboli 33

Kompresja RLH (4) Przykładowe działanie Krok 2: zbudowanie drzewa kodów Huffmana 34

Przykładowe działanie Krok 3: kompresja oryginalna mapa bitowa płeć='kobieta' Kompresja RLH (5) 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 1 1 reprezentacja mapy po zmodyfikowanym kodowaniu run-length 1 0 0 3 0 3 0 0 1 0 0 110 0 0 10 0 10 0 0 110 0 0 skompresowana mapa bitowa RLH 35

WAH i RLH: rozmiary Liczba rekordów indeksowanej tabeli: 2 mln 36

WAH i RLH: czasy odpowiedzi Zapytanie: select... from... where indeksowany_atrybut in (w1, w2,..., w100) 37

Indeksy bitmapowe w systemach komercyjnych (1) Oracle definiowane jawnie przez administratora kompresowane automatycznie (BBC) bitmapowy indeks połączeniowy wykorzystywany do optymalizacji zapytań gwiaździstych 38

Indeksy bitmapowe w systemach 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

Indeksy bitmapowe w systemach komercyjnych (3) 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 40

Indeksy bitmapowe w systemach komercyjnych (4) Indeks na Produkty.kategoria będzie zawierał tyle map bitowych 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 bitowych 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 41

Indeksy bitmapowe w systemach komercyjnych (5) Nastąpi przepisanie oryginalnego zapytania do zapytania z wykorzystaniem połączeniowych indeksów bitmapowych Krok 1 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 42

Indeksy bitmapowe w systemach 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 (ROWID) 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 ROWID 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 43

Indeksy bitmapowe w systemach komercyjnych (7) pr.kategoria='kosmetyki' ROWID ROWID ROWID... 1 0 0 1 1 1 0.. sk.wojewodztwo in ('Mazowieckie', 'Wielkopolskie') ROWID ROWID ROWID... 0 0 0 1 1 0 1.. AND 0 0 0 1 1 0 0.. 44

Indeksy bitmapowe w systemach komercyjnych (8) SQL Server tworzone i zarządzane niejawnie przez system wykorzystywane do optymalizacji połączeń tabel algorytmem hash join tabela z kluczem podstawowym tabela zewnętrzna tabela z kluczem obcym tabela wewnętrzna 45

Indeksy bitmapowe w systemach komercyjnych (9) Wartości klucza podstawowego tabeli zewnętrznej są odzwierciedlane w mapę bitową za pomocą funkcji haszowej wartość funkcji haszowej odpowiada określonemu bitowi mapy Wartość klucza podstawowego po przetworzeniu funkcją haszową powoduje nadanie odpowiedniemu bitowi wartości 1 Haszuje się wartości klucza obcego tabeli wewnętrznej za pomocą tej samej funkcji haszowej wyniki tego haszowania są zapisywane w drugiej mapie Mapa wynikowa: iloczyn map bitowych opisuje te rekordy z tabeli zewnętrznej i wewnętrznej, które łączą się z sobą 46

Indeksy bitmapowe w systemach komercyjnych (10) Sybase IQ definiowane jawnie przez administratora Low Fast dla atrybutów o wąskiej dziedzinie max krotność 10 000 wartości największa efektywność dla krotności do 1000 High Non Group dla atrybutów o szerokiej dziedzinie optymalizacja zapytań z warunkami zakresu i wyliczających agregaty 47

Indeksy bitmapowe w systemach komercyjnych (11) SAS Scalable Performance Data (SPD) Server indeks hybrydowy podział tabeli na segmenty (np. 8192 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 0111011001 1100001000 segment 1 segment 2 segment 3... segment n 48

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 bitowych kompresja kodowanie run length algortymy BBC, WAH, RLH Oracle, IBM DB2, Sybase IQ, MS SQL Server, SAS SPD Server 49