czwartek, 29 grudnia 2016

Implementacja kostek OLAP

Podstawą większości systemów analitycznych są hurtownie danych. Dane przechowywane są w tabelach ulokowanych na tradycyjnych serwerach bazy danych. Najczęściej w architekturze płatków śniegu lub gwiazd. Czy jest to dobre rozwiązanie? Zdecydowanie tak. Architektura tego typu pozwala na optymalne wykorzystanie tradycyjnych silników bazodanowych z punktu widzenia zadań analitycznych. A czy da się zrobić coś więcej? Przed odpowiedzią na to pytanie należało by się zastanowić jak w rzeczywistości działają silniki bazodanowe wiodących dostawców. I czy wszystkie dobrodziejstwa bazodanowe niezbędne w architekturze OLTP są korzystne z punktu widzenia zadań analitycznych. Prawdopodobnie takie pytanie zadali sobie twórcy pierwszych narzędzi pozwalających na implementacje kostek OLAP.
Nie wchodząc zbyt mocno w szczegóły, jednym z najbardziej rozbudowanych mechanizmów niezwykle istotnym dla systemów OLTP jest obsługa sesji. W systemach transakcyjnych dane są praktycznie bez przerwy dodawane i aktualizowane. Zupełnie inaczej wygląda to w systemach analitycznych. Dane z punktu widzenia użytkowników są praktycznie tylko odczytywane, nie potrzebny jest rozbudowany mechanizm obsługi sesji, ponieważ użytkownicy nie modyfikują danych. Jest to jedna z furtek pozwalających na optymalizację. Okazało się że rezygnując z mechanizmów niezbędnych w systemach OLTP, lecz nie przydatnych z punktu widzenia OLAP, da się stworzyć bardzo szybkie mechanizmy dostępu do danych. Wystarczy do powyższego dodać mechanizm obsługujący miary i wymiary i ... oto mamy to co nazywamy kostką OLAP.
Oczywiście producenci narzędzi do budowy kostek OLAP prześcigają się między sobą implementując coraz więcej mechanizmów pozwalających na przyspieszenie odczytu danych. Silniki OLAP posiadają mechanizmy agregacji danych, przechowywania danych w pamięci RAM, itp.


Poniżej znajduje się grafika obrazującą potencjalny rozwój systemów analitycznych w przedsiębiorstwie:


I Po wdrożeniu systemu informatycznego, pierwsze raporty i analizy wykonywane są na danych transakcyjnych (OLTP)
II Jeżeli ilość danych jest zbyt duża i raporty nie wykonują się w czasie akceptowalnym przez użytkownika, czas na implementację hurtowni danych.
III Implementacja hurtowni danych na pewno znacząco przyspieszyła raporty i analizy, jednak możliwe że nadal istnieją podzbiory danych tak duże że wydajność wykonywanych na nich zapytań nie jest satysfakcjonująca. W tym momencie przychodzi czas na kostki OLAP. Pobiorą dane z hurtowni w (zazwyczaj nocnym) procesie ładowania kostki, i pozwolą na bardzo szybki odczyt w momencie kiedy raport lub analiza będą ich potrzebować.

Brak komentarzy:

Prześlij komentarz