Analýza a správa dát pomocou MDX

MDX (Multidimensional Expressions) je efektívny jazyk na manipuláciu s dátami a vykonávanie dopytov na dáta.

S príkazom MDX môžete vykonávať tieto úlohy:

  • vykazovať a vykonávať dopyty na dáta a metadáta v kockách Essbase,

  • vkladať dáta do kocky Essbase,

  • exportovať dáta z kocky Essbase.

Dopyt MDX je jediný príkaz MDX s presne jednou množinou výsledkov, ktorá sa vzťahuje na jednu kocku.

Zostava MDX je jediný dopyt MDX uložený v kontexte kocky. Prístup k zostavám MDX získate z aplikácie Smart View a z webového rozhrania Essbase.

Skript MDX je súbor s príponou .mdx, ktorý môžete nahrať a potom spúšťať v časti Úlohy alebo v aplikácii Smart View. V skriptoch MDX môžete používať iba príkazy MDX Insert a Export. Na analýzu dát mriežky je namiesto skriptov MDX vhodnejšie použiť zostavy MDX.

Témy:

Analýza dát pomocou zostáv MDX

Vo webovom rozhraní Essbase môžete ukladať a vykresľovať dopyty pomocou zostáv MDX. Minimálne povolenie požadované na vytvorenie zostavy je na úrovni správcu databázy.

Definovanie rozložení pomocou karty Analýza ad hoc nemusí byť vždy najefektívnejší spôsob vytvorenia zložitej zostavy. Ak viete presne, na čo chcete vykonať dopyt, môžete vytvoriť dopyt pomocou skriptu MDX na vyplnenie mriežky.

Ako vytvoriť zostavu MDX:
  1. Prihláste sa vo webovom rozhraní Essbase s rolou správcu databázy alebo vyššou.
  2. Prejdite na položku Analyzovať dáta:
    • V rozhraní Redwood otvorte aplikáciu, otvorte databázu (kocku) a kliknite na položku Analyzovať dáta.
    • V klasickom webovom rozhraní rozbaľte aplikáciu, vyberte kocku, kliknite na ponuku Akcie vpravo od názvu kocky a vyberte položku Analyzovať dáta.
  3. V zobrazení Analyzovať vyberte kartu Zostavy a kliknite na položku Vytvoriť.
  4. Zadajte názov zostavy, prípadne aj popis.
  5. Do poľa Dopyt zadajte dopyt MDX relevantný pre aktuálnu kocku. Príklad:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Dopyt musí obsahovať špecifikácie osí riadkov aj stĺpcov. Inými slovami, syntax dopytu musí zahŕňať špecifikácie pre parametre ON COLUMNS aj ON ROWS, aj keď je pre jednu os zadaná len prázdna množina {}.

    Keďže kontext funkcie Analyzovať dáta je aktívna kocka, odporúčame vám v zostavách MDX vynechať voliteľnú špecifikáciu kocky (klauzulu FROM). Vynechaním klauzuly FROM sa dosiahne vyššia flexibilita – v prípade, že kocku skopírujete alebo premenujete, zostava bude fungovať aj v novej kocke.

    Substitučné premenné sú v zostavách MDX podporované, pre substitučné premenné runtime to však neplatí. Ak chcete použiť substitučné premenné runtime, uložte dopyt MDX ako skript a spustite ho z aplikácie Smart View pomocou položky Vypočítať na páse s nástrojmi Essbase.

  6. Kliknite na položku Overiť, skontrolujte syntax MDX a potom kliknite na položku Uložiť.
  7. Na paneli Zostavy vľavo vyberte uloženú zostavu na vykreslenie mriežky.

Ďalšie informácie o MDX nájdete v častiach MDX a Písanie dopytov MDX.

Prístup k zostavám MDX

Spôsob práce so zostavami závisí od vášho prístupu ku kocke.

Používatelia, ktorí majú aspoň rolu povoľujúcu prístup do databázy na úrovni aplikácie, môžu vykresliť zostavy MDX vytvorené inými používateľmi. Dáta, ktoré používateľ uvidí v zostave, závisia od prístupu daného používateľa k filtru.

Okrem vykreslenia uložených zostáv môžu používatelia s rolou povoľujúcou prístup do databázy aj exportovať množiny výsledkov v rozličných formátoch, ako sú HTML, CSV, Excel a JSON.

Používatelia s rolou povoľujúcou prístup do databázy môžu aj zobraziť dopyt MDX, ktorý definuje zostavu, a to kliknutím na ponuku Akcie vedľa názvu zostavy a výberom položky Zobraziť.

Ak máte aspoň rolu správcu databázy, zostavy môžete používať rovnakým spôsobom ako používatelia s rolou povoľujúcou prístup do databázy. Okrem toho môžete pomocou ponuky Akcie upraviť a odstrániť zostavy.

