Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SQLDay2013_GrzegorzStolecki_RealTimeOLAP

539 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

SQLDay2013_GrzegorzStolecki_RealTimeOLAP

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

×