Technologia HD w IBM DB2



Podobne dokumenty
Artur Wroński. IBM Information Management Technical Team Leader

Optymalizacja poleceń SQL

Hurtownie danych - przegląd technologii

Wydajność hurtowni danych opartej o Oracle10g Database

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

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

Hurtownie danych - przegląd technologii

Tematy projektów Edycja 2014

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

Architektury i technologie integracji danych

Relacyjne bazy danych. Podstawy SQL

Partycjonowanie tabel (1)

Optymalizacja poleceń SQL Metody dostępu do danych

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Tworzenie zapytań do Microsoft SQL Server

Iwona Milczarek, Małgorzata Marcinkiewicz, Tomasz Staszewski. Poznań,

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Relacyjne bazy danych. Podstawy SQL

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

Optymalizacja poleceń SQL Indeksy

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

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

Optymalizacja poleceń SQL Statystyki

Baza danych in-memory. DB2 BLU od środka Artur Wrooski

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

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

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

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

Optymalizacja. Plan wykonania polecenia SQL (1) Plan wykonania polecenia SQL (2) Rozdział 19 Wprowadzenie do optymalizacji poleceń SQL

Hurtownie danych. 31 stycznia 2017

Internetowe bazy danych

Rozproszone bazy danych 3

Hurtownie danych - przegląd technologii

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Oracle11g: Wprowadzenie do SQL

Optymalizacja poleceń SQL

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

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

Przestrzenne bazy danych Podstawy języka SQL

SQL SERVER 2012 i nie tylko:

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Hurtownie danych - przegląd technologii

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

Język SQL, zajęcia nr 1

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

Hurtownie danych - przegląd technologii

Hurtownie danych i business intelligence - wykład II. Zagadnienia do omówienia. Miejsce i rola HD w firmie

Hurtownie danych - przegląd technologii

Opis spełnienia wymagań (PSBD)

Indeksy. Indeks typu B drzewo

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

Bazy danych i usługi sieciowe

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

Modelowanie wymiarów

