Analysera och hantera data med MDX

MDX (Multidimensional Expressions) är ett kraftfullt språk för datahantering och frågor.

Med MDX kan du:

  • Fråga och rapportera gällande data och metadata i Essbase-kuber

  • Infoga data i en Essbase-kub

  • Exportera data från en Essbase-kub

En MDX-fråga är en enskild MDX-sats med exakt en resultatuppsättning som gäller för en enda kub.

En MDX-rapport är en enskild MDX-sats som sparas i kubkontexten. Du kan komma åt MDX-rapporter från Smart View och från Essbase-webbgränssnittet.

Ett MDX-skript är en fil med ett .mdx-tillägg som du kan ladda upp och sedan köra från Jobb eller i Smart View. MDX-satserna Insert och Export kan användas i MDX-skript. Om du vill analysera rutnätsdata använder du MDX-rapporter snarare än MDX-skript.

Avsnitt:

Analysera data med MDX-rapporter

Du kan lagra och återge frågor i webbgränssnittet för Essbase med hjälp av MDX-rapporter. Den lägsta behörighet som krävs för att skapa en rapport är databasansvarig.

Att definiera layouter med fliken Ad hoc-analys är kanske inte alltid det effektivaste sättet att skapa en sofistikerad rapport. Om du vet exakt vad du vill fråga om kan du använda MDX för att skapa en fråga som fyller i rutnätet.

Så här skapar du en MDX-rapport:
  1. Logga in på webbgränssnittet för Essbase med rollen som databasansvarig eller högre.
  2. Gå till Analysera data:
    • I Redwood-gränssnittet öppnar du applikationen och därefter databasen (kuben). Klicka sedan på Analysera data.
    • I det klassiska webbgränssnittet expanderar du applikationen, väljer en kub, klickar på menyn Åtgärder till höger om kubnamnet och väljer Analysera data.
  3. Välj fliken Rapporter och klicka på Skapa i vyn Analys.
  4. Ange ett namn för rapporten, och eventuellt en beskrivning.
  5. I fältet Fråga anger du en MDX-fråga som är relevant för den aktuella kuben. Exempel:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Frågan måste innehålla specifikationer för både rad- och kolumnaxlar. Frågesyntaxen måste med andra ord inkludera specifikationer för både ON COLUMNS och ON ROWS, även om endast en tom uppsättning {} har angetts för en axel.

    Eftersom kontexten för Analysera data är den aktiva kuben rekommenderar vi att du utelämnar den valfria kubspecifikationen (FROM-satsen) från MDX-rapporter. Genom att utelämna FROM-satsen uppnår du större flexibilitet – om kuben kopieras eller om kubens namn ändras så kommer rapporten att fungera i den nya kuben.

    Ersättningsvariabler stöds i MDX-rapporter, men inte ersättningsvariabler för exekvering. För att kunna använda ersättningsvariabler för exekvering måste du spara MDX-frågan som ett skript och köra det från Smart View med Beräkna på menyfliken Essbase.

  6. Klicka på Validera för att verifiera MDX-syntaxen och klicka sedan på Spara.
  7. Gå till panelen Rapporter till vänster och välj den sparade rapporten, så återges ett rutnät.

För mer information om MDX, se MDX och Skriva MDX-frågor.

Åtkomst till MDX-rapporter

Hur du arbetar med rapporter beror på din kubåtkomst.

Användare som har minst rollen Databasåtkomst på applikationsnivå kan återge sparade MDX-rapporter som skapats av andra. Vilka data som visas för en användare i rapporten beror på användarens filteråtkomst.

Utöver att återge sparade rapporter, kan användare med databasåtkomst även exportera resultatuppsättningar i olika format: HTML, CSV, Excel och JSON.

Användare med databasåtkomst kan även visa MDX-frågan som definierar rapporten genom att klicka på menyn Åtgärder bredvid rapportens namn och välja Visa.

