Analýza a správa dat pomocí jazyka MDX

MDX (Multidimensional Expressions) představuje výkonný jazyk pro manipulaci s daty a dotazování.

Jazyk MDX umožňuje provádět následující:

  • dotazovat se na data a metadata v krychlích Essbase a zobrazovat je v sestavách,

  • vkládat data do krychle Essbase,

  • exportovat data z krychle Essbase.

Dotaz MDX představuje jeden příkaz MDX, který poskytuje přesně jednu sadu výsledků, která se vztahuje na jednu krychli.

Sestava MDX představuje jeden dotaz MDX uložený v kontextu krychle. Sestavy MDX jsou k dispozici v komponentě Smart View a ve webovém rozhraní aplikace Essbase.

Skript MDX je soubor s příponou .mdx, který lze nahrát a poté spustit z nabídky Úlohy nebo z komponenty Smart View. Ve skriptech MDX lze používat pouze výrazy MDX Insert a Export. K analýze dat tabulek je vhodnější používat místo skriptů MDX spíše sestavy MDX.

Témata:

Analýza dat pomocí sestav MDX

Dotazy můžete ukládat a vykonávat ve webovém rozhraní aplikace Essbase pomocí sestav MDX. K vytvoření sestavy je nutné minimálně oprávnění Správce databází.

Definovat rozvržení pomocí záložky Ad hoc analýza není vždy tím nejefektivnějším způsobem, jak vytvořit složitější sestavu. Pokud víte přesně, na co se chcete dotazovat, můžete pomocí MDX vytvořit dotaz pro vyplnění mřížky.

Sestavu MDX vytvoříte takto:
  1. Přihlase se do webového rozhraní aplikace Essbase s rolí Správce databází nebo vyšší.
  2. Přejděte do zobrazení Analyzovat data:
    • rozhraní Redwood otevřete aplikaci, otevřete databázi (krychli) a poté klikněte na volbu Analyzovat data.
    • klasickém webovém rozhraní rozbalte aplikaci, vyberte krychli, klikněte na nabídku Akce vpravo od názvu krychle a vyberte položku Analyzovat data.
  3. V zobrazení Analýza vyberte záložku Sestavy a klikněte na příkaz Vytvořit.
  4. Zadejte název a případně i popis sestavy.
  5. Do pole Dotaz zadejte dotaz MDX relevantní pro aktuální krychli. Například:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Dotaz musí obsahovat specifikaci os řádků i sloupců. Jinými slovy, syntaxe dotazu musí obsahovat specifikace ON COLUMNS a ON ROWS, a to i tehdy, jestliže je pro některou osu zadána prázdná množina {}.

    Protože kontextem zobrazení Analýza dat je aktivní krychle, doporučujeme volitelnou specifikaci krychle (slovo CLAUSE) ze sestavy MDX vynechat. Když vynecháte slovo FROM, získáte větší flexibilitu – po zkopírování nebo přejmenování krychle bude sestava fungovat v nové krychli.

    V sestavách MDX jsou podporovány substituční proměnné, ale pro substituční runtime proměnné to neplatí. Chcete-li použít substituční runtime proměnné, uložte dotaz MDX do skriptu a v modulu Smart View jej spusťte pomocí příkazu Vypočítat na pásu karet aplikace Essbase.

  6. Kliknutím na příkaz Ověřit zkontrolujte syntaxi MDX a klikněte na tlačítko Uložit.
  7. Na panelu Sestavy vlevo vyberte uloženou sestavu; tím dojde k vykreslení mřížky.

Další informace o MDX naleznete v části MDXPsaní dotazů MDX.

Přístup k sestavám MDX

Způsob práce se sestavami závisí na vašem přístupu ke krychli.

Uživatelé s minimální rolí Přístup k databázi na úrovni aplikací si mohou generovat uložené sestavy MDX vytvořené jinými uživateli. Data, která se uživateli v sestavě zobrazí, závisí na filtraci přístupu daného uživatele.

Kromě generování uložených sestav mohou uživatelé s oprávněním Přístup k databázi exportovat sady výsledků v různých formátech: HTML, CSV, Excel a JSON.

Uživatelé s oprávněním Přístup k databázi si též mohou zobrazit dotaz MDX, který sestavu definuje; stačí kliknout na nabídku Akce u názvu sestavy a vybrat příkaz Zobrazit.

