MDX (Multidimensional Expressions) to zaawansowany język operowania na danych i tworzenia zapytań.
Korzystając z języka MDX, można:
Kierować zapytania i tworzyć raporty dotyczące danych i metadanych zawartych w kostkach Essbase
Wstawiać dane do kostki Essbase
Eksportować dane z kostki Essbase
Zapytanie MDX jest to jedna instrukcja MDX mająca dokładnie jeden zbiór wyników, stosowana do jednej kostki.
Raport MDX jest jednym zapytaniem MDX, zapisanym w kontekście kostki. Dostęp do raportów MDX można uzyskać z narzędzia Smart View oraz za pomocą internetowego interfejsu Essbase.
Skrypt MDX jest to plik z rozszerzeniem .mdx
, który można wysłać, a następnie uruchomić z obszaru "Zlecenia" lub w narzędziu Smart View. W skryptach MDX mogą być używane tylko instrukcje MDX wstawiania i eksportu. Chcąc analizować dane w tabeli, należy — zamiast skryptów MDX — używać raportów MDX.
Tematy:
Zapytania można składować i renderować w internetowym interfejsie Essbase, używając raportów MDX. Minimalnym uprawnieniem, zezwalającym na tworzenie raportu, jest "Menedżer bazy danych".
Definiowanie układów za pomocą karty "Analiza doraźna" nie zawsze jest efektywnym sposobem tworzenia zaawansowanych raportów. Wiedząc dokładnie, czego ma dotyczyć zapytanie, można utworzyć zapytanie w języku MDX i przy jego użyciu wypełnić tabelę.
Więcej informacji o MDX jest dostępnych w podręcznikach MDX i Writing MDX Queries.
Sposób pracy z raportami zależy od dostępu do kostki.
Użytkownicy, którzy mający przypisaną co najmniej rolę "Dostęp do bazy danych" poziomu aplikacji, mogą: renderować raporty MDX utworzone przez innych. Dane, wyświetlane w raporcie, zależą od filtrowanego dostępu użytkownika.
Użytkownicy z rolą "Dostęp do bazy danych" mogą, oprócz renderowania raportów, eksportować zbiory wyników w różnych formatach: HTML, CSV, Excel i JSON.
Mogą także wyświetlić zapytanie MDX definiujące raport, klikając na menu Czynności (obok nazwy raportu) i wybierając opcję Wyświetl.
Mając przypisaną rolę co najmniej "Menedżer bazy danych", można używać raportów w taki sam sposób, w jaki mogą to robić użytkownicy z rolą "Dostęp do bazy danych". Dodatkowo można, korzystając z menu Czynności, edytować i usuwać raporty.
Będąc administratorem usługi, można używać przycisku Wykonaj jako w celu uosabiania innych użytkowników i sprawdzani ich praw dostępu do danych. Przydaje się to do testowania filtrów przypisanych do różnych użytkowników.
Zamieszczone tu przykłady demonstrują specjalne typy analiz możliwych do wykonywania za pomocą raportów MDX, które to analizy jest trudno przeprowadzić w widoku "Analizy doraźne".
Poniższe przykłady bazują na kostce Sample Basic.
Raport dot. metadanych
Poniższy przykład zwraca tylko metadane (nazwy elementów) bez danych:
SELECT {[Product].Levels(1).Members} ON ROWS, {} ON COLUMNS
jest zwracana tabela:
Raport dot. atrybutów
W poniższym raporcie są używane (w kolumnach) elementy z wymiaru atrybutowego:
SELECT [Product].Children ON ROWS, [Ounces].Children ON COLUMNS WHERE {Sales}
jest zwracana tabela:
Raport filtrowany
W poniższym raporcie jest używana klauzula WHERE, ograniczająca zapytanie do produktu Cola. Ponadto, występująca w zapytaniu funkcja "Filter" ogranicza rynki poziomu 0 do rynków ze stratami (z ujemnym zyskiem).
SELECT { Profit } ON COLUMNS, Filter( [Market].levels(0).members, Profit < 0) ON ROWS WHERE {Cola}
jest zwracana tabela:
Raport oparty na UDA
W poniższym przykładzie są pokazywane dane "Product" dla elementów wymiaru "Market" mających zdefiniowany przez użytkownika atrybut (UDA) "Major Market". Klauzula WHERE ogranicza zapytanie tak, aby były zwracane tylko dane "Sales".
SELECT [Product].Children ON ROWS, {Intersect(UDA([Market], "Major Market"), [Market].Children)} ON COLUMNS WHERE {Sales}
jest zwracana tabela:
Język MDX oprócz tego, że jest przydatny do analiz opartych na tabelach, umożliwia także kopiowanie i aktualizowanie podzbiorów danych wielowymiarowych.
Klauzula Insert języka MDX umożliwia aktualizowanie kostki z danymi przy użyciu obliczanego (niefizycznego) elementu zdefiniowanego za pomocą języka MDX.
Klauzula MDX Export umożliwia zapisanie i wyeksportowanie wyników zapytania w postaci podzbiorów danych, które można później przejrzeć lub zaimportować
Instrukcje MDX wstawiania i eksportu mogą być uruchamiane jako skrypty MDX.
Więcej informacji o klauzulach MDX Insert i Export jest dostępnych w podręcznikach MDX Insert Specification i MDX Export Specification.
Skryptów MDX można używać, gdy trzeba wykonywać operacje MDX wstawiania lub eksportu danych.
Do analizowania danych w tabeli, należy używać raportów MDX. Zob. Analizowanie danych za pomocą raportów MDX.
Aby skorzystać ze skryptów MDX, należy wybrać proces Workflow:
Poniższa procedura obejmuje napisanie skryptów MDX w edytorze skryptów oraz wysłanie ich do Essbase.
Korzystając z edytora tekstu, napisać skrypt MDX, po czym zapisać go z rozszerzeniem .mdx
.
Wysłać skrypt MDX do katalogu aplikacji lub katalogu kostki w obszarze Pliki, w internetowym interfejsie Essbase.
Uruchomić skrypt MDX ze strony Zlecenia lub z aplikacji Smart View za pomocą opcji Oblicz ze wstążki Essbase.
Poniższa procedura opisuje, jak przejść do pisania skryptów MDX w edytorze skryptów oraz jak je uruchamiać ze strony Zlecenia.
Na stronie "Aplikacje" otworzyć aplikację, a następnie otworzyć bazę danych (kostkę).
Kliknąć Skrypty, a następnie Skrypty MDX.
Kliknąć Utwórz, wprowadzić nazwę skryptu i kliknąć OK.
Napisać skrypt MDX. Pomocne mogą być drzewo elementów i lista funkcji.
Zweryfikować i zapisać skrypt, po czym zamknąć edytor skryptów.
Uruchomić skrypt MDX ze strony Zlecenia (zob. Uruchamianie MDX) lub — jeśli jest używana aplikacja Smart View — za pomocą opcji Oblicz ze wstążki Essbase.
Na stronie "Aplikacje" rozwinąć aplikację i kostkę.
Z menu "Czynności" kostki wybrać opcję Zbadaj.
Wybrać opcję Skrypty, a następnie Skrypty MDX.
Kliknąć na znaku + (zostanie otwarty edytor skryptów).
Napisać skrypt MDX. Pomocne mogą być drzewo elementów i lista funkcji.
Zweryfikować i zapisać skrypt, po czym zamknąć edytor skryptów.
Uruchomić skrypt MDX ze strony Zlecenia (zob. Uruchamianie MDX) lub — jeśli jest używana aplikacja Smart View — za pomocą opcji Oblicz ze wstążki Essbase.
Poniższa procedura opisuje, jak tworzyć skrypty MDX za pomocą skoroszytu aplikacji oraz jak je uruchamiać ze strony Zlecenia.
Podczas pracy ze skryptami MDX należy pamiętać, że:
Skryptów MDX można używać, gdy trzeba wykonywać operacje MDX wstawiania lub eksportu danych.
Chcąc analizować dane w tabeli, należy — zamiast skryptów MDX — używać raportów MDX.
Skrypt MDX może opcjonalnie zawierać zmienne substytucyjne trybu wykonawczego.
Skrypty MDX ze zmiennymi substytucyjnymi trybu wykonawczego, aby mogły być używane w Smart View, muszą w obrębie obliczeniowego polecenia SET RUNTIMESUBVARS (w tym <RTSV_HINT>
) używać składni XML.
Aby ustawić zmienną substytucyjną trybu wykonawczego, tak aby obliczała w Smart View tylko widoczny wycinek danych, należy ustawić jej wartość na POV, a typ danych — na member.
W skryptach MDX, jeśli są uruchamiane przy użyciu internetowego interfejsu Essbase, mogą być używane zmienne substytucyjne, lecz nie mogą być używane zmienne substytucyjne trybu wykonawczego. Skrypty MDX ze zmiennymi substytucyjnymi trybu wykonawczego trzeba uruchamiać z aplikacji Smart View, używając opcji Oblicz ze wstążki Essbase.
Poniżej są zamieszczone przykładowe skrypty MDX, które można uruchamiać — ze strony "Zlecenia" lub z aplikacji Smart View — w odniesieniu do kostki Sample Basic.
Wstawianie MDX
Ten skrypt .mdx
można zapisać i uruchomić ze strony Zlecenia lub — w aplikacji Smart View — z okna dialogowego Oblicz.
INSERT "([Measures].[Payroll])" TO "([Measures].[Revised_Payroll])" INTO [Sample].[Basic] FROM ( SELECT {[Measures].[Payroll]} ON COLUMNS, {Crossjoin (Crossjoin(Descendants([Year]), Crossjoin(Descendants([Scenario]), Descendants([Product]))), Descendants([Market]))} ON ROWS FROM [Sample].[Basic] );
W powyższym przykładzie zakłada się, że do kostki Sample Basic została dodana miara Revised_Payroll.
Eksport MDX
Ten skrypt .mdx
można zapisać i uruchomić ze strony Zlecenia lub — w aplikacji Smart View — z okna dialogowego Oblicz.
EXPORT INTO FILE "sample01" OVERWRITE SELECT {[Mar],[Apr]} ON COLUMNS, Crossjoin({[New York]}, Crossjoin({[Actual],[Budget]}, {[Opening Inventory],[Ending Inventory]})) ON ROWS FROM [Sample].[Basic] WHERE ([100-10])
Gdy skrypt zostanie uruchomiony, w katalogu kostki (podkatalog katalogu plików) zostanie zapisany następujący plik sample01.txt
eksportu:
Market,Scenario,Measures,Mar,Apr New York,Actual,Opening Inventory,2041,2108 New York,Actual,Ending Inventory,2108,2250 New York,Budget,Opening Inventory,1980,2040 New York,Budget,Ending Inventory,2040,2170
Eksport MDX z użyciem zmiennej substytucyjnej trybu wykonawczego
Ten skrypt .mdx
można zapisać i uruchomić w aplikacji Smart View — z okna dialogowego Oblicz.
SET RUNTIMESUBVARS { States = "Massachusetts"<RTSV_HINT><svLaunch> <description>US States</description> <type>member</type> <allowMissing>false</allowMissing> <dimension>Market</dimension> <choice>multiple</choice> </svLaunch></RTSV_HINT>; }; EXPORT INTO FILE "sample002" OVERWRITE SELECT {[Mar],[Apr]} ON COLUMNS, Crossjoin({&States}, Crossjoin({[Actual],[Budget]}, {[Opening Inventory],[Ending Inventory]})) ON ROWS FROM [Sample].[Basic] WHERE ([100-10])
Gdy skrypt zostanie uruchomiony, w katalogu kostki (podkatalog katalogu plików) zostanie zapisany następujący plik sample002.txt
eksportu:
Market,Scenario,Measures,Mar,Apr Massachusetts,Actual,Opening Inventory,-54,-348 Massachusetts,Actual,Ending Inventory,-348,-663 Massachusetts,Budget,Opening Inventory,-160,-520 Massachusetts,Budget,Ending Inventory,-520,-910