Om du har minst rollen som databasansvarig kan du använda rapporter på samma sätt som användare med databasåtkomst kan. Du kan dessutom redigera och ta bort rapporter via menyn Åtgärder.

Om du är tjänsteadministratör kan du även använda knappen Kör som för att personifiera andra användare och kontrollera deras dataåtkomst. Det här kan vara användbart för att testa filter som har tilldelats till olika användare.

Exempel på MDX-rapporter

MDX-exemplen i detta avsnitt visar särskilda typer av analyser som du kan genomföra, med hjälp av MDX-rapporter, som inte kan åstadkommas enkelt i vyn Ad hoc-analys.

Följande exempel är utformade så att de fungerar för kuben Sample Basic.

Metadatarapport

Följande exempel returnerar endast metadata (medlemsnamn, men inga data):

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

Returnera rutnätet:

Rapportutdata visar produktmedlemmarna 100, 200, 300, 400 och Diet

Attributrapport

I följande exempel används medlemmar från en attributdimension i kolumner:

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

Returnera rutnätet:

Rapportutdata visar produktmedlemmarna 100, 200, 300, 400 och Diet i raderna. I kolumnerna visas attributmedlemmarna: Ounces_32, Ounces_20, Ounces_16 och Ounces_12

Filtrerad rapport

I följande exempel används en utsnittsfunktion (WHERE-sats) för att begränsa frågan till Cola. Dessutom begränsar filterfunktionen nivå 0-marknaderna i frågan till de som har en negativ vinst.

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

Returnera rutnätet:

Rapportutdata visar marknadsmedlemmarna Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri och Iowa i raderna. I kolumnerna visas Profit. Datavärdena är alla negativa.

Rapport för användardefinierade attribut

I följande exempel visas produktdata för marknadsdimensionen som har det användardefinierade attributet "Major Market". En utsnittsfunktion (WHERE-sats) begränsar frågan så att endast försäljningsdata inkluderas.

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

Returnera rutnätet:

Rapportutdata visar produktmedlemmarna 100, 200, 300, 400 och Diet i raderna. I kolumnerna visas de huvudsakliga marknaderna East och Central.

Infoga och exportera data med MDX

MDX är inte bara användbart för rutnätsbaserade analyser utan gör också att du kan kopiera och uppdatera en delmängd av multidimensionella data.

Med satsen för att infoga flerdimensionella uttryck kan du uppdatera kuben med data med hjälp av en beräknad (icke-fysisk) medlem som du definierar med flerdimensionella uttryck.

Med satsen MDX Export kan du spara och exportera frågeresultat som datadelmängder som du kan visa eller importera senare.

MDX-satserna Insert och Export kan köras som sparade MDX-skript.

För mer information om MDX Insert och Export, se Specifikation för MDX Insert och Specifikation för MDX-export.

Kör MDX-skript

Använd MDX-skript när du behöver köra åtgärderna Infoga eller Exportera data.

Använd MDX-rapporter för att utföra analys av rutnätsdata. Se Analysera data med MDX-rapporter.

Om du vill använda MDX-skript väljer du ett arbetsflöde:

Skriv, ladda upp och kör ett MDX-skript

Använd det här arbetsflödet för att skriva MDX-skript i en textredigerare och ladda upp dem till Essbase.

  1. Skriv MDX-skriptet i ett textredigeringsprogram och spara det med filtillägget .mdx.

  2. Ladda upp MDX-skriptet till en applikations- eller kubkatalog under Filer i Essbase-webbgränssnittet.

  3. Kör MDX-skriptet under Jobb, eller från Smart View med Beräkna på menyfliken Essbase.

Skriv ett MDX-skript i skriptredigeraren och kör det

