Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SQL Server Analysis Services Multidimensional

Termin Definicja
SQL Server Analysis Services Multidimensional

SSAS Multidimensional to tryb analityczny oparty na kostkach OLAP, przetwarzający dane w strukturze wielowymiarowej.

Model wielowymiarowy w SQL Server Analysis Services

SQL Server Analysis Services Multidimensional jest trybem analitycznym platformy SSAS, w którym dane są organizowane w kostkach OLAP. Kostka nie jest pojedynczą tabelą, lecz modelem analitycznym łączącym miary, wymiary, hierarchie, atrybuty oraz relacje między nimi. Miary przechowują wartości podlegające analizie, takie jak suma sprzedaży, liczba transakcji albo średnia wartość zamówienia. Wymiary opisują kontekst tych wartości, na przykład czas, produkt, klient lub lokalizację.

Podstawą kostki jest grupa miar powiązana z tabelą faktów w relacyjnej bazie danych. Wymiary mogą zawierać poziomy hierarchii, przykładowo rok, kwartał, miesiąc i dzień. Dzięki temu zapytanie może przechodzić od danych zagregowanych do bardziej szczegółowych. Atrybuty wymiarów, ich klucze oraz relacje atrybutów wpływają na sposób wyliczania agregacji i na wydajność zapytań. Niepoprawnie zaprojektowana hierarchia może powodować błędne wyniki albo zwiększać koszt przetwarzania kostki.

Miary, hierarchie i język MDX

W SSAS Multidimensional miara może korzystać z określonej funkcji agregującej, na przykład Sum, Count, Min, Max albo DistinctCount. Sposób agregacji musi odpowiadać znaczeniu danych. Suma przychodu może być dodawana w czasie, natomiast stan magazynowy lub saldo nie zawsze powinny być sumowane po wszystkich wymiarach. Dla takich danych stosuje się odpowiednie ustawienia zachowania miary, w tym miary póładdytywne, które mogą być sumowane po jednym wymiarze, lecz nie po innym.

Zapytania do kostek wielowymiarowych są wykonywane w języku MDX, czyli Multidimensional Expressions. MDX operuje na zbiorach, krotkach, członkach hierarchii oraz kontekście bieżącego przecięcia wymiarów. Krotka wskazuje pojedynczą kombinację członków wymiarów i miary, a zbiór zawiera wiele takich elementów. Funkcje MDX, takie jak CurrentMember, Children, Descendants, Sum lub CrossJoin, pozwalają budować obliczenia i zestawienia zależne od wybranego kontekstu. Wynik może się zmieniać po zawężeniu filtra czasu, produktu albo innej hierarchii, ponieważ silnik uwzględnia bieżące przecięcie wymiarów.

Oprócz miar fizycznych kostka może zawierać miary obliczeniowe oraz elementy obliczane w wymiarach. Ich definicje są przechowywane w metadanych kostki i są oceniane podczas zapytania albo w ramach określonych mechanizmów obliczeniowych. Błąd w wyrażeniu MDX może skutkować komunikatem składniowym, nieoczekiwaną wartością pustą albo wynikiem poprawnym formalnie, lecz niezgodnym z logiką modelu biznesowego.

Przetwarzanie danych, partycje i agregacje

Dane w kostce muszą zostać przetworzone, zanim będą dostępne zgodnie z aktualnym stanem źródła. Przetwarzanie może obejmować wymiar, grupę miar, partycję albo całą bazę Analysis Services. Operacja Process Full ponownie odczytuje dane i buduje struktury wymagane przez kostkę, natomiast przetwarzanie przyrostowe może rozszerzać istniejącą partycję o nowy zakres danych. Jeśli wymiar zmienił członków, a kostka nie została odpowiednio przetworzona, zapytania mogą zwracać nieaktualne dane lub zgłaszać problemy z zależnościami między wymiarem a grupą miar.

Partycje dzielą dane grupy miar na logiczne fragmenty. Często stosuje się podział według okresu, na przykład roku lub miesiąca, ponieważ ogranicza on zakres danych odczytywanych przy przetwarzaniu i zapytaniach. Każda partycja ma własne ustawienia źródła danych, trybu przechowywania i agregacji. Przy dużych modelach niewłaściwe granice partycji mogą prowadzić do długiego przetwarzania, powielania danych albo nierównomiernego obciążenia serwera.

SSAS Multidimensional obsługuje tryby przechowywania MOLAP, ROLAP i HOLAP. W MOLAP dane oraz agregacje są przechowywane w strukturach Analysis Services, co zwykle pozwala szybko wykonywać zapytania po zakończeniu przetwarzania. ROLAP przechowuje dane faktów w relacyjnej bazie i kieruje zapytania do źródła relacyjnego, natomiast HOLAP łączy relacyjne przechowywanie danych szczegółowych z agregacjami w strukturach SSAS. Agregacje mogą skracać czas odpowiedzi, lecz zajmują miejsce i wydłużają przetwarzanie, dlatego powinny odpowiadać rzeczywistym wzorcom zapytań.

Diagnostyka niespójności w kostce SSAS

Analiza problemu z kostką powinna rozpocząć się od rozdzielenia trzech obszarów: źródła relacyjnego, procesu przetwarzania oraz zapytania MDX. Najpierw porównuje się wartości w tabelach faktów z wynikiem prostego zapytania do kostki, uwzględniając ten sam zakres czasu i te same filtry. Następnie sprawdza się, czy wszystkie partycje zostały przetworzone po zmianie danych, czy klucze wymiarów mają odpowiednie odpowiedniki oraz czy relacje wymiarów z grupą miar są skonfigurowane zgodnie z modelem źródłowym.

Objawem błędnej konfiguracji może być różnica między sumą danych szczegółowych a wartością na poziomie nadrzędnym, brak członków wymiaru, puste komórki albo nieoczekiwane powielanie wartości. Należy wtedy zweryfikować ziarno tabeli faktów, relacje atrybutów, właściwości KeyColumns i NameColumn, zachowanie członków nieznanych oraz definicje miar obliczeniowych. Warto także sprawdzić dzienniki usług Analysis Services i komunikaty z operacji Process, ponieważ wskazują one, czy problem powstał przy odczycie źródła, budowie agregacji, przetwarzaniu wymiaru czy wykonywaniu zapytania.

Przy diagnostyce stanowiska, z którego wykonywane są zapytania MDX, sprawdza się poprawność połączenia, dostępność właściwej instancji SSAS, używane poświadczenia oraz zgodność narzędzia klienckiego z trybem wielowymiarowym. Należy odróżnić awarię aplikacji raportowej od błędu samej kostki: pomocne jest wykonanie tego samego zapytania w innym kliencie i porównanie komunikatów. Dalsze działania obejmują kontrolę konfiguracji źródła danych, ponowne przetworzenie właściwego obiektu oraz potwierdzenie wyniku na kilku poziomach hierarchii.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę