View
151
Download
0
Category
Preview:
Citation preview
NASI SPONSORZY I PARTNERZY
OLAP czasu rzeczywistego
Grzegorz Stolecki
Agenda
• Zasada działania
• MOLAP, ROLAP, HOLAP
• Proactive Caching
SQLDay 2013
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
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
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
Tryby magazynowania danych
MOLAP
• Multidimensional OLAP.
• Wszystkie partie danych (wymiary, fakty, agregacje) przechowywane są na serwerze SSAS.
SQLDay 2013
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
Pobieranie danych przez zapytanie
• Bufor w pamięci (cache)
• Magazyn MOLAP
• Magazyn ROLAP
SQLDay 2013
ROLAP MOLAP CACHE
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
Rozwiązanie
• Samodzielne procesowanie magazynu MOLAP.
• Wykorzystanie aktywnego buforowania (ProactiveCaching) – tylko edycja Enterprise.
SQLDay 2013
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
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
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
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
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
Ustawienia
• ForceRebuildInterval
– Sztywne ustawienie okresu czasu od ostatniego procesowania obiektu po jakim nastąpi kolejne procesowanie.
SQLDay 2013
Scenariusze
• Ustawienie odświeżania wymaga uważnego zdefiniowania właściwości
– SilenceInterval
– SilenceIntervalOverride
– Latency
– ForceRebuildInterval
SQLDay 2013
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
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
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
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
Tryby notyfikacji
• Client Initiated
– Aplikacja kliencka wysyła do serwera SSAS komendę XML/A NotifyTableChange
SQLDay 2013
<Command>
<NotifyTableChange>
<Provider>SQLOLEDB</Provider>
<DataSource>localhost</DataSource>
<InitialCatalog>AdventureWorksDW</InitialCatalog>
<TableNotifications>
<TableNotification>
<DBTableName>FactInternetSales</DBTableName>
<DBSchemaName>dbo</DBSchemaName>
</TableNotification>
</TableNotifications>
</NotifyTableChange>
</Command>
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
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
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
Dziękuję za uwagę!
Q & A
SQLDay 2013
NASI SPONSORZY I PARTNERZY
Organizacja: Polskie Stowarzyszenie Użytkowników SQL Server - PLSSUGProdukcja: DATA MASTER Maciej Pilecki
Recommended