Analizowanie danych i zarządzanie nimi za pomocą instrukcji MDX

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:

Analizowanie danych za pomocą raportów MDX

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ę.

Aby utworzyć raport MDX, należy:
  1. Zalogować się do internetowego interfejsu Essbase z rolą co najmniej "Menedżer bazy danych".
  2. Przejść do obszaru Analizuj dane:
    • W interfejsie Redwood otworzyć aplikację, otworzyć bazę danych (kostkę) i kliknąć Analizuj dane.
    • W klasycznym interfejsie internetowym rozwinąć aplikację, wybrać kostkę, kliknąć menu "Czynności" po prawej stronie nazwy kostki, a następnie wybrać Analizuj dane.
  3. W widoku analizy, wyświetlić kartę Raporty, po czym nacisnąć przycisk Utwórz.
  4. Wpisać nazwę raportu oraz opcjonalnie dodać opis.
  5. W polu "Zapytanie" wpisać zapytanie MDX odnoszące się do bieżącej kostki. Na przykład:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Zapytanie musi zawierać specyfikację zarówno wierszy, jak i kolumn. Inaczej mówiąc, musi zawierać specyfikację ON COLUMNS i ON ROWS, nawet jeśli dla jednej z tych osi jest określany zbiór pusty {}.

    Ponieważ kontekstem analizowania danych jest aktywna kostka, zlecamy pomijanie opcjonalnej specyfikacji kostki (klauzula FROM) w raportach MDX. Pominięcie klauzuli FROM zapewnia większą elastyczność — jeśli kostka zostanie skopiowana lub jeśli zostanie zmieniona jej nazwa, raport będzie działał z nową kostką.

    W raportach MDX są obsługiwane zmienne substytucyjne, lecz nie są obsługiwane zmienne substytucyjne trybu wykonawczego. Aby uruchomić zapytanie MDX ze zmiennymi substytucyjnymi trybu wykonawczego, należy zapisać zapytanie MDX jako skrypt, a następnie uruchomić ten skrypt z aplikacji Smart View, używając opcji Oblicz ze wstążki Essbase.

  6. Nacisnąć przycisk Weryfikuj w celu sprawdzenia poprawności składni MDX, po czym nacisnąć przycisk Zapisz.
  7. Wybrać z panelu "Raporty" (po lewej stronie) zapisany raport w celu wyrenderowania tabeli.

Więcej informacji o MDX jest dostępnych w podręcznikach MDX i Writing MDX Queries.

Dostęp do raportów MDX

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.

Przykłady raportów MDX

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:

Wynik raportu, pokazujący elementy 100, 200, 300, 400 i Diet z wymiaru "Product"

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:

Wynik raportu, pokazujący (w wierszach) elementy 100, 200, 300, 400 i Diet z wymiaru "Product" W kolumnach są pokazywane elementy atrybutowe: Ounces_32, Ounces_20, Ounces_16 i Ounces_12

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:

Wynik raportu, pokazujący (w wierszach) elementy Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri i Iowa z wymiaru "Market". W kolumnach jest pokazywany wymiar "Profit". Wszystkie wartości danych są ujemne.

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:

Wynik raportu, pokazujący (w wierszach) elementy 100, 200, 300, 400 i Diet z wymiaru "Product" W kolumna są pokazywane ważniejsze rynki, tj. East i Central.

Wstawianie i eksportowanie danych za pomocą instrukcji MDX

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.

Uruchamianie skryptów MDX

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:

Napisanie, wysłanie i uruchomienie skryptu MDX

Poniższa procedura obejmuje napisanie skryptów MDX w edytorze skryptów oraz wysłanie ich do Essbase.

  1. Korzystając z edytora tekstu, napisać skrypt MDX, po czym zapisać go z rozszerzeniem .mdx.

  2. Wysłać skrypt MDX do katalogu aplikacji lub katalogu kostki w obszarze Pliki, w internetowym interfejsie Essbase.

  3. Uruchomić skrypt MDX ze strony Zlecenia lub z aplikacji Smart View za pomocą opcji Oblicz ze wstążki Essbase.

Napisanie skryptu MDX w edytorze skryptów i uruchomienie

Poniższa procedura opisuje, jak przejść do pisania skryptów MDX w edytorze skryptów oraz jak je uruchamiać ze strony Zlecenia.

  1. Na stronie "Aplikacje" otworzyć aplikację, a następnie otworzyć bazę danych (kostkę).

  2. Kliknąć Skrypty, a następnie Skrypty MDX.

  3. Kliknąć Utwórz, wprowadzić nazwę skryptu i kliknąć OK.

  4. Napisać skrypt MDX. Pomocne mogą być drzewo elementów i lista funkcji.

  5. Zweryfikować i zapisać skrypt, po czym zamknąć edytor skryptów.

  6. 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.

  1. Na stronie "Aplikacje" rozwinąć aplikację i kostkę.

  2. Z menu "Czynności" kostki wybrać opcję Zbadaj.

  3. Wybrać opcję Skrypty, a następnie Skrypty MDX.

  4. Kliknąć na znaku + (zostanie otwarty edytor skryptów).

  5. Napisać skrypt MDX. Pomocne mogą być drzewo elementów i lista funkcji.

  6. Zweryfikować i zapisać skrypt, po czym zamknąć edytor skryptów.

  7. 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.

Tworzenie i uruchamianie skryptu MDX przy użyciu narzędzia Cube Designer

Poniższa procedura opisuje, jak tworzyć skrypty MDX za pomocą skoroszytu aplikacji oraz jak je uruchamiać ze strony Zlecenia.

  1. W skoroszycie aplikacji utworzyć arkusz MDX. Zob. Praca w narzędziu Cube Designer z arkuszami MDX.
  2. W polu Nazwa pliku podać nazwę pliku.
  3. Zasygnalizować w polu Wykonaj MDX, czy uruchomić MDX przy tworzeniu kostki. Poprawne wartości to Tak i Nie.
  4. Dodać skrypt MDX pod linią Skrypt.
  5. Zapisać skoroszyt aplikacji.
  6. Skonstruować kostkę. Zob. Tworzenie aplikacji i kostki przy użyciu narzędzia Cube Designer.
  7. Uruchomić skrypt MDX ze strony Zlecenia lub — jeśli jest używana aplikacja Smart View — za pomocą opcji Oblicz ze wstążki Essbase.

Wskazówki dotyczące skryptów MDX

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.

Używanie zmiennych substytucyjnych

Przykłady skryptów MDX

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