Använd det här arbetsflödet för att skriva MDX-skript i en skriptredigerare för kuben, och kör dem från Jobb.

  1. På sidan Applikationer öppnar du applikationen och databasen (kuben).

  2. Klicka på Skript och på MDX-skript.

  3. Klicka på Skapa, ange ett namn för skriptet och klicka på OK.

  4. Skriv MDX-skriptet. Ett medlemsträd och en funktionslista kan hjälpa dig.

  5. Validera och spara skriptet och stäng skriptredigeringsprogrammet.

  6. Kör MDX-skriptet från Jobb (se Kör MDX), eller, om du använder Smart View, med Beräkna på menyfliken Essbase.

  1. På sidan Applikationer expanderar du en applikation och en kub.

  2. På menyn Åtgärder för kuben klickar du på Inspektera.

  3. Klicka på Skript och sedan på MDX-skript.

  4. Klicka på + för att öppna ett skriptredigeringsprogram.

  5. Skriv MDX-skriptet. Ett medlemsträd och en funktionslista kan hjälpa dig.

  6. Validera och spara skriptet och stäng skriptredigeringsprogrammet.

  7. Kör MDX-skriptet från Jobb (se Kör MDX), eller, om du använder Smart View, med Beräkna på menyfliken Essbase.

Skapa ett MDX-skript i Kubdesigner och köra det

Använd det här arbetsflödet för att skapa MDX-skript med hjälp av en applikationsarbetsbok, och kör dem från Jobb.

  1. Skapa ett MDX-arbetsblad i en applikationsarbetsbok. Se Arbeta med MDX-arbetsblad i Kubdesigner.
  2. Lägg till ett filnamn i fältet Filnamn.
  3. I fältet Kör MDX anger du om MDX ska exekveras när kuben skapas. Giltiga inmatningar är Ja och Nej.
  4. Lägg till MDX-skriptet under raden Skript.
  5. Spara applikationsarbetsboken.
  6. Bygg kuben. Se Skapa en applikation och kub i Kubdesigner.
  7. Kör MDX-skriptet under Jobb, eller om du använder Smart View med Beräkna på menyfliken Essbase.

Riktlinjer för MDX-skript

Följ de här riktlinjerna när du arbetar med MDX-skript.

  • Använd MDX-skript eller utför åtgärderna Infoga eller Exportera data.

  • För rutnätsanalys ska du använda MDX-rapporter i stället för MDX-skript.

  • MDX-skript kan även inkludera exekveringsersättningsvariabler.

    • För att MDX-skript med ersättningsvariabler för exekvering ska kunna användas i Smart View måste de använda XML-syntax inom beräkningskommandot SET RUNTIMESUBVARS, inklusive <RTSV_HINT>.

    • Om du vill ange en ersättningsvariabel för exekvering så att den endast beräknar det synliga datautsnittet i Smart View anger du Synvinkel som värde för ersättningsvariabeln för exekvering och Medlem som datatyp.

    • När MDX-skripten körs från Essbase-webbgränssnittet kan de använda ersättningsvariabler, men inte ersättningsvariabler för exekvering. För att kunna använda exekveringsersättningsvariabler i MDX-skript måste du köra skripten från Smart View med Beräkna på menyfliken Essbase.

Använd ersättningsvariabler

Exempel på MDX-skript

Följande är exempel på MDX-skript du kan köra på kuben Sample Basic, antingen från Jobb eller i Smart View.

MDX-infogning

Du kan spara .mdx-skriptet och köra det från Jobb eller från dialogrutan Beräkna i 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]
);

I exemplet ovan antas att du tidigare har lagt till ett Revised_Payroll-mått till Sample Basic.

MDX-export

Du kan spara .mdx-skriptet och köra det från Jobb eller från dialogrutan Beräkna i 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])

När du har kört skriptet sparas exportfilen sample01.txt i kub- eller filkatalogen:

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

MDX-export med exekveringsersättningsvariabel

Du kan spara .mdx-skriptet och köra det från dialogrutan Beräkna i 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])

När du har kört skriptet sparas exportfilen sample002.txt i kub- eller filkatalogen:

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