Máte-li alespoň roli Správce databází, můžete se sestavami pracovat stejným způsobem jako uživatelé s oprávněním Přístup k databázi. Dále můžete pomocí nabídky Akce sestavy upravovat a odstraňovat.

Máte-li oprávnění Správce služeb, můžete také pomocí tlačítka Vykonat jako zastoupit jiného uživatele a zkontrolovat tak jeho přístup k datům. Tato volba je užitečná při testování filtrů přiřazených různým uživatelům.

Příklady sestav MDX

Příklady sestav MDX uvedené v této sekci ukazují speciální typy analýz, které můžete pomocí sestav MDX provádět a které by bylo obtížné provádět v zobrazení Ad hoc analýza.

Následující příklady jsou určeny pro použití v krychli Sample Basic.

Sestava metadat

Následující příklad vrátí pouze metadata (názvy prvků, ale žádná data):

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

Vrácená mřížka:

Výstup sestavy ukazuje prvky Produkt 100, 200, 300, 400 a Dieta

Sestava atributů

V následujícím příkladu jsou jako sloupce použity prvky dimenze atributů:

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

Vrácená mřížka:

Výstup sestavy ukazuje na řádcích prvky Produkt 100, 200, 300, 400 a Dieta. U sloupců jsou zobrazeny prvky atributů: Ounces_32, Ounces_20, Ounces_16 a Ounces_12

Filtrovaná sestava

V následujícím příkladu je použita výseč (slovo WHERE), která omezuje dotaz na značku Cola. Funkce Filtr dále omezí trhy úrovně 0 v dotazu na ty z nich, které vykazují záporný zisk.

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

Vrácená mřížka:

Na řádcích výstupní sestavy jsou zobrazeny prvky typu Market: Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri a Iowa. Ve sloupcích je uvedena hodnota Zisk. Všechny hodnoty dat jsou záporné.

Sestava UDA

Následující příklad ukazuje data Produkt pro prvky dimenze Trh, u kterých je použit uživatelský atribut (UDA) „Významný trh“. Výseč (slovo WHERE) omezuje dotaz pouze na data Prodej.

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

Vrácená mřížka:

Výstup sestavy ukazuje na řádcích prvky Produkt 100, 200, 300, 400 a Dieta. Ve sloupcích jsou uvedeny významné trhy Východ a Střed.

Vkládání a export dat pomocí jazyka MDX

Kromě toho, že je jazyk MDX užitečný k analýze na základě mřížky, umožňuje také kopírovat a aktualizovat podmnožiny vícerozměrných dat.

Klauzule vložení příkazu MDX umožňuje aktualizovat krychli pomocí vypočteného (nefyzického) prvku, který pomocí příkazu MDX definujete.

Pomocí klauzule exportu příkazu MDX lze ukládat a exportovat výsledky dotazů jako podmnožiny dat, které lze zobrazit nebo importovat později.

Příkazy MDX pro vložení a export lze spouštět jako uložené skripty MDX.

Další informace o příkazech MDX pro vložení a export najdete v části Zadání vložení příkazu MDXZadání exportu příkazu MDX.

Spouštění skriptů MDX

Potřebujete-li provádět operace vložení nebo exportu dat, použijte skripty MDX.

K analýze dat v tabulkách používejte sestavy MDX. Prostudujte si téma Analýza dat pomocí sestav MDX.

Chcete-li použít skripty MDX, vyberte pracovní postup:

Zápis, odeslání a spuštění skriptu MDX

Tento pracovní postup slouží k psaní skriptů MDX v textovém editoru a k jejich nahrávání do aplikace Essbase.

  1. Napište skript MDX v textovém editoru a uložte jej s příponou .mdx.

  2. Odešlete skript MDX do adresáře aplikace nebo krychle v nabídce Soubory webového rozhraní systému Essbase.

  3. Skript MDX můžete spustit ze stránky Úlohy nebo z nástroje Smart View pomocí příkazu Vypočítat na pásu karet aplikace Essbase.

Zápis skriptu MDX v editoru skriptů a jeho spuštění

