Co DBA musi wiedzieć o SSAS?

40

Widziałem wiele materiałów obejmujących aspekt biznesowy SSAS, ale niewiele o ważnych aspektach administracji i zarządzania.

Z punktu widzenia administrowania wystąpieniem SQL Server Analysis Services, co działający DBA musi wiedzieć o SSAS, aby zarządzać nim poprawnie i wydajnie?

ivanmp
źródło

Odpowiedzi:

50

Krótki przegląd SSAS dla DBA

Więc jesteś SQL Server DBA i właśnie odziedziczyłeś kilka niebieskich kostek do zarządzania. Wydaje się, że szybki kurs na temat zarządzania SSAS jest w porządku.

Z administracyjnego punktu widzenia SSAS jest dość prostą aplikacją, jeśli wymaga dużych zasobów. Jest o wiele prostszy niż platforma DBMS, choć różni się na kilka sposobów. Ponadto istnieje kilka zadań administracyjnych, takich jak optymalizacja oparta na użyciu specyficzna dla SSAS, które mogą być konieczne.

Utwórz kopię zapasową pliku konfiguracyjnego

Wszystkie dane konfiguracyjne znajdują się w pliku o nazwie msdmsrv.ini. To plik XML. Jeśli majstrujesz przy konfiguracji przez SSMS (Połącz się z serwerem, kliknij prawym przyciskiem myszy serwer, wybierz właściwości), możesz ustawić opcje, które spowodują uszkodzenie serwera podczas uruchamiania. Zrób kopię, msmdsrv.inizanim zaczniesz grać z czymkolwiek.

Ważne parametry

Pamięć: SSAS to biblijny świnia pamięci. Jeśli to możliwe, lubi 64-bitowe wersje i dużo pamięci. Parametry „Memory \ LowMemoryLimit” i „Memory \ HighMemoryLimit” kontrolują zasady użycia pamięci. LowMemoryLimit nie jest minimalnym przydziałem pamięci. Jest to próg, w którym SSAS uważa, że ​​w systemie brakuje pamięci i zaczyna wypłukiwać pliki z pamięci podręcznej. HighMemoryLimit to absolutne maksimum, którego użyje.

Zauważ, że SSAS przechowuje swoje dane w plikach (wiele plików - nie ma żadnego mechanizmu równoważnego z aplikacjami), więc często korzysta z buforowania systemu plików O / S dla tych plików. Pamiętaj, że domyślnymi limitami jest odpowiednio około 65% i 80% pamięci komputera, więc jeśli chcesz, aby serwer OLAP współistniał z instancją SQL Server, musisz je wyłączyć, aby nie walczył o pamięć z serwer bazy danych.

Katalogi: obejmuje pięć interesujących parametrów: DataDir, AllowedBrowsingFolders, BackupDir, LogDir i TempDir. Najważniejsze są DataDir i AllowedBrowsingFolders.

  • AllowedBrowsingFolders wpływa na listę folderów, w których serwer OLAP będzie umieszczał swoje pliki danych. Cokolwiek z interfejsem użytkownika (np. Kreator wdrażania) ograniczy twoje opcje do listy w Dozwolonych folderach. Wartością jest rozdzielana potokami („|”) lista katalogów.

  • DataDir jest domyślną ścieżką dla plików. Jeśli zamierzasz podzielić kostkę na wiele woluminów, musisz odpowiednio skonfigurować DozwoloneBrutowanieFolderów.

  • LogDir to miejsce, w którym serwer umieszcza różne pliki dziennika, w tym rejestrator lotu i dzienniki zapytań. Dziennik rejestratora lotów służy do rozwiązywania problemów, a dziennik zapytań OLAP służy do optymalizacji opartej na użyciu (więcej na ten temat później).

  • TempDir to lokalizacja plików tymczasowych, które SSAS tworzy podczas przetwarzania. Jeśli przetwarzasz duże woluminy danych i masz problemy z wydajnością, możesz skorzystać z przeniesienia tego na inny wolumin z danych.

  • BackupDir jest tym, co mówi na puszce.

