Procesowanie i partycjonowanie SSAS od podszewki

28
Media Partners

Transcript of Procesowanie i partycjonowanie SSAS od podszewki

Page 1: Procesowanie i partycjonowanie SSAS od podszewki

Media Partners

Page 2: Procesowanie i partycjonowanie SSAS od podszewki

Procesowanie i partycjonowanie Analysis Services od podszewki

(300)

Adrian Chodkowski

[email protected]

Page 3: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Adrian Chodkowski

• Konsultant Business Intelligence w Jcommerce S.A

• Certyfikowany specjalista baz danych i Business Intelligence z zakresu technologii Microsoft i IBM

• SQL SERVER: 2005/2008(R2)/2012/2014

• Sharepoint 2010,2013

• Excel

• Presales, Analiza, Architektura, Development, Trening

Page 4: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

O czym nie będziemy mówid?

• Hardware

• ROLAP

• HOLAP

• RT-OLAP

• TABULAR

Page 5: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Agenda

• Pojęcie kostki wielowymiarowej

• Architektura procesowania w SSAS

• Procesowanie wymiarów

• Procesowanie partycji

• Definiowanie partycji

• Lazy Processing

Page 6: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Czym jest kostka?

Page 7: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Architektura pobierania danych w SSAS

Page 8: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Procesowanie wymiarów: plan procesowania

1

1 1

2

3

4

Page 9: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Procesowanie - pierwsze usprawnienia Spójrz na źródło danych!

• Oprzyj tabele w twoim DSV na widokach

• Stworzone widoki zoptymalizuj za pomocą indeksów i hintów (nolock)

• Unikaj złączeo widokach źródłowych

• Zmieo domyślne ustawienia:

• PacketSize domyślnie to tylko 4096 bajtów zmieo na 32767 bajtów

• Sterownik SQL Native Client jest zazwyczaj znacznie wolniejszy niż Microsoft OLE DB Provider for SQL Server

• Maxiumum number of connections ustaw na tyle ile masz równoległych procesowao

• Wyeliminuj konwersje typów i inne operacje jak np. Trimming

Page 10: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Process Full

• ProcessFull – powoduje, że wszystkie połączone z wymiarem partycje muszą byd partycjonowane, należy stosowad w wyjątkowych przypadkach

• Czasochłonne ale akceptowalne gdy do dyspozycji jest duży interwał czasowy na procesowanie

Process Full --> Process Data + Process Index

Page 11: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Process Add

• Najszybsza opcja procesowania

• Dodaje tylko nowe wiersze

• DuplicateKey= IgnoreError

• Możliwa implementacja Update i Delete ale wymaga specjalnego zaprojektowania hurtowni danych

• Jak to zrobid?

Page 12: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

DEMO Process Add

Page 13: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Process Update

Relacje pomiędzy atrybutami przyspieszają procesowanie ale również są istotne z punktu widzenia agregacji.

Relacje pomiędzy wymiarami problemy:

• RIGID – błąd w przypadku wykrycia zmiany w źródle

• FLEXIBLE – w przypadku zmiany indeksy wymagają przeprocesowania

Inteligentnie sprawdza zmiany w wymiarze, bardzo wolny proces (wolniejszy niż ProcessFull).

Page 14: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Process Update – wpływ na agregacje

Rok RIGID Miesiąc RIGID Dzieo

Dział FLEXIBLE Przełożony FLEXIBLE Pracownik

Paostwo RIGID Miasto FLEXIBLE Klient Klient

Miesiąc

Dział

Paostwo RIGID Miasto FLEXIBLE Klient

Rok RIGID Miesiąc RIGID Dzieo

Dział FLEXIBLE Przełożony FLEXIBLE Pracownik

Page 15: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

DEMO Process Update

Page 16: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Zwiększanie wydajności procesowania wymiarów • Usuo z wymiarów niepotrzebne atrybuty

• Dodaj relacje pomiędzy atrybutami

• Używaj ProcessAdd tam gdzie to tylko możliwe

• AttributeHierarchyOrdered=False

• AttributeHierarchyEnabled=False

• AttributeHierarchyOptimizedsState=NotOptimized

• Usuo to co niepotrzebne!

• Processing Group: ByAttribute vs ByTable

Page 17: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Wpływ sortowania na procesowanie

• http://dennyglee.com/2013/09/30/analysis-services-multidimensional-it-is-the-order-of-things/

Page 18: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Partycje

• Dzielą dane w grupach miar na osobno przechowywane i zarządzane jednostki

• Pozwalają na to aby SSAS przeszukiwał tylko określoną częśd danych i szybciej zwracał dane do użytkowników

• Umożliwiają stworzenie planu zasilania danymi

• Znacząco zwiększają wydajnośd procesowania

Page 19: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Strategie partycjonowania

• Partycjonowanie po czasie

• Partycjonowanie mieszane

• Partycje powinny zazwyczaj

mied od 2 do 20 milionów wierszy

• Zbyt duża ich ilośd jest równie szkodliwa co ich brak

Page 20: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

DEMO

Dynamiczne tworzenie partycji z wykorzystaniem SSIS/XMLA

Page 21: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

Eliminowanie partycji

• W dobrze przygotowanym projekcie SSAS odpytywana są tylko partycje zawierające istotne dla danego zapytania dane – pozostałe z nich są eliminowane

• Dobrą praktyką jest ręczne ustawienie właściwości SLICE w przypadku trybu MOLAP

• Ustawienie tej właściwości jest obligatoryjne w przypadku ROLAP

Page 22: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

DEMO Slice

Page 23: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

• Używaj odpowiednich typów danych:

– Dla kluczy - INTEGER

– Dla miar całkowitoliczbowych – INTEGER

– Dla wartości zmienno-przecinkowych -MONEY ,REAL,FLOAT(VARDECIMAL)

• Procesuj partycje dla tej samej grupy miar równolegle

• Używaj ProcessData +ProcessIndex zamiast ProcessFull

• Dostosuj równoległe procesowanie do sprzętu jaki posiadasz

• Dobrą praktyką jest dostosowanie partycjonowania SSAS do partycji w bazie danych

Zwiększanie wydajności procesowania partycji

Page 24: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

• Dane dostępne są dla użytkowników zaraz po pojawieniu

• Agregacje i indeksy tworzone są w późniejszym czasie w tle

• Specjalny wątek sprawdza systematycznie, które partycje wymagają stworzenia indeksów i agregacji

• Porządek sprawdzania ustala właściwośd Processing Priority

• Wątek sprawdza zużycie zasobów i tworzy obiekty dla jak największej ilości partycji aby zmaksymalizowad zużycie zasobów

• Brak możliwości predykcji kiedy SSAS skooczy tworzenie obiektów

Lazy Processing

Page 25: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

• OLAP\LazyProcessing\Enabled

• OLAP\LazyPRocessing\MaxCPUUsage

• OLAP\LazyProcessing\MaxObjectsInParallel

• OLAP\LazyProcessing\SleepIntervalSecs

Lazy Processing

Page 26: Procesowanie i partycjonowanie SSAS od podszewki

SQLDay 2015

DEMO Lazy Processing

Page 27: Procesowanie i partycjonowanie SSAS od podszewki

Dziękuję za uwagę!

Adrian Chodkowski

[email protected]

Page 28: Procesowanie i partycjonowanie SSAS od podszewki

Media Partners