Ak ste administrátorom služby, môžete prostredníctvom tlačidla Vykonať ako prevziať rolu iných používateľov a skontrolovať, či majú prístup k dátam. Táto funkcia je užitočná napríklad pri testovaní filtrov priradených k rozličným používateľom.

Príklady zostáv MDX

Príklady skriptov MDX v tejto časti ilustrujú špeciálne typy analýz, ktoré môžete vykonávať pomocou zostáv MDX a ktoré nemožno jednoducho vykonať v zobrazení Analýza ad hoc.

Nasledujúce príklady sú navrhnuté tak, aby ich bolo možné použiť s kockou Sample Basic.

Zostava metadát

Nasledujúci príklad vráti iba metadáta (názvy členov bez akýchkoľvek dát):

SELECT 
  {[Product].Levels(1).Members} 
ON ROWS, 
  {} 
ON COLUMNS

vráti sa mriežka:

Výstup zostavy obsahuje nasledujúce členy dimenzie Produkt: 100, 200, 300, 400 a Diet.

Zostava atribútov

Nasledujúci príklad využíva v stĺpcoch členy z dimenzie s atribútmi:

SELECT 
 [Product].Children 
ON ROWS, 
 [Ounces].Children 
ON COLUMNS 
WHERE {Sales}

vráti sa mriežka:

Výstup zostavy má v riadkoch nasledujúce členy dimenzie Produkt: 100, 200, 300, 400 a Diet. V stĺpcoch sú uvedené nasledujúce členy s atribútmi: Ounces_32, Ounces_20, Ounces_16 a Ounces_12.

Filtrovaná zostava

V nasledujúcom príklade sa používa slicer (klauzula WHERE) na obmedzenie dopytu na výraz Cola. Funkcia Filter navyše obmedzuje trhy úrovne 0 v dopyte na trhy, ktoré majú záporný zisk.

SELECT
  { Profit } 
ON COLUMNS,
  Filter( [Market].levels(0).members, Profit < 0) 
ON ROWS
WHERE {Cola}

vráti sa mriežka:

Výstup zostavy má v riadkoch nasledujúce členy dimenzie Trh: Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri a Iowa. V stĺpcoch je uvedený zisk. Všetky dátové hodnoty sú záporné.

Zostava používateľom definovaných atribútov

Nasledujúci príklad uvádza dáta produktov pre členy dimenzie Trh s používateľom definovaným atribútom (UDA) s názvom „Major Market“. Slicer (klauzula WHERE) obmedzuje dopyt iba na dáta o predaji.

SELECT 
  [Product].Children 
ON ROWS, 
  {Intersect(UDA([Market], "Major Market"), [Market].Children)} 
ON COLUMNS 
WHERE {Sales}

vráti sa mriežka:

Výstup zostavy má v riadkoch nasledujúce členy dimenzie Produkt: 100, 200, 300, 400 a Diet. V stĺpcoch sú uvedené hlavné trhy East a Central.

Vkladanie a exportovanie dát pomocou skriptov MDX

Jazyk MDX je nielen užitočný pri analýze na základe mriežky, ale umožňuje aj kopírovanie a aktualizáciu podmnožín multidimenzionálnych dát.

Klauzula MDX Insert umožňuje aktualizovať kocku s dátami pomocou vypočítaného (nefyzického) člena, ktorého definujete pomocou jazyka MDX.

Klauzula MDX Export umožňuje uložiť a exportovať výsledky dopytu ako podmnožiny dát, ktoré môžete neskôr zobraziť alebo importovať.

Príkazy MDX Insert a Export môžete spúšťať ako uložené skripty MDX.

Ďalšie informácie o klauzulách MDX Insert a MDX Export nájdete v častiach Špecifikácia klauzuly MDX Insert a Špecifikácia klauzuly MDX Export.

Spúšťanie skriptov MDX

Ak potrebujete vykonať operáciu vkladania alebo exportu, použite skripty MDX.

Na analýzu dát mriežky použite zostavy MDX. Pozrite si časť Analýza dát pomocou zostáv MDX.

Ak chcete použiť skripty MDX, vyberte tok činností:

Napísanie, nahranie a spustenie skriptu MDX

Pomocou tohto toku činností môžete písať skripty MDX v textovom editore a nahrávať ich do služby Essbase.

  1. Napíšte skript MDX v textovom editore a uložte ho s príponou .mdx.

  2. Nahrajte skript MDX do adresára aplikácie alebo kocky v ponuke Súbory vo webovom rozhraní Essbase.

  3. Spustite skript MDX z ponuky Úlohy alebo z aplikácie Smart View pomocou položky Vypočítať na páse s nástrojmi Essbase.

Napísanie skriptu MDX v editore skriptu a jeho spustenie