Hurtownie danych i business intelligence - wykład II. Zagadnienia do omówienia. Miejsce i rola HD w firmie

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

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

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Proces ETL. Katedra Inżynierii Oprogramowania Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska {kris,

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

dr inż. Jarosław Forenc

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

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

Pakiety podprogramów Dynamiczny SQL

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Politechnika Śląska, Instytut Informatyki

Optymalizacja zapytań a kompresja danych w bazie DB2 9

Hurtownie danych. Ładowanie, integracja i aktualizacja danych. INTEGRACJA DANYCH ETL

Optymalizacja poleceń SQL Wprowadzenie

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

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

Systemy GIS Tworzenie zapytań w bazach danych

Pierwsze wdrożenie SAP BW w firmie

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

Programowanie po stronie serwera w SZBD. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Zapytania z ograniczeniem czasowym w Oracle

Tuning SQL Server dla serwerów WWW

Fizyczna organizacja danych w bazie danych

Ref. 7 - Język SQL - polecenia DDL i DML

Tabela wewnętrzna - definicja

Budowa systemu wspomagającego podejmowanie decyzji. Metodyka projektowo wdrożeniowa

Politechnika Poznańska TWO

Integracja systemów transakcyjnych

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

Nowe technologie baz danych

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Podyplomowe Studia Systemy informatyczne w logistyce

Wykład XII. optymalizacja w relacyjnych bazach danych

Definicja pliku kratowego

GLOBALNA DEDUPLIKACJA BLOKOWA W ŚRODOWISKU BACULA

OLAP i hurtownie danych c.d.

Administracja i programowanie pod Microsoft SQL Server 2000

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Bazy danych 7. SQL podstawy

SAS OLAP Cube Studio Wprowadzenie

Transkrypt:

Technologia HD w IBM DB2 wykład przygotowany na podstawie materiałów w IBM Polska Robert Wrembel Politechnika Poznańska Instytut Informatyki Robert.Wrembel@cs.put.poznan.pl www.cs.put.poznan.pl/rwrembel Technologie InfoSphere Information Server ETL Sfederowane bazy danych DB2 kompresja danych indeks sklastrowany Multidimensional Cluster partycjonowanie 2

InfoSphere Information Server InfoSphere Information Server engine ETL Komponenty InfoSphere Business Glossary Industry Data Models Metadata Workbench/Metadata Server InfoSphere Information Analyzer InfoSphere Quality Stage InfoSphere Data Stage InfoSphere Information Services Director InfoSphere Federation Server InfoSphere Change Data Capture InfoSphere Information Server FastTrack Wdrożenia Warta SA, PZU SA, BGŻ, Raiffeisen Bank Polska, Philipp Morris Int., Bakoma SA, TP SA,... 3 InfoSphere Information Server Business Glossary definicje pojęć biznesowych możliwość odwoływania się do tych pojęć z aplikacji Industry Data Models predefiniowane modele HD m.in. dla zastosowań bankowych, ubezpieczeń, zarządzania finansami, służby zdrowia, handlu, telekomunikacji Metadata Workbench analiza metadanych źródeł analiza metadanych enginu ETL change impact analysis data provenance 4

InfoSphere Information Server Information Analyzer profilowanie źródeł analiza jakości danych Quality Stage standaryzacja wartości uzupełnianie wartości brakujących eliminowanie duplikatów predefiniowane techniki eliminowania duplikatów Data Stage budowanie przepływów ETL (graficznie) zarządzanie przepływami 5 InfoSphere Information Server FastTrack wdrożenie/uruchomienie przepływów ETL Change Data Capture wykrywanie zmian w danych źródłowych propagowanie zmian do HD wykrywanie zmian w strukturze źródeł Federation Server 6

Stowarzyszone dane Stowarzyszona HD Dane transakcyjne Dane historyczne 7 Stowarzyszone dane w DB2 DB2 Optymalizator kosztowy Plan wykonania zapytania (zdalny i lokalny) Procedura Synonim Synonim Tabela Opakowanie relacyjne Natywny klient Opakowanie nieralacyjne Natywny klient Lokalne dane źródło relacyjne API źródło nierelacyjne 8

InfoSphere Federation Server Ujednolicenie interfejsów Zapis na wielu źródłach (2PC) Mapowanie użytkowników Wykonywanie zdalnych procedur Optymalizacja dostępu parametry opisujące źródło (wydajność CPU, systemu dyskowego, przepustowość sieci, ) statystyki optymalizacyjne dla zdalnych obiektów Agregaty oparte na zdalnych źródłach 9 Kompresja Wartości puste nie zajmują miejsca (wer. 8) Kompresja rekordów (wer. 9) Multidimensional Clustering (wer. 8) 10

Kompresja rekordów (1) Kompresja słownikowa algorytm kompresji bazuje na alg. Lempel-Ziv (LZ) statyczny słownik budowany w czasie reorganizacji tabeli rozmiar ~100KB Dane są przechowywane w postaci skompresowanej na dysku i w buforze danych zmniejszenie operacji I/O zmniejszenie zajętości bufora danych konieczność dekompresowania danych przed wykonaniem operacji (koszt CPU) 11 Kompresja rekordów (2) Powtarzające się ciągi symboli są zastępowane pozycją słownikową o znacznie mniejszej długości Konieczność utrzymywania słownika kompresji słownik kompresji 12

Kompresja rekordów (6) Słownik kompresji składowany w osobnej tabeli w bloku razem z danymi słownik kompresji nie jest widziany przez użytkownika Dictionary Dictionary Dictionary... 13 Kompresja rekordów (3) CREATE TABLE <table name> ---> ---COMPRESS NO--- ----+-----------------+----> ---COMPRESS YES-- ALTER TABLE <table name> ---> --+----------------------+----> --COMPRESS--+-YES--+-- --NO-- 14

Kompresja rekordów (4) Przed kompresją jest budowany słownik kompresji na podstawie zawartości całej tabeli próbki danych wpisanych do tabeli >--REORG--<table name>--+-----------------------+----> '--INDEX--<index name>--'.-allow READ ACCESS-. >--+-+-------------------+--+----------------+--+-----------+--> '-ALLOW NO ACCESS---' '-USE--<tbspace>-' '-INDEXSCAN-'.-KEEPDICTIONARY---. >--+-------------+-+-------------------+-+--> '-LONGLOBDATA-' '-RESETDICTIONARY---' 15 Kompresja rekordów (5) RESETDICTIONARY tabela kompresowana tak tak nie nie słownik istnieje tak nie tak nie wynik nowy słownik; kompresja nowy słownik; kompresja słownik usunięty; brak kompresji nie wpływa KEEPDICTIONARY tabela skompresowana tak tak nie nie słownik istnieje tak nie tak nie wynik stary słownik pozostaje; kompresja nowy słownik; kompresja stary słownik pozostaje; brak kompresji nie wpływa 16

Kompresja rekordów (7) Scenariusz 1 kompresji utworzyć tabelę z kompresją CREATE TABLE Sales COMPRESS YES wczytać reprezentatywną próbkę danych LOAD FROM filesmall OF DEL REPLACE INTO Sales utworzyć słownik kompresji na podstawie próbki REORG TABLE Sales wczytać docelowe dane do tabeli LOAD FROM filerest OF DEL INSERT INTO Sales 17 Kompresja rekordów (8) Scenariusz 2 kompresji utworzyć tabelę z kompresją ALTER TABLE Sales COMPRESS YES CREATE TABLE NewSales COMPRESS YES wczytać dane do tabeli LOAD FROM file OF DEL REPLACE INTO NewSales zbudować słownik kompresji i skompresować dane REORG NewSales dołączyć skompresowaną tabelę jako partycję innej tabeli ALTER TABLE Sales ATTACH PARTITION Mar05 STARTING '03/01/2005' ENDING '03/31/2005' FROM TABLE NewSales 18

Jakość kompresji (1) No Compression Row Compression TPCH Table Row Count Page Size Page Count Rows/Page Page Count Rows/Page Ratio region 5 8k 2 3 1 5 50% 16k 2 3 1 5 50% nation 25 8k 2 13 1 25 50% 16k 2 13 1 25 50% supplier 100,000 8k 2008 50 1064 94 47% 16k 995 101 530 189 47% customer 1,500,000 8k 33877 44 18219 82 46% 16k 16770 89 9043 166 46% part 2,000,000 8k 37285 54 11503 174 69% 16k 18486 108 7875 254 57% partsupp 8,000,000 8k 156576 51 49872 160 68% 16k 77546 103 31581 253 59% orders 15,000,000 8k 218358 69 86523 173 60% 16k 108309 138 59063 254 45% lineitem 59,986,052 8k 1023162 59 426292 141 58% 19 Jakość kompresji (2) Compression Type 32KB Page Count Disk space No compression 5893888 179.9GB Row compression 1392446 42.5GB % Pages Saved: 76.4% 12000 10000 8000 Pages 6000 4000 2000 0 A B C D E F G Table Non-compressed Compressed 20

Indeks sklastrowany (1) Indeks sklastrowany (ang. clustering index) kontroluje porządek składowania rekordów na dysku Po zdefiniowaniu indeksu wstawiane rekordy są składowane w kolejności kluczy indeksowych (z liści indeksu) Reorganizacja tabeli powoduje reorganizację rekordów na dysku, zgodnie z kolejnością kluczy indeksowych Dla danej tabeli jest możliwy tylko jeden indeks sklastrowany (jeden porządek fizycznego ułożenia rekordów) 21 Indeks sklastrowany (2) Indeks sklastrowany Blok danych 1 kod region data ilosc wart 101 21 04/02 1 1.50 101 21 04/02 1 1.50 101 7 04/02 2 3.00 101 7 04/01 6 8.11 Blok danych 2 kod region data ilosc wart 101 7 04/02 1 1.50 101 21 04/02 3 4.10 101 7 04/01 2 3.00 Klastrowanie indeks sklastrowany na kod sprzedaz indeks na dacie CREATE INDEX kod_idx ON SPRZEDAZ(kod) CLUSTER 22

Indeks sklastrowany (3) Zastosowanie do zapytań z: group by order by distinct Indeks sklastrowany eliminuje sortowanie 23 MDC (1) Klastrowanie wielowymiarowe (MultiDimensional Clustering - MDC) tzw. indeks blokowy (ang. block index) - wskazuje na blok danych grupowanie danych na podstawie wartości wielu wymiarów 24

MDC (2) Tabela bez MDC Blok danych 1 kod region data ilosc wart Tabela z MDC (region, data) Blok danych 1 kod region data ilosc wart 101 21 04/02 1 1.50 101 21 04/02 1 1.50 101 7 04/02 2 3.00 101 7 04/01 6 8.11 Blok danych 2 kod region data ilosc wart 101 7 04/02 1 1.50 101 21 04/02 3 4.10 101 7 04/01 2 3.00 CREATE TABLE TABLE sprzedaz ( kod kod BIGINT, region INT, INT, data data DATE, DATE, ilosc ilosc INT, INT, wartosc DECIMAL(16,2)) ORGANIZE BY BY (region, data); 101 21 04/02 1 1.50 101 21 04/02 1 1.50 101 21 04/02 3 4.10 Blok danych 2 kod region data ilosc wart 101 7 04/01 6 1.50 101 7 04/01 2 3.00 Blok danych 3 kod region data ilosc wart 101 7 04/02 2 3.00 101 7 04/02 1 1.50 25 MDC (3) ORGANIZE BY (kod, data); ORGANIZE BY (kod, data); Oprócz indeksów dla wymiarów, tworzony jest indeks złożony Indeks blokowy: kod Złożony indeks blokowy: kod, data Indeks blokowy: region 26

MDC - optymalizacja zapytań Część wspólna indeksów blokowych select sum(wartosc), kod, kod, data data from from sprzedaz where where kod=20 and and data='20-01-2006' group group by by kod, kod, data data Iloczyn logiczny identyfikatorów bloków Technika stosowana również do indeksów zwykłych i blokowych Lista identyfikatorów bloków indeksu (kod) Lista identyfikatorów bloków indeksu (data) 27 MDC podsumowanie Poprawa wydajności odczytów, ponieważ dane są fizycznie poukładane są na dysku (mniejsza liczba operacji we/wy) Poprawa wydajności modyfikacji danych w porównaniu do tradycyjnych indeksów. Wstawienie rekordu do istniejącego bloku nie wymaga modyfikacji indeksu (indeks wskazuje do bloku, a nie do rekordu) Zagwarantowane sklastrowanie danych. Reorganizacja danych nie jest wymagana 28

Partycjonowanie tabel (1) CREATE CREATE TABLE TABLE sprzedaz sprzedaz ( kod kod BIGINT, BIGINT, region region INT, INT, data data DATE, DATE, ilosc ilosc INT, INT, wartosc wartosc DECIMAL(16,2) DECIMAL(16,2) ) ORGANIZE ORGANIZE BY BY (kod, (kod, region) region) PARTITION PARTITION BY BY RANGE RANGE (data) (data) ( PARTITION PARTITION part1 part1 STARTING STARTING FROM FROM MINVALUE MINVALUE IN IN dane1, dane1, PARTITION PARTITION part2 part2 STARTING STARTING FROM FROM '2006-03-31' '2006-03-31' IN IN dane2, dane2, PARTITION PARTITION part3 part3 STARTING STARTING FROM FROM '2006-07-01' '2006-07-01' IN IN dane3, dane3, PARTITION PARTITION part4 part4 STARTING STARTING FROM FROM '2006-10-01' '2006-10-01' ENDING ENDING '2006-12-31' '2006-12-31' IN IN dane4 dane4 ) 29 Partycjonowanie BD na wiele komputerów CREATE CREATE TABLE TABLE sprzedaz sprzedaz ( id_trans id_trans BIGINT, BIGINT, kod kod BIGINT, BIGINT, region region INT, INT, data data DATE, DATE, ilosc ilosc INT, INT, wartosc wartosc DECIMAL(16,2) DECIMAL(16,2) ) DISTRIBUTE DISTRIBUTE BY BY HASH HASH (id_trans) (id_trans) ORGANIZE ORGANIZE BY BY (kod, (kod, region) region) PARTITION PARTITION BY BY RANGE RANGE (data) (data) ( PARTITION PARTITION part1 part1 STARTING STARTING FROM FROM MINVALUE MINVALUE IN IN dane1, dane1, PARTITION PARTITION part2 part2 STARTING STARTING FROM FROM '2006-03-31' '2006-03-31' IN IN dane2, dane2, PARTITION PARTITION part3 part3 STARTING STARTING FROM FROM '2006-07-01' '2006-07-01' IN IN dane3, dane3, PARTITION PARTITION part4 part4 STARTING STARTING FROM FROM '2006-10-01' '2006-10-01' ENDING ENDING '2006-12-31' '2006-12-31' IN IN dane4 dane4 ) 30

Połą łączenie mechanizmów partycjonowania DISTRIBUTE BY HASH PARTITION BY RANGE ORGANIZE BY DIMENSIONS DISTRIBUTE Tabela jest rozrzucona na trzy partycje bazodanowe TS1 TS2 TS1 TS2 TS1 TS2 Jan Feb Jan Feb Jan Feb PARTITION ORGANIZE North South North South North South North South North South North South East West East West East West East West East West East West 31 Bez partycjonowania Dane 32

Partycjonowanie na wielu komputerach P1 P2 P3 P4 33 + partycjonowanie tabel P1 P2 P3 P4 2 0 0 6 2 0 0 5 34

+ MDC P1 P2 P3 P4 2 0 0 6 2 0 0 5 35 Studium przypadku Operator komórkowy w USA Charakterystyka 10 miliardów transakcji na dzień 32 TB surowych danych Tysiące współbieżnych użytkowników 7,000 użytkowników obsługi klienta do 37000 zapytań/dzień Hurtownia danych ładowana na bieżąco Doładowanie ponad 1 miliarda zdarzeń dziennie (do 1.6 miliarda) DB2 DWE, SAS, 16 x 8 CPU P5 pseries MDC szybsze o 80% usuwanie danych o 43% mniej odwołań I/O DB2 171 TB 36