SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
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

ROLAP

MOLAP

SQLDay 2013

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 (Proactive
Caching) – 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
<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
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 - PLSSUG
Produkcja: DATA MASTER Maciej Pilecki

Weitere ähnliche Inhalte

Andere mochten auch

SQLDay2013_PawełPotasiński_ParallelDataWareHouse
SQLDay2013_PawełPotasiński_ParallelDataWareHouseSQLDay2013_PawełPotasiński_ParallelDataWareHouse
SQLDay2013_PawełPotasiński_ParallelDataWareHousePolish SQL Server User Group
 
SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...
SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...
SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...Polish SQL Server User Group
 
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer
SQLDay2013_Denny Cherry - Table indexing for the .NET DeveloperSQLDay2013_Denny Cherry - Table indexing for the .NET Developer
SQLDay2013_Denny Cherry - Table indexing for the .NET DeveloperPolish SQL Server User Group
 
38Spotkanie_PLSSUGweWroclawiu_Keynote
38Spotkanie_PLSSUGweWroclawiu_Keynote38Spotkanie_PLSSUGweWroclawiu_Keynote
38Spotkanie_PLSSUGweWroclawiu_KeynoteTobias Koprowski
 
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorldSQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorldPolish SQL Server User Group
 
26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts
26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts
26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scriptsPolish SQL Server User Group
 
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&RunningSQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&RunningPolish SQL Server User Group
 
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012Polish SQL Server User Group
 
CISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganCISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganTobias Koprowski
 
SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...
SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...
SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...Polish SQL Server User Group
 
GoldenLine.pl - Od Startupu do... Startupu :-)
GoldenLine.pl - Od Startupu do... Startupu :-)GoldenLine.pl - Od Startupu do... Startupu :-)
GoldenLine.pl - Od Startupu do... Startupu :-)Karol Traczykowski
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaTobias Koprowski
 
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)Krzysztof Kotowicz
 

Andere mochten auch (19)

SQLDay2013_PawełPotasiński_ParallelDataWareHouse
SQLDay2013_PawełPotasiński_ParallelDataWareHouseSQLDay2013_PawełPotasiński_ParallelDataWareHouse
SQLDay2013_PawełPotasiński_ParallelDataWareHouse
 
SQLDay2013_ChrisWebb_DAXMD
SQLDay2013_ChrisWebb_DAXMDSQLDay2013_ChrisWebb_DAXMD
SQLDay2013_ChrisWebb_DAXMD
 
SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...
SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...
SQL DAY 2012 | DEV Track | Session 6 - Master Data Management by W.Bielski 6 ...
 
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer
SQLDay2013_Denny Cherry - Table indexing for the .NET DeveloperSQLDay2013_Denny Cherry - Table indexing for the .NET Developer
SQLDay2013_Denny Cherry - Table indexing for the .NET Developer
 
38Spotkanie_PLSSUGweWroclawiu_Keynote
38Spotkanie_PLSSUGweWroclawiu_Keynote38Spotkanie_PLSSUGweWroclawiu_Keynote
38Spotkanie_PLSSUGweWroclawiu_Keynote
 
Sql day2015 fts
Sql day2015 ftsSql day2015 fts
Sql day2015 fts
 
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorldSQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
SQLDay2013_Denny Cherry - SQLServer2012inaHighlyAvailableWorld
 
SQLDay2013_MarcinSzeliga_StoredProcedures
SQLDay2013_MarcinSzeliga_StoredProceduresSQLDay2013_MarcinSzeliga_StoredProcedures
SQLDay2013_MarcinSzeliga_StoredProcedures
 
26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts
26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts
26th_Meetup_of_PLSSUG_WROCLAW-ColumnStore_Indexes_byBeataZalewa_scripts
 
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&RunningSQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
SQLDay2013_DennyCherry_GettingSQLServiceBrokerUp&Running
 
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
SQLDay2013_PawełPotasiński_GeografiaSQLServer2012
 
CISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganCISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just Began
 
SQLDay2013_GrzegorzStolecki_KonsolidacjaBI
SQLDay2013_GrzegorzStolecki_KonsolidacjaBISQLDay2013_GrzegorzStolecki_KonsolidacjaBI
SQLDay2013_GrzegorzStolecki_KonsolidacjaBI
 
SQLDay2013_ChrisWebb_CubeDesign&PerformanceTuning
SQLDay2013_ChrisWebb_CubeDesign&PerformanceTuningSQLDay2013_ChrisWebb_CubeDesign&PerformanceTuning
SQLDay2013_ChrisWebb_CubeDesign&PerformanceTuning
 
SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...
SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...
SQL DAY 2012 | DEV Track | Session 8 - Getting Dimension with Data by C.Tecta...
 