Tento pracovní postup použijte k zapsání skriptů MDX v editoru skriptů v krychli. Skripty poté spusťte z nabídky Úlohy.

  1. Na stránce Aplikace otevřete aplikaci a poté otevřete databázi (krychli).

  2. Klikněte na položku Skripty a poté na volbu Skripty MDX.

  3. Klikněte na volbu Vytvořit, zadejte název skriptu a klikněte na tlačítko OK.

  4. Napište skript MDX. Jako nápověda slouží strom prvků a seznam funkcí.

  5. Skript ověřte a uložte. Poté editor skriptů zavřete.

  6. Prostřednictvím volby Úlohy (viz Spustit MDX) spusťte skript MDX. Pokud využíváte modul Smart View, použijte volbu Vypočítat na pásu karet aplikace Essbase.

  1. Na stránce Aplikace rozbalte aplikaci a krychli.

  2. V nabídce krychle Akce klikněte na volbu Zkontrolovat.

  3. Klikněte na volbu Skripty a poté na volbu Skripty MDX.

  4. Kliknutím na tlačítko + otevřete editor skriptů.

  5. Napište skript MDX. Jako nápověda slouží strom prvků a seznam funkcí.

  6. Skript ověřte a uložte. Poté editor skriptů zavřete.

  7. Prostřednictvím volby Úlohy (viz Spustit MDX) spusťte skript MDX. Pokud využíváte modul Smart View, použijte volbu Vypočítat na pásu karet aplikace Essbase.

Vytvoření a spuštění skriptu MDX v nástroji Cube Designer

K vytváření skriptů MDX pomocí sešitu aplikace a jejich spouštění z nabídky Úlohy použijte tento pracovní postup.

  1. V sešitu aplikace vytvořte list MDX. Prostudujte si téma Práce s listy MDX v nástroji Cube Designer.
  2. Zadejte název souboru do pole Název souboru.
  3. V poli Spustit MDX uveďte, zda se má MDX spustit v době vytvoření krychle. Platné vstupy jsou AnoNe.
  4. Pod řádek Skript přidejte skript MDX
  5. Uložte sešit aplikace.
  6. Sestavte krychli. Prostudujte si téma Tvorba aplikace a krychle v nástroji Cube Designer.
  7. Prostřednictvím volby Úlohy spusťte skript MDX. Pokud využíváte modul Smart View, použijte volbu Vypočítat na pásu karet aplikace Essbase.

Pokyny pro skripty MDX

Při práci se skripty MDX použijte následující vodítka.

  • Potřebujete-li provádět operace vložení nebo exportu dat, použijte skripty MDX.

  • Pro analýzu mřížky používejte místo skriptů MDX sestavy MDX.

  • Skripty MDX mohou volitelně obsahovat substituční runtime proměnné.

    • Skripty MDX se substitučními proměnnými běhového prostředí musejí ve výpočetním příkazu SET RUNTIMESUBVARS používat syntaxi XML včetně <RTSV_HINT>, aby je bylo možné použít v modulu Smart View.

    • Chcete-li nastavit substituční proměnnou běhového prostředí tak, aby v modulu Smart View docházelo k výpočtu pouze viditelného řezu dat, nastavte pro substituční proměnnou běhového prostředí hodnotu POV a pro typ dat hodnotu prvek.

    • Spouštíte-li skript z webového rozhraní systému Essbase, mohou skripty MDX používat substituční proměnné, ale nikoli substituční proměnné běhového prostředí. Chcete-li ve skriptech MDX použít substituční runtime proměnné, musíte skripty spouštět z modulu Smart View kliknutím na volbu Vypočítat na pásu karet aplikace Essbase.

Používání substitučních proměnných

Příklady skriptů MDX

Níže jsou uvedeny příklady skriptů MDX, které můžete spustit v Základní vzorové krychli buď prostřednictvím volby Úlohy, nebo v modulu Smart View.

Vložení skriptu MDX

Tento skript .mdx lze uložit a spustit jej prostřednictvím volby Úlohy nebo z dialogu Vypočítat v modulu 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ýše uvedený příklad předpokládá, že již máte do základních vzorků přidán ukazatel Revised_Payroll.

Export skriptu MDX

Tento skript .mdx lze uložit a spustit jej prostřednictvím volby Úlohy nebo z dialogu Vypočítat v modulu 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 spuštění skriptu se v adresáři krychle katalogu souborů uloží následující soubor exportu sample01.txt:

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 skriptu MDX pomocí substituční runtime proměnné

Tento skript .mdx lze uložit a spustit jej prostřednictvím dialogu Vypočítat v modulu 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 spuštění skriptu se v adresáři krychle katalogu souborů uloží následující soubor exportu sample002.txt:

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