Różne: Kilka różnych parametrów może również być interesujące. Kilka zestawów, które możesz modyfikować to:

  • DefaultMaxDrillthroughRows: Ogranicza to rozmiar zestawów wierszy szczegółowych. Być może trzeba będzie to zmienić, aby pozwolić na więcej.

  • Wątki / Limity czasu: może być konieczne ich dostosowanie. Nigdy nie musiałem się tym przejmować.

To są podstawy. Może być konieczne dostosowanie innych z określonych powodów, ale możesz odrobić lekcje.

Przewodnik referencyjny właściwości serwera SSAS można znaleźć tutaj.

Operacje

Wdrażanie: Możesz skompilować projekt w BIDS i uzyskać zestaw plików, które można wdrożyć za pomocą kreatora wdrażania. Konieczne może być dostosowanie ścieżek plików dla partycji i kilku innych rzeczy.

Zaprogramowane i grupowe zadania administracyjne: Polecenia są wydawane do SSAS za pośrednictwem interfejsu API usługi internetowej o nazwie XML / A. Microsoft zapewnia interaktywne narzędzie do wydawania konektorów MDX i XML / A. Jeśli musisz osadzić MDX w komendzie XML / A, uważaj na potrzebę użycia znaków ucieczki XML, takich jak &. To nie jest problem z edytorem MDX i narzędziem zapytań w SSMS.

Zadania offline można wykonywać za pomocą różnych zadań przetwarzania kostki SSIS, narzędzia wiersza polecenia o nazwie ascmd.exelub interfejsu API .Net o nazwie AMO. Możesz także uzyskać różne narzędzia PowerShell i tym podobne. ascmd.exepobiera plik XML / A i publikuje go na serwerze. Jeśli musisz programowo fregować plik, być może lepiej będzie pracować z małymi narzędziami .Net, niż próbować manipulować plikami XML ze skryptu .cmd.

Przewodnik operacyjny omawia to bardziej szczegółowo.

Bezpieczeństwo

Bezpieczeństwo w SSAS jest dość uproszczone. Ma rolę globalną „Serwer”, która ma uprawnienia administracyjne w całym systemie. Niestety potrzebujesz „Serwera” do tworzenia baz danych, więc jest całkiem prawdopodobne, że będziesz musiał przyznać go programistom na dowolnych programistycznych serwerach OLAP.

Inne zabezpieczenia można zastosować tylko do indywidualnych schematów kostki. Możesz przyznać uprawnienia do odczytu, przetwarzania, przeglądania szczegółowego, zapisu wstecznego i podobnych czynności na poszczególnych elementach rolom w ramach schematu. Role w schematach OLAP można definiować w ramach BIDS i wdrażać z kostką. Grupy AD lub użytkownicy mogą być przypisani do tych ról za pośrednictwem SSMS.

Przykład programowego zarządzania członkostwem w rolach można znaleźć tutaj.

Optymalizacja oparta na użyciu

Jako DBA możesz wziąć udział w tym, ale najpierw trochę więcej o fizycznym magazynowaniu. SSAS działa poprzez obliczanie i utrwalanie wstępnie zbudowanych agregatów wraz z danymi podstawowymi. Jeśli kwerenda może zostać spełniona przez trafienie w agregację, serwer OLAP użyje jej zamiast danych podstawowych, ponieważ agregacja będzie wymagała znacznie mniej operacji we / wy, a zatem szybsze będzie odzyskiwanie danych.

Musisz jednak ustalić, które agregaty mają zostać obliczone (tj. Dla jakich kombinacji atrybutów wymiarów wygenerować zestawienia). BIDS ma narzędzie, które zgadnie i wygeneruje dla Ciebie. Niektóre narzędzia, takie jak pomocnik BIDS , umożliwiają także ręczną edycję agregatów.

Optymalizacja oparta na użyciu polega na pobraniu dziennika rzeczywistych zapytań wysłanych na serwer, a następnie wykorzystaniu tego dziennika do opracowania zestawu agregatów, które byłyby optymalne dla tych zapytań. Jako DBA możesz skonfigurować rejestrowanie zapytań OLAP w celu przechwytywania tych danych, a następnie uruchomić optymalizację na kostce. Tekst dotyczący konfigurowania dziennika zapytań można znaleźć tutaj.

