DB2 with BLU acceleration rozwiązanie in-memory szybsze niż pamięć operacyjna& Artur Wroński"
Priorytety rozwoju technologii Big Data& Analiza większych zbiorów danych, szybciej& Łatwość użycia& Wsparcie dla istniejących systemów& Wykorzystanie posiadanych umiejętności& Eliminacja zmian w kodzie&
DB2 z BLU Big data, Lightening fast, Ultra easy! 8-25x 10x Przyspieszenie raportów analitycznych Oszczędności przestrzeni dyskowej *) W porównaniu do bazy DB2 bez BLU
Gdy porównaliśmy wydajność tabel DB2 organizowanych kolumnowo z tabelami organizowanymi wierszami, okazało się, że z BLU nasze analityczne zapytania działały średnio 74 razy szybciej. Kent Collins, Architekt Rozwiązań Bazodanowych BNSF Railway, USA W naszym systemach zaobserwowaliśmy aż 10-25 krotne zmniejszenie zapotrzebowania na przestrzeń dyskową, gdy uwzględni się nie tylko samą kompresję, ale także to, że już nie muszę martwić się o indeksy, agregaty i tym podobne. Andrew Juarez, Lider zespołu SAP Basis oraz administratorów baz danych Coca Cola BoJling, USA
Technologie w BLU (DB2 10.5)& Przetwarzanie w całości w pamięci - in- memory Kolumnowa organizacja danych Nowy opatentowany algorytm kompresji& Przetwarzanie wektorowe& Pomijanie danych&
Klasyczne składowanie danych wierszami Blok 1 Kol. 1 Kol. 2 Kol. 3 Kol. 4 Wiersz 1 1 Warszawa 1000 122,32 Wiersz 2 2 Kraków 1200 21,44 Blok 2 Wiersz 3 3 Gliwice 900 28,56 Wiersz 4 4 Poznań 1300 744,21
CREATE TABLE tabela1 ( k1 BIGINT, k2 VARCHAR(30), k3 INT, k4 DECFLOAT) Składowanie danych kolumnami PRIMARY KEY Kol. (k1) 1 Kol. 2 Kol. 3 Kol. 4 Wiersz ORGANIZE 1 BY 1 COLUMN Warszawa 1000 122,32 Wiersz 2 2 Kraków 1200 21,44 Wiersz 3 3 Gliwice 900 28,56 Wiersz 4 4 Poznań 1300 744,21 Blok 1 Blok 2 Blok 3 Blok 4
Korzyści składowania danych kolumnami Mniejsze obciążenie dysku Czytamy tylko te dane, które potrzebujemy! Szybsze złączenia praca tylko na kolumnach dane łączone są do postaci wiersza najpóźniej, jak tylko to możliwe Większa efektywność buforów W buforach umieszczamy tylko aktywne kolumny! Nowe możliwości kompresji Ponieważ dane inaczej są grupowane na dyskach
Rozwój algorytmów kompresji w DB2 x2 x3 x5 x10 < 2006 2006 2009 2012 2013 Bez kompresji DB2 9.1 Kompresja tabel DB2 9.7 +indeksy, +obszary tymczasowe DB2 10.1 DB2 10.5 Kompresja Kompresja adaptacyjna dla tabel kolumnowych (BLU)
Kompresja tabel składowanych wierszami Znaczniki mają stałą długość Z1 <- 00000 Z2 <- 01001010 Blok 1 Kol. 1 Kol. 2 Kol. 3 Kol. 4 Wiersz 1 Z101 Z201001 10010100 101001101 Wiersz 2 Z110 01001010010 10100101 101001010 Blok 2 Wiersz 3 Z111 Z210101 0101010 001Z1 Wiersz 4 0000100 01010101010 0101010 010101001
Kompresja tabel składowanych kolumnami Znaczniki mają zmienną długość, kodowane są całe wartości 0 = Warszawa 1 = Kraków 000 = Poznań 001 = Gliwice 010 = Gdańsk 011 = Wrocław 111 = Katowice 000000 = Kielce 000001 = Sopot Najczęściej występujące miasta (1 bit pokrywa 2 pozycje) Często występujące miasta (3 bity pokrywają 8 pozycji) Rzadziej występujące miasta (6 bitów pokrywa 64 pozycje)
Operacje na skompresowanych kolumnach SELECT COUNT(*) FROM tabela1 WHERE kol.2 = Warszawa Warszawa Kraków Warszawa Warszawa Gdańsk Wrocław Sopot Warszawa Warszawa 0 1 0 0 010 010 000001 0 0 Blok 0 DB2 porównuje skompresowane wartości, także dla predykatów (=, <, >, >=, <=, Between)!
Near oppmal caching Pamięć RAM Kol. 1 Kol. 2 Kol. 3 Kol. 4 Wiersz 1 1 Warszawa 1000 122,32 Wiersz 2 2 Kraków 1200 21,44 Wiersz 3 3 Gliwice 900 28,56 Wiersz 4 4 Poznań 1300 744,21 Blok 1 Blok 2 Blok 3 Blok 4
Rekomendacje dotyczące sprzętu Małe Średnie Duże Dane surowe 1 TB 5 TB 10 TB Minimalne wymagania dla wydajności Rdzenie 8 16 32 Pamięć 64 GB 256 GB 512 GB Wysokie wymagania dla wydajności Rdzenie 16 32 64 Pamięć 128-256 GB 384-512 GB 1024-2048 GB
Pomijanie bloków przy skanowaniu Omijanie bloków danych (ang. data skipping) Wartości w blokach danych są automatycznie opisywane zakresami wartości Te informacje przechowywane są w tzw. systemowych tabelach streszczeń (synopsis tables) Tabela streszczeń zajmuje przeciętnie 0.1 % danych i utrzymywana jest automatycznie Indeksy nie są potrzebne!
Single InstrucFon MulFple Data (SIMD) 2009 2005 2001 2010 2006 2002 2011 2007 2003 2012 2008 2004 2001 2002 2003 2004 2005 2006 2007 Dane Dane Instrukcja Rdzeń procesora Porównaj = 2005 2005 Instrukcja Porównaj = 2005 Rdzeń procesora 2005 Rezultat Rezultat Klasyczne wykorzystanie procesora Wykorzystanie przetwarzania wektorowego
Automatyczne zarządzanie obciążeniem Aplikacje i użytkownicy Tysiące zapytań SQL DB2 DBMS kernel Ograniczona część zapytań SQL konsumuje zasoby SQL Queries. Menadżer obciążenia jest skonfigurowany automatycznie jeśli ustawimy DB2_WORKLOAD=ANALYTICS
Automatyczne utrzymywanie bazy Automatyczny odzysk miejsca Reorganizacja danych nie jest wymagana Przestrzeń jest zwalniana online podczas normalnej pracy Zachowanie z pudełka dla tabel BLU gdy DB2_WORKLOAD=ANALYTICS Ekstenty Kol. 1 Kol. 2 2012 2012 Kol. 3 2013 2013 2013 2013 2012 DELETE * FROM MyTable WHERE Year = 2012 Te ekstenty zawierają usunięte dane 2012
Klasyczne strojenie bazy 1. Opracuj strategię partycjonowania 2. Wybierz metodę kompresji 3. Utwórz tabele 4. Załaduj dane 5. Utwórz pomocnicze struktury Widoki zmaterializowane Indeksy 6. Dostrój pamięć 7. Dostrój parametry I/O 8. Dodaj hinty dla optymalizatora 9. Zbierz statystyki Powtórz VS BLU 1. Utwórz tabele 2. Załaduj dane
Zapytanie < 1s dla tabeli 10 TB * SELECT COUNT(*) from MYTABLE where YEAR = 2010 Założenie: 32 rdzenie, tabela 10 TB z 100 kolumnami, dane z 10 lat DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA 10TB 1TB po kompresji 10x 10GB czytamy 1 kolumnę 1GB omijamy 9/10 bloków DATA 32MB na każdym rdzeniu DATA Tak szybko jak dla 8MB dzięki SIMD DB2 WITH BLU ACCELERATION Poniżej sekundy dla 10 TB tabeli *) optymistyczny scenariusz; czas zapytania silnie zależy od rozkładu danych
Wyniki zapytań Zapytanie SQL z aplikacji 1 Kompilator zapytań DB2 DB2 TUPLE RUNTIME Pełne możliwości języka SQL DB2 RUNTIME Krotki 4 2 DB2 COLUMNAR RUNTIME Mniejszy zakres języka SQL Dane wierszowe 3 Dane BLU (Tabela wierszowa) (Tabela kolumnowa) C1 C2 C3 C4 C5 C6 C7 C8 C1 C2 C3 C4 C5 C6 C7 C8
Akcelerator BLU w cenie edycji DB2 Advanced& Opcje bazy danych Wszystkie* Podstawowe Advanced Workgroup PVU, użytkownik, terabajt Workgroup Socket, użytkownik Advanced Enterprise PVU, użytkownik, terabajt Enterprise PVU, użytkownik Wykorzystane zasoby sprzętowe Ograniczone Nieograniczone 128 GB RAM 16 rdzeni baza 15 TB BLU Klaster AcVve- AcVve Kompresja Ośrodek zapasowy Replikacja kolejkowa Partycjonowanie tabel Menadżer obciążenia Wielo- temperaturowość OLAP Silnik ELT Federacja Workload tuner DataStudio Performance Manger Data Architect
BLU - podsumowanie& Szybciej!& Mniej miejsca na dysku / $ / zł!& Zero strojenia!& Przeźroczystość dla aplikacji (np. dla SAP BW)& dalsze plany rozwojowe dla BLU?& Więcej hp://www.ibmbluhub.com/ &
Dziękuję! Artur Wroński