pobieranie informacji z tabelarycznej bazy danych jest łatwe – wystarczy odpytywać je za pomocą kilku podstawowych funkcji DAX! W tym artykule dowiemy się, jak odpytywać Model tabelaryczny za pomocą niektórych wyrażeń MDX, badać wyniki zapytań DAX i analizować dane z tabel.
wymagania
wymagania wstępne dotyczące zapytań za pomocą MDX to SQL Server Management Studio 2014 lub nowszy z zainstalowaną instancją tabelaryczną SSAS i wdrożoną bazą danych modelu tabelarycznego SSAS.
przygotowanie środowiska
odpytywanie bazy danych modelu tabelarycznego SSAS za pomocą MDX odbywa się w SQL Server Management Studio, w oknie zapytania MDX.
wielowymiarowe wyrażenia (MDX) przegląd
MDX jest językiem wyrażeń, który może kwerendować i analizować wielowymiarowe dane w kostkach OLAP (jak np. wielowymiarowe bazy danych modeli SSAS). Chociaż jest przeznaczony przede wszystkim do odpytywania wielowymiarowej bazy danych modeli, może również odpytywać tabelaryczną bazę danych modeli. Z drugiej strony, funkcje DAX nie mogą odpytywać wielowymiarowych baz danych modeli, ponieważ wyrażenia zapytań DAX są specyficzne dla baz danych modeli tabelarycznych.
strukturalnie, MDX zawiera podaną składnię XMLA. Ponieważ jest podobny do T-SQL, istnieją pewne instrukcje DDL, które mogą zarządzać i organizować wielowymiarowe konstrukcje danych. Dotyczy to wyłącznie wielowymiarowych baz danych modelu SSAS.
w odniesieniu do złożoności, głównymi typami wyrażeń MDX są: stała (numeryczna, łańcuchowa itp.), skalarne i obiektowe. Typy te łączą się w złożone wyrażenia odpowiadające instrukcjom i funkcjom MDX.
mówiąc o zapytaniach do bazy danych modelu tabelarycznego SSAS, wyrażenia w tym artykule są łączone typu Skalar / stała, jako proste wyrażenia Sześcianowe. Wyrażenia te pobierają dane tylko z sześcianu tabelarycznego, pokazują wyniki w kolumnach, porządkują Dane i przygotowują je do dalszej analizy.
odpytywanie bazy danych modelu tabelarycznego SSAS za pomocą MDX
na początku większości zapytań MDX znajduje się instrukcja SELECT, a następnie Instrukcja FROM. Jest bardzo podobny do instrukcji T-SQL (w przeciwieństwie do instrukcji Evaluate w DAX):
1
2
3
|
wybierz z
|
to zapytanie jest najprostsze i zwraca wartość 1 („true”). Oznacza to, że istnieje tabelaryczna baza danych AW.
wybierając tabelę Nazwa Produktu z tabeli produktu, polecenie SELECT W T-SQL wygląda następująco:
1
2
3
|
wybierz dbo.Nazwa produktu od produktu
|
odpowiednie oświadczenie napisane w MDX, byłoby, logicznie:
1
2
3
4
5
|
select
{..
od
|
zwróć uwagę na nawiasy klamrowe {}, które są operatorami takimi jak nawiasy w DAX. Załączają one instrukcje i umożliwiają dodanie złożoności w pisaniu zapytań. Zapytania MDX są niewrażliwe na wielkość liter, podobnie jak zapytania DAX.
to zapytanie pobierze kolumnę nazwy produktu i tabelę produktu z kostki tabelarycznej AW, ale zamiast pokazywać pojedynczą kolumnę, spowoduje błąd wykonania:
głównym powodem jest typ modelu bazy danych i składnia: Wielowymiarowe i tabelaryczne bazy danych mają wymiary, jako kluczową koncepcję, ale MDX w swojej składni rozpoznaje kolumny, wiersze i inne elementy (specyficzne dla wielowymiarowych baz danych) jako osie w zapytaniu – wyobraź je jako osie x, y, z w modelu sześcianu 3D.
podczas odpytywania bazy danych modeli tabelarycznych SSAS, MDX musi rozpoznać w nich co najmniej dwie osie: kolumny i wiersze, aby poprawnie wyświetlić dane:
1
2
3
4
5
6
|
select
{..} w kolumnach,
{..} w wierszach
z
|
teraz ustawiamy osie w zapytaniu, a jego wynik pokazuje:
jak widać, wszystkie wartości kolumny Nazwa Produktu pokazują się na kolumnach w wyniku, a wiersze pokazują odpowiednie lata (w kolumnie rok fiskalny) i liczbę pozycji (w tym przypadku części rowerowe). Dlatego zamiast trzech osi w zapytaniu MDX, podczas odpytywania bazy danych modelu tabelarycznego SSAS wystarczy tylko dwie osie, aby pobrać dane.
ten przykład zapyta tę samą tabelę w obu osiach:
1
2
3
4
5
6
|
select
{..} w kolumnach,
{..} w wierszach
z
|
wynik zapytania pokazuje:
wartość ” 1 „oznacza w tym przypadku” true”, a wartość” (null) ” oznacza brak powiązanych danych w standardowej kolumnie kosztów.
-
przeglądanie określonej wartości (elementu) z podanej kolumny oraz funkcji niepustej
przy MDX można zobaczyć pojedynczą wartość z kolumny w bazie modeli tabelarycznych:
12345wybierz{{..}.Pozycji (53)} na 0zw tym przykładzie wynik pokazuje 53 element (wybrany losowo) z kolumny Nazwa modelu. Zwróć uwagę na zdefiniowaną oś „on 0″ – zamiast definiować ” kolumny „(zobaczymy w dalszych przykładach) lub” wiersze”, że pojedyncza wartość zostanie umieszczona na początkowym początku tabelarycznego widoku wyniku zapytania.
z włączeniem funkcji NON EMPTY wyświetla się jedna obliczona wartość z danego miary (całkowita sprzedaż internetowa) :
123456selectnon empty{.} na kolumnachz -
funkcja krotka
krotka jest określonym zbiorem danych, kombinacją dwóch lub więcej elementów wymiaru (w tym przypadku dwie wartości z kolumny Year).
12345select {.. : ..} w wierszach,{.} na kolumnachzzwróć uwagę na podane wartości z kolumny Year, co oznacza zakres lat, oraz odpowiadające im wartości z Internet Total Margin w wyniku zapytania.
-
wyrażenia potomne i członkowskie
to wyrażenie pokazuje zestaw danych, które są związane z określonymi kolumnami lub miarami. Zazwyczaj te wartości są przedstawiane jako dzieci lub członkowie i jest to związane z hierarchią. Są one uporządkowane hierarchicznie w wyniku zapytania.
12345wybierz . NA KOLUMNACH,..Dzieci na rzędachodw tym przypadku, Internet całkowity środek transportu opiera się na obliczeniach z kolumny frachtu, a tym samym, mogą łączyć.
zauważ, że nawiasy klamrowe nie są obecne w zapytaniu, ale zapytanie jest nadal ważne bez nich.
aby wyświetlić tylko wartości z żądanej kolumny z wyrażeniem podrzędnym, w korespondencji z kolumną niezwiązaną, użyj tego zapytania:
123456select{..} on 0,{..dzieci na 1odUwaga: w tym wyrażeniu, na 0 oznacza na kolumnach, a na 1 oznacza na osi wierszy.
oto jeszcze jeden przykład wykorzystujący wyrażenie członkowskie
12345Wybierz . na kolumnach,..członków na rzędachz -
klauzula WHERE
dodanie klauzuli WHERE jest jednym ze sposobów filtrowania określonych danych z tabeli i jest podobne do klauzuli WHERE w T-SQL:
1234567select{..} w kolumnach,{..} w wierszachodgdzie {..}wartość z kolumny Nazwa Regionu kraju, „Francja” jest związana z kolumną Miasto w tabeli geografii, a zapytanie zawarte w wyniku tylko miasta z Francji.
Instrukcja WHERE jest w rzeczywistości osią slicer, która dodaje dodatkowy wymiar zarówno w wielowymiarowych, jak i tabelarycznych bazach danych modeli.
-
wyrażenie przypadku
to wyrażenie jest porównaniem opartym na logicznym porządku elementów, które zwraca wynik zapytania.
w tym przykładzie utwórz nowy środek o nazwie przegląd ilości sprzedaży odpowiadający podanemu zakresowi wartości z miary całkowitej sprzedaży w Internecie:
123456789101112131415z członkiem . jaksprawa .gdy 69712.49 to 'Great’gdy 1045.6 to 'Bad’else '(normal)’endselect{., .} w kolumnach, {..członków} w wierszachz
mam nadzieję, że podobał Ci się ten artykuł i cieszę się z odpytywania tabelarycznej bazy danych modeli SSAS za pomocą MDX!
- używanie wyrażeń Cube i Subcube
- Referencja języka MDX (MDX)
- podstawy zapytań MDX (usługi analizy)
- Autor
- Ostatnie posty
Daniel pracuje obecnie dla ApexSQL LLC jako inżynier sprzedaży oprogramowania, gdzie specjalizuje się w środowisku BI.
- jak monitorować bazę danych SQL Server tempdb-lipiec 6, 2017
- jak monitorować Całkowity rozmiar indeksów SQL Server-czerwiec 12, 2017
- jak ustawić i używać szyfrowanych połączeń SQL Server-Maj 8, 2017