Narzędzie do tego jest nazywane „Kreatorem optymalizacji opartym na użyciu”. Żyje w SSMS i można go znaleźć, otwierając partycję w eksploratorze i wybierając „Optymalizację opartą na wykorzystaniu” z menu po kliknięciu prawym przyciskiem myszy.

Przewodnik po wydajności wprowadza się bardziej szczegółowo.

MDX

MDX wygląda trochę jak SQL, ale działa zupełnie inaczej. Traktat na temat „MDX dla programistów SQL” jest odrębnym tematem. Sugeruję przeczytanie niektórych samouczków i / lub zdobycie książki na ten temat. Dodatkowo, przyjaźni ludzie tutaj na dba.se mogą pomóc w razie pytań.

MDX nie ma żadnej koncepcji filtrowania wierszy. Język ma wiele ustawionych operacji, aby dowiedzieć się, co wyświetlać na różnych osiach zapytania 1 , a także „WYBIERZ”. Do withdefiniowania miar i zestawów można używać instrukcji, które wyglądają trochę jak CTE.

Niektóre wprowadzające zasoby programistyczne MDX można znaleźć tu i tutaj (ten jest dość stary i bardzo długi). Jest też kilka dobrych książek na ten temat; to pytanie SO ma dość rozrzutu do zasobów SSAS.

1 Chociaż ma niepuste operatory, które ograniczają wyniki do kombinacji, które faktycznie zawierają dane. Większość zapytań MDX polega na określeniu, które wycinki mają być wyświetlane na osiach, a niepuste operatory będą konieczne, aby uniknąć zwracania przez kwerendę ilości pustych komórek na poziomie kombinatorycznym.

ConcernedOfTunbridgeWells
źródło
5
Doskonałe informacje… szczególnie porady „możesz ustawić opcje, które spowodują uszkodzenie serwera podczas uruchamiania”.
SqlACID
To świetna odpowiedź! Dzięki!
Marian
6

Niektóre odpowiedzi dotyczące administracji SSAS można znaleźć w tym obszernym białym dokumencie SQL Server 2008 R2 Analysis Services Operations Guide . Tak zaczyna się wprowadzenie:

W tym przewodniku znajdziesz informacje na temat testowania i uruchamiania Microsoft SQL Server Analysis Services w SQL Server 2005, SQL Server 2008 i SQL Server 2008 R2 w środowisku produkcyjnym. Ten przewodnik koncentruje się na tym, jak testować, monitorować, diagnozować i usuwać problemy produkcyjne nawet na największych skalowanych kostkach. Ten dokument zawiera także wskazówki, jak skonfigurować serwer, aby uzyskać najlepszą możliwą wydajność.

Oczywiście jest to skierowane do DBA / adminów. Jeśli tworzysz również aplikacje przy użyciu SSAS, możesz również zapoznać się z oficjalnym dokumentem Analysis Services 2008 Performance Guide

DaniSQL
źródło
Dziękuję, DaniSQL. Znalazłem również ten artykuł i prawdopodobnie powinienem o nim wspomnieć w tym pytaniu (przepraszam!), Ale szukałem bardziej łagodnego wprowadzenia na ten temat i opinii opartych na doświadczeniu naszych kolegów DBA tutaj.
ivanmp,
2
Nie mogę mówić z doświadczenia, ponieważ sam nie pracuję bezpośrednio nad SSAS :-( Po prostu staram się zapoznać z niektórymi częściami białej księgi, o których wspomniałem powyżej, a także odbyłem dwudniowy trening z prac Pragmatic kilka miesięcy wróć i przeczytaj książkę amzn.to/za1ypP autorstwa trenerów, a także bardzo podstawowe wprowadzenie można znaleźć w rozdziale 17 tej książki - Początek, Administracja Microsoft® SQL Server® 2008 ( amzn.to/xnKAWw )
DaniSQL