4. Tryby magazynowania danych
• ROLAP, HOLAP, MOLAP.
• Tryb magazynowania danych jest niewidoczny dla
aplikacji klienckiej.
• Tryb magazynowania to właściwość partycji i
wymiaru.
SQLDay 2013
5. Tryby magazynowania danych
ROLAP
• Relational OLAP.
• Dane wymiarów i faktów znajdują się w bazie
relacyjnej.
• Jeśli używany jest SQL Server – SSAS może tworzyć
widoki indeksowane na potrzeby agregacji.
SQLDay 2013
6. Tryby magazynowania danych
HOLAP
• Hybrid OLAP.
• Dane faktów przechowywane są w bazie relacyjnej.
• Agregacje przechowywane są na serwerze SSAS.
• Tryb niedostępny dla wymiarów .
SQLDay 2013
7. Tryby magazynowania danych
MOLAP
• Multidimensional OLAP.
• Wszystkie partie danych (wymiary, fakty, agregacje)
przechowywane są na serwerze SSAS.
SQLDay 2013
8. Tryby magazynowania danych
• Jeśli partycja pracuje w trybie MOLAP jeden z
wymiarów musi również pracować w trybie MOLAP.
• Jeśli wymiar jest w trybie ROLAP i w zapytaniu
użyjemy elementów-liści – odczyt wartości faktów
nastąpi z bazy relacyjnej – niezależnie od trybu
partycji.
• Wymiar ROLAP – przy bardzo dużej liczbie
elementów lub przy partycjach tylko ROLAP.
SQLDay 2013
9. Pobieranie danych przez zapytanie
• Bufor w pamięci (cache)
• Magazyn MOLAP
• Magazyn ROLAP
ROLAP
MOLAP
SQLDay 2013
CACHE
10. Problem
• Gdy zmienią się dane w bazie relacyjnej zawartość
bufora CACHE oraz magazynu MOLAP staje się
nieaktualna.
• Konieczne jest przetworzenie (procesowanie)
magazynu MOLAP.
SQLDay 2013
12. Proactive caching - pytania
• Kiedy powinno nastąpić procesowanie – w
ustalonych odstępach czasowych czy gdy zmienią się
dane wejściowe?
• Skąd brać dane dla zapytań podczas procesowania?
– Stara wersja kostki – dane mogą być nieaktualne
– Baza relacyjna – dane aktualne, ale zapytania
wolniejsze
• W jaki sposób SSAS ma być powiadomiony o zmianie
danych wejściowych?
SQLDay 2013
13. Tryby procesowania
• MOLAP MOLAP
– Po notyfikacji zmian następuje procesowanie nowej
wersji obiektu. Po zakończeniu nowa wersja jest
dostępna dla użytkowników.
• MOLAP ROLAP MOLAP
– Po notyfikacji tryb jest zmieniany z MOLAP na ROLAP,
rozpoczyna się procesowanie nowej wersji MOLAP, po
zakończeniu włączana jest nowa wersja, podczas
procesowania na zapytania odpowiada obiekt ROLAP.
SQLDay 2013
14. Częstotliwość odświeżania
• SSAS nie pozwala na dwie równoległe operacje
procesowania tego samego obiektu.
• Jeśli w trakcie procesowania nadejdzie notyfikacja
zmian – aktualne procesowanie jest anulowane,
rozpoczyna się nowe.
• Przy częstych zmianach danych SSAS może wpaść w
otchłań nieprzerwanego procesowania obiektu.
SQLDay 2013
15. Ustawienia
• SilenceInterval
– Okres oczekiwania od otrzymania notyfikacji do
rozpoczęcia procesowania.
• SilenceOverrideInterval
– Okres czasu po jakim bezwarunkowo rozpocznie się
procesowanie obiektu – nawet jeśli nie wystąpił okres ciszy
zdefiniowany przez Silence Interval.
• OnlineMode (Bring Online Immediately)
– Immediate (Włączone): Zapytania będą rozwiązywane z
obiektu w trybie ROLAP.
– OnCacheComplete (Wyłączone): Zapytania nie mogą być
wykonywane, czekamy na nową wersję obiektu.
SQLDay 2013
16. Ustawienia
• Latency
– Ile czasu powinno upłynąć od notyfikacji zmian w
danych do zmiany trybu obiektu z MOLAP na ROLAP
– Inaczej okres po jakim cache MOLAP zostanie usunięty
ze względu na „przeterminowanie”
– Domyślnie (-1) zmiana nie następuje
• AggregationStorage
– Regular: agregacje będą tworzone jako widoki
indeksowane w bazie relacyjnej
– MolapOnly: agregacje w trybie ROLAP nie są tworzone
SQLDay 2013
18. Scenariusze
• Ustawienie odświeżania wymaga uważnego
zdefiniowania właściwości
–
–
–
–
SilenceInterval
SilenceIntervalOverride
Latency
ForceRebuildInterval
SQLDay 2013
19. Scheduled MOLAP
•
•
•
•
•
•
SilenceInterval = -1 (nieskończoność)
SilenceIntervalOverride = -1
Latency = -1
ForceRebuildInterval = 1 dzień
Proactive Caching wyłączony
Uwaga: nie należy polegać na ustawieniu czasu
procesowania, zależy on od LastProcessed.
Precyzyjnie można ustawić procesowanie przy
pomocy SQL Server Agent
SQLDay 2013
20. Automatic MOLAP
•
•
•
•
•
•
SilenceInterval = 10 sec
SilenceIntervalOverride = 10 min
Latency = -1
ForceRebuildInterval = -1
Proactive Caching włączony
Scenariusz optymalny dla okresowych zasileń przez
proces ETL
SQLDay 2013
21. Tajemnice ROLAP
• Nawet w trybie ROLAP SSAS utrzymuje wewnętrzne
bufory pozwalające na szybszą odpowiedź na
podobne zapytania.
• Jest możliwy chwilowy brak synchronizacji danych z
buforem.
• Ponieważ Latency = 0 – każda notyfikacja o zmianie
danych powoduje usunięcie tych buforów.
SQLDay 2013
22. Tryby notyfikacji
• SQL Server
– SSAS śledzi wystąpienie zdarzeń dla wybranej bazy
danych i tabeli przy pomocy SQL Trace.
– Wymagane jest posiadanie przez SSAS uprawnień
administracyjnych (ALTER TRACE).
– Przy bardzo dużym obciążeniu SQL Server może
ominąć zdarzenie – nie ma gwarancji notyfikacji.
SQLDay 2013
24. Tryby notyfikacji
• Scheduled Polling
– SSAS wysyła zapytanie SQL do bazy relacyjnej
– Zapytanie musi zwracać jedną wartość liczbową
– SSAS porównuje wartość otrzymaną z poprzednią –
jeśli są różne następuje notyfikacja
– RefreshInterval określa co jaki okres czasu jest
wysyłane zapytanie
SELECT COUNT(*) FROM dbo.Produkt
SQLDay 2013
25. Tryby notyfikacji
• Enable incremental updates
– Włącza tryb procesowania przyrostowego
– Należy zdefiniować zapytanie (Processing Query),
które będzie zwracać tylko nowe wiersze
– Uwaga! SSAS nie sprawdza, czy nowe wiersze nie
duplikują dotychczasowych faktów – mogą się pojawić
trudne do namierzenia błędy
SQLDay 2013
26. Generalne uwagi
• Operacja procesowania obiektu w SSAS zawsze jest
kosztowna jeśli chodzi o czas i zasoby serwera.
• Mechanizm Proactive Caching powinien być używany
na partycjach zawierających najświeższe dane.
• Należy rozważyć użycie procesowania
inkrementalnego (ProcessAdd).
• Używanie takich samych ustawień dla wielu obiektów
pozwoli serwerowi SSAS na grupowanie operacji
procesowania.
SQLDay 2013