Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Technologie Wytwarzania Oprogramowania Semestr zimowy 2007/08 Studia uzupełniajace magisterskie
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) I II
Plan wykładu 1 Systemy OLAP 2 Podsumowanie
Plan wykładu 1 Systemy OLAP 2 Podsumowanie
Serwery OLAP sa narzędziem do efektywnego wielowymiarowego przetwarzanie ogromnych wolumenów danych.
W systemach OLAP razem z danymi wielowymiarowymi oprócz szczegółowych wartości miar składowane sa również miary zagregowane.
Możliwe agregacje w modelu wielowymiarowym przedstawiane sa często jako krata kuboidów (ang. Cuboid). Przykład dla czterech wymiarów: czas, produkt, lokalizacja, dostawca. Łatwo pokazać operację Roll up i Drill down.
Liczba kuboidów: l = i=1,...,n (L i + 1), gdzie n to liczba wymiarów, a L i jest liczba poziomów hierarchii dla i-tego wymiaru, Przykładowo dla 10 wymiarów i 4 poziomów dla każdego wymiaru: l = 5 10 = 9, 8 10 6.
Rodzaje operatorów agregacji: rozproszone: count(), sum(), max(), min() algebraiczne: ave(), std_dev() holistyczne: median(), mode(), rank()
Serwery OLAP: ROLAP (Relacyjne), MOLAP (Wielowymiarowe), HOLAP (Hybrydowe).
Serwery ROLAP bazuja na relacyjnym modelu danych. Powinny zapewniać optymalizację: denormalizacji relacji (denormalization), tworzenia podsumowań (summarization), tworzenie podziału (partitioning).
SQL3 Rozszerzenia języka SQL GROUP BY ROLLUP, GROUP BY CUBE.
GROUP BY CUBE SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY CUBE (Czas, Produkt, Lokalizacja, Dostawca);
GROUP BY CUBE SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja, Dostawca UNION ALL SELECT Czas, Produkt, Lokalizacja, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja UNION ALL SELECT Czas, Produkt, *, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Dostawca UNION ALL... UNION ALL SELECT *, *, *, *, SUM(Zysk) FROM Sprzedaż;
GROUP BY CUBE SELECT Academic_year, Name, AVG(Grade) FROM Students_grades GROUP BY CUBE(Academic_year, Name); Academic_year Name AVG(Grade) 2001/2 Stefanowski 4.2 2001/2 Słowiński 4.1 2002/3 Stefanowski 4.0 2002/3 Słowiński 3.8 2003/4 Stefanowski 3.9 2003/4 Słowiński 3.6 2003/4 Dembczyński 4.8 2001/2 NULL 4.15 2002/3 NULL 3.85 2003/4 NULL 3.8 NULL Stefanowski 3.9 NULL Słowiński 3.6 NULL Dembczyński 4.8 NULL NULL 3.95
GROUP BY ROLLUP SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY ROLLUP (Czas, Produkt, Lokalizacja, Dostawca);
GROUP BY CUBE SELECT Czas, Produkt, Lokalizacja, Dostawca, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja, Dostawca UNION ALL SELECT Czas, Produkt, Lokalizacja, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt, Lokalizacja UNION ALL SELECT Czas, Produkt, *, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas, Produkt UNION ALL SELECT Czas, *, *, *, SUM(Zysk) FROM Sprzedaż GROUP BY Czas UNION ALL SELECT *, *, *, *, SUM(Zysk) FROM Sprzedaż;
GROUP BY ROLLUP SELECT Academic_year, Name, AVG(Grade) FROM Students_grades G GROUP BY ROLLUP(Academic_year, Name); Academic_year Name AVG(Grade) 2001/2 Stefanowski 4.2 2001/2 Słowiński 4.1 2002/3 Stefanowski 4.0 2002/3 Słowiński 3.8 2003/4 Stefanowski 3.9 2003/4 Słowiński 3.6 2003/4 Dembczyński 4.8 2001/2 NULL 4.15 2002/3 NULL 3.85 2003/4 NULL 3.8 NULL NULL 3.95
Zalety serwerów ROLAP: Skalowalność ze względu na liczbę wymiarów, Skalowalność ze względu na rozmiar danych, Rzadkość danych nie stanowi problemu, Dobrze rozpoznana i dojrzała technologia. Wady: Gorsza wydajność w porównaniu z systemami MOLAP, Potrzeba tworzenia indeksów oraz wykorzystania innych technik optymalizacji.
Serwery MOLAP bazuja na wielowymiarowym modelu danych. Technologia macierzy gęstych i rzadkich: zapamiętywanie macierzy gęstych wprost, z macierzy rzadkich usuwane sa puste komórek i dokonywana jest kompresja pozostałej informacji. Zapamiętywanie zagregowanych podkostek. Brak standardów modelu wielowymiarowego.
Zalety serwerów OLAP: Bardzo wydajny dostęp do danych poprzez bezpośrednie adresowanie, Szybkie odpowiedzi na zapytania, Bardzo często zawieraja obliczone agregaty pośrednie. Wady: Problemy ze skalowalnościa przy dużej liczbie wymiarów, Wymagaja specyficznego systemu zapisu (młoda technologia), Nie sa wydajne w przechowywaniu rzadkich danych.
Przykład Model składa się z wymiarów: klient, produkt, sklep oraz dzień; w przypadku 100 000 klientów, 10 000 produktów, 1 000 sklepów oraz 1 000 dni kostka danych zawiera 1 000 000 000 000 000 komórek! Wiele komórek jest pustych: nie istnieja wszystkie kombinacje klientów, produktów, sklepów oraz dnia.
Język MDX (Multidimensional Expressions): Podstawowe terminy: Wymiar, Hierarchia, Poziom, Członek, Miara, Krotka, Zbiór. MDX SELECT {[CARS].[All CARS].[Chevy], [CARS].[All CARS].[Ford]} ON ROWS, {[DATE].[All DATE].[March], [DATE].[All DATE].[April]} ON COLUMNS FROM MDDBCARS;
Język MDX (Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].[ALL DATE].[MARCH], [DATE].[ALL DATE].[APRIL]} ON ROWS FROM MDDBCARS WHERE ([MEASURES].[SALES_N])
Język MDX (Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].[ALL DATE].[JANUARY]:[DATE].[ALL DATE].[APRIL]} ON ROWS FROM MDDBCARS
Język MDX (Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
Język MDX (Multidimensional Expressions): MDX SELECT {[CARS].[ALL CARS].[FORD].CHILDREN} ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
Język MDX (Multidimensional Expressions): MDX SELECT {([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES_SUM]), ([CARS].[ALL CARS].[CHEVY], [MEASURES].[SALES_N]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES_SUM]), ([CARS].[ALL CARS].[FORD], [MEASURES].[SALES_N]) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
Język MDX (Multidimensional Expressions): MDX SELECT {CROSSJOIN({[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]}, {[MEASURES].[SALES_SUM], [MEASURES].[SALES_N]}) } ON COLUMNS, {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
Język MDX (Multidimensional Expressions): MDX SELECT {CROSSJOIN ({[CARS].[ALL CARS].[CHEVY], [CARS].[ALL CARS].[FORD]}, {[MEASURES].[SALES_SUM], [MEASURES].[SALES_N]}) } ON COLUMNS, NON EMPTY {[DATE].MEMBERS} ON ROWS FROM MDDBCARS
Serwery HOLAP Systemy hybrydowe wspierajace dwa modele danych. Serwer parametryzowany przez użytkownika/administratora systemu.
OLAP w Excelu Excel wspiera zewnętrzne serwery OLAP. Wtyczki do Excela dostraczane przez IBM a, Oracle i SAS. Dobrze znany interfejs tabel przestawnych w Excelu:
OLAP w Excelu
Plan wykładu 1 Systemy OLAP 2 Podsumowanie
Podsumowanie Systemy OLAP służa do efektywnego wielowymiarowego przetwarzania ogromnym wolumenów danych, Podstawowe modele to ROLAP, MOLAP i HOLAP, Z podejściem ROLAP zwiazany jest język SQL3; z podejściem wielowymiarowym język MDX, ROLAP, MOLAP, czy HOLAP?
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Proces ekstrakcji, transformacji i ładowania danych (Proces ETL) I II