GoldenLine.pl - Od Startupu do... Startupu :-)
GoldenLine.pl - Od Startupu do... Startupu :-)GoldenLine.pl - Od Startupu do... Startupu :-)
GoldenLine.pl - Od Startupu do... Startupu :-)
 
Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
 
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)
Kompletny przewodnik po SQL injection dla developerów PHP (i nie tylko)
 
Śniadanie Daje Moc
Śniadanie Daje MocŚniadanie Daje Moc
Śniadanie Daje Moc
 

Ähnlich wie SQLDay2013_GrzegorzStolecki_RealTimeOLAP

PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PROIDEA
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Bartosz Ratajczyk
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQLExpert.pl
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 

Ähnlich wie SQLDay2013_GrzegorzStolecki_RealTimeOLAP (6)

PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
 
ACID - Transakcje
ACID - TransakcjeACID - Transakcje
ACID - Transakcje
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracji
 
Jak używać Magento Developer Toolbar?
Jak używać Magento Developer Toolbar?Jak używać Magento Developer Toolbar?
Jak używać Magento Developer Toolbar?
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 

Mehr von Polish SQL Server User Group

26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session
26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session
26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_sessionPolish SQL Server User Group
 
SQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStolecki
SQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStoleckiSQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStolecki
SQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStoleckiPolish SQL Server User Group
 
SQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGrala
SQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGralaSQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGrala
SQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGralaPolish SQL Server User Group
 
SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...
SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...
SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...Polish SQL Server User Group
 
How to tune a database application without changing a single query - Maciej P...
How to tune a database application without changing a single query - Maciej P...How to tune a database application without changing a single query - Maciej P...
How to tune a database application without changing a single query - Maciej P...Polish SQL Server User Group
 
Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...
Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...
Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...Polish SQL Server User Group
 
Master Data Services – Po co nam kolejna usługa w Sql Server - Mariusz Koprowski
Master Data Services – Po co nam kolejna usługa w Sql Server - Mariusz KoprowskiMaster Data Services – Po co nam kolejna usługa w Sql Server - Mariusz Koprowski
Master Data Services – Po co nam kolejna usługa w Sql Server - Mariusz KoprowskiPolish SQL Server User Group
 

Mehr von Polish SQL Server User Group (8)

SQLDay2013_MarcinSzeliga_DataInDataMining
SQLDay2013_MarcinSzeliga_DataInDataMiningSQLDay2013_MarcinSzeliga_DataInDataMining
SQLDay2013_MarcinSzeliga_DataInDataMining
 
26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session
26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session
26th_Meetup_of_PLSSUG-ColumnStore_Indexes_byBeataZalewa_session
 
SQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStolecki
SQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStoleckiSQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStolecki
SQLDay2011_Sesja03_Fakty,MiaryISwiatRealny_GrzegorzStolecki
 
SQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGrala
SQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGralaSQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGrala
SQLDay2011_Sesja01_ModelowanieIZasilanieWymiarówHurtowniDanych_ŁukaszGrala
 
SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...
SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...
SQLDay2011_Sesja05_MicrosoftSQLServerExecutionPlansFromCompilationToCachingTo...
 
How to tune a database application without changing a single query - Maciej P...
How to tune a database application without changing a single query - Maciej P...How to tune a database application without changing a single query - Maciej P...
How to tune a database application without changing a single query - Maciej P...
 
Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...
Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...
Co nowego w SQL Server 11 – Denali CTP1 - Grzegorz Stolecki, Łukasz Grala i K...
 
Master Data Services – Po co nam kolejna usługa w Sql Server - Mariusz Koprowski
Master Data Services – Po co nam kolejna usługa w Sql Server - Mariusz KoprowskiMaster Data Services – Po co nam kolejna usługa w Sql Server - Mariusz Koprowski
Master Data Services – Po co nam kolejna usługa w Sql Server - Mariusz Koprowski
 

SQLDay2013_GrzegorzStolecki_RealTimeOLAP

  • 1. NASI SPONSORZY I PARTNERZY
  • 3. Agenda • Zasada działania • MOLAP, ROLAP, HOLAP • Proactive Caching SQLDay 2013
  • 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
  • 11. Rozwiązanie • Samodzielne procesowanie magazynu MOLAP. • Wykorzystanie aktywnego buforowania (Proactive Caching) – tylko edycja Enterprise. 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
  • 17. Ustawienia • ForceRebuildInterval – Sztywne ustawienie okresu czasu od ostatniego procesowania obiektu po jakim nastąpi kolejne procesowanie. 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
  • 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. 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
  • 28. NASI SPONSORZY I PARTNERZY Organizacja: Polskie Stowarzyszenie Użytkowników SQL Server - PLSSUG Produkcja: DATA MASTER Maciej Pilecki