Pomocou tohto toku činností môžete písať skripty MDX v editore skriptu v kocke a spúšťať ich zo sekcie Úlohy.

  1. Na stránke Aplikácie otvorte aplikáciu a potom otvorte databázu (kocku).

  2. Kliknite na položku Skripty a potom na položku Skripty MDX.

  3. Kliknite na položku Vytvoriť, zadajte názov skriptu a potom kliknite na tlačidlo OK.

  4. Napíšte skript MDX. Pomôcť vám môže strom členov a zoznam funkcií.

  5. Overte a uložte skript, potom zatvorte editor skriptu.

  6. Spustite skript MDX z ponuky Úlohy (pozrite si časť Spustenie MDX). Ak používate aplikáciu Smart View, spustite ho pomocou položky Vypočítať na páse s nástrojmi Essbase.

  1. Na stránke Aplikácie rozbaľte aplikáciu a kocku.

  2. V ponuke Akcie kocky kliknite na položku Skontrolovať.

  3. Kliknite na položku Skripty a potom na položku Skripty MDX.

  4. Kliknutím na tlačidlo + otvorte editor skriptu.

  5. Napíšte skript MDX. Pomôcť vám môže strom členov a zoznam funkcií.

  6. Overte a uložte skript, potom zatvorte editor skriptu.

  7. Spustite skript MDX z ponuky Úlohy (pozrite si časť Spustenie MDX). Ak používate aplikáciu Smart View, spustite ho pomocou položky Vypočítať na páse s nástrojmi Essbase.

Vytvorenie skriptu MDX v návrhárovi kociek a jeho spustenie

Pomocou tohto toku činností môžete vytvárať skripty MDX s použitím zošita aplikácie a spúšťať ich z časti Úlohy.

  1. V zošite aplikácie vytvorte pracovný hárok MDX. Pozrite si časť Práca s pracovnými hárkami MDX v návrhárovi kociek.
  2. Do poľa Názov súboru pridajte názov súboru.
  3. V poli Vykonať MDX označte, či sa má MDX spustiť v čase vytvorenia kocky. Platné položky sú Áno a Nie.
  4. Pridajte skript MDX pod riadok Skript.
  5. Uložte zošit aplikácie.
  6. Vytvorte kocku. Pozrite si časť Vytvorenie aplikácie a kocky v návrhárovi kociek.
  7. Spustite skript z ponuky Úlohy. Ak používate aplikáciu Smart View, spustite ho pomocou položky Vypočítať na páse s nástrojmi Essbase.

Pokyny pre skripty MDX

Pri práci so skriptmi MDX používajte nasledujúce pokyny.

  • Skripty MDX používajte na vykonávanie dátových operácií vkladania alebo exportu.

  • Na analýzu mriežky je namiesto skriptov MDX vhodnejšie použiť zostavy MDX.

  • Skripty MDX môžu voliteľne obsahovať substitučné premenné runtime.

    • Na to, aby boli skripty MDX so substitučnými premennými runtime použiteľné v aplikácii Smart View, musia používať syntax XML v rámci príkazu výpočtov SET RUNTIMESUBVARS vrátane príkazu <RTSV_HINT>.

    • Ak chcete nastaviť substitučnú premennú runtime tak, aby vypočítavala iba viditeľný výsek dát v aplikácii Smart View, nastavte hodnotu substitučnej premennej runtime na Uhol pohľadu a nastavte dátový typ na hodnotu člen.

    • Pri spustení z webového rozhrania Essbase môžu vaše skripty MDX používať substitučné premenné, nie však substitučné premenné runtime. Ak chcete v skriptoch MDX používať substitučné premenné runtime, je potrebné spustiť skripty z aplikácie Smart View pomocou položky Vypočítať na páse s nástrojmi Essbase.

Používanie substitučných premenných

Príklady skriptov MDX

Nasledujúca časť obsahuje príklady skriptov MDX, ktoré môžete spustiť vo vzorovej základnej kocke, z ponuky Úlohy alebo v aplikácii Smart View.

MDX Insert

Tento skript .mdx môžete uložiť a spustiť ho z ponuky Úlohy alebo v dialógovom okne Vypočítať v aplikácii Smart View.

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]
);

V príklade vyššie sa vychádza z predpokladu, že ste do kocky Sample Basic predtým pridali mieru Revised_Payroll.

Export MDX

Tento skript .mdx môžete uložiť a spustiť ho z ponuky Úlohy alebo v dialógovom okne Vypočítať v aplikácii Smart View.

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])

Po spustení skriptu sa súbor exportu sample01.txt uloží v adresári kocky katalógu súborov:

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

Export MDX s použitím substitučnej premennej runtime

Tento skript .mdx môžete uložiť a spustiť ho v dialógovom okne Vypočítať alebo v aplikácii Smart View.

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])

Po spustení skriptu sa súbor exportu sample002.txt uloží v adresári kocky katalógu súborov:

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