Analysere og håndtere data med MDX

MDX (Multidimensional Expressions) er et stærkt sprog til datamanipulation og -forespørgsler.

Med MDX kan du gøre følgende:

  • Forespørge på og rapportere om data og metadata i Essbase-kuber

  • Indsætte data i en Essbase-kube

  • Eksportere data fra en Essbase-kube

En MDX-forespørgsel er en enkelt MDX-sætning, der har præcist ét resultatsæt, som anvendes på en enkelt kube.

En MDX-rapport er en enkelt MDX-forespørgsel, som er gemt i kubekonteksten. Du kan få adgang til MDX-rapporter fra Smart View og fra Essbase-webinterfacet.

Et MDX-script er en fil med filtypenavnet .mdx, som du kan uploade og derefter køre fra Job eller i Smart View. Det er kun MDX-sætningerne Insert og Export, som skal bruges i MDX-scripts. Du kan analysere gitterdata ved at bruge MDX-rapporter i stedet for MDX-scripts.

Emner:

Analysere data med MDX-rapporter

Du kan lagre og gengive forespørgsler i Essbase-webinterfacet ved hjælp af MDX-rapporter. Den minimumtilladelse, som kræves for at oprette en rapport, er Databasestyring.

Det er ikke altid mest effektivt at oprette en avanceret rapport ved at definere layout på fanen Ad hoc-analyse. Hvis du ved præcist, hvad du ønsker at forespørge på, kan du bruge MDX til at oprette en forespørgsel for at udfylde gitteret.

Sådan opretter du en MDX-rapport:
  1. Log på webinterfacet i Essbase med rollen Databasestyring eller højere.
  2. Naviger til Analyser data:
    • Åbn applikationen i Redwood-interfacet, åbn databasen (kuben), og klik på Analyser data.
    • Udvid applikationen i det klassiske webinterface, vælg en kube, klik på menuen Handlinger til højre for kubenavnet, og vælg Analyser data.
  3. Vælg fanen Rapporter i visningen Analyser, og klik på Opret.
  4. Indtast et navn til rapporten og eventuelt en beskrivelse.
  5. Indtast en MDX-forespørgsel, der er relevant for den aktuelle kube, i feltet Forespørgsel. Eksempel:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Forespørgslen skal indeholde angivelser af både række- og kolonneakser. Med andre ord skal forespørgselssyntaksen indeholde specifikationer for både ON COLUMNS og ON ROWS, selvom der kun er angivet et tomt sæt {} for én akse.

    Da konteksten af analysedata er den aktive kube, anbefales det at udelade den valgfrie kubespecifikation (FROM-klausulen) fra MDX-rapporter. Udeladelse af FROM-klausulen giver mere fleksibilitet — hvis kuben kopieres eller omdøbes, vil rapporten fungere i den nye kube.

    Erstatningsvariabler understøttes i MDX-rapporter, men ikke runtime-erstatningsvariabler. Hvis du vil bruge runtime-erstatningsvariabler, skal du gemme MDX-forespørgslen som et script og køre det fra Smart View ved hjælp af BeregnEssbase-båndet.

  6. Klik på Valider for at verificere din MDX-syntaks, og klik derefter på Gem.
  7. Vælg den gemte rapport i panelet Rapporter til venstre for at gengive et gitter.

Der er flere oplysninger om MDX under MDX og Skrivning af MDX-forespørgsler.

Adgang til MDX-rapporter

Den måde, du arbejder med rapporter på, afhænger af din kubeadgang.

Brugere, der som minimum har applikationsniveaurollen Databaseadgang, kan gengive gemte MDX-rapporter, som andre har oprettet. De data, som en bruger kan se i rapporten, afhænger af brugerens filteradgang.

Foruden gengivelse af gemte rapporter kan brugere med databaseadgang eksportere resultatsæt i forskellige formater: HTML, CSV, Excel og JSON.

Brugere med databaseadgang kan også se den MDX-forespørgsel, der definerer rapporten, ved at klikke på menuen Handlinger ud for rapportnavnet og vælge Vis.

Hvis du mindst har rollen Databasestyring, kan du bruge rapporter på samme måder som brugere med rollen Databaseadgang. Du kan desuden redigere og slette rapporter via menuen Handlinger.

Hvis du er tjenesteadministrator, kan du også bruge knappen Udfør som til at efterligne andre brugere og tjekke deres dataadgang. Det kan være nyttigt til test af filtre, som er tildelt forskellige brugere.

Eksempler på MDX-rapporter

MDX-eksemplerne i dette afsnit viser særlige typer af analyser, som du kan foretage ved hjælp af MDX-rapporter, der ikke er nemme at oprette i visningen Ad hoc-analyse.

Følgende eksempler er designet til at fungere i kuben Sample Basic.

Metadatarapport

Følgende eksempel returnerer kun metadata (medlemsnavne, men ingen data):

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

hvilket returnerer gitteret:

Rapportoutput, der viser produktmedlemmerne 100, 200, 300, 400 og Diet

Attributrapport

Følgende eksempel bruger, i kolonner, medlemmer fra en attributdimension:

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

hvilket returnerer gitteret:

Rapportoutput viser, i rækker, produktmedlemmerne 100, 200, 300, 400 og Diet. I kolonner vises attributmedlemmer: Ounces_32, Ounces_20, Ounces_16 og Ounces_12

Filtreret rapport

Følgende eksempel bruger slicer (WHERE-klausul) til at begrænse forespørgslen til Cola. Desuden begrænser filterfunktionen markeder på niveau 0 i forespørgslen til dem, som har en negativ profit.

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

hvilket returnerer gitteret:

Rapportoutput viser, i rækker, markedsmedlemmerne Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri og Iowa. Profit vises i kolonner. Alle dataværdierne er negative.

UDA-rapport

Følgende eksempel viser produktdata for Market-dimensionsmedlemmer, som har den brugerdefinerede attribut (UDA) "Major Market." En slicer (WHERE-klausul) begrænser forespørgslen til kun at medtage Sales-data.

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

hvilket returnerer gitteret:

Rapportoutput viser, i rækker, produktmedlemmerne 100, 200, 300, 400 og Diet. Hovedmarkederne East og Central vises i kolonner.

Indsætte og eksportere data med MDX

Udover at være nyttig til gitterbaserede analyser gør MDX dig også i stand til at kopiere og opdatere undersæt af flerdimensionale data.

MDX Insert-klausulen gør dig i stand til at opdatere kuben med data, ved hjælp af et beregnet (ikke-fysisk) medlem, som du definerer ved hjælp af MDX.

MDX Export-klausulen gør dig i stand til at gemme og eksportere forespørgselsresultater som dataundersæt, som du kan få vist eller importere senere.

MDX-sætningerne Insert og Export kan køres som gemte MDX-scripts.

Se Angivelse af MDX Insert og Angivelse af MDX Export for at få mere at vide om MDX-indsættelse og -eksport.

Køre MDX-scripts

Brug MDX-scripts, hvis du skal udføre dataoperationerne Insert eller Export.

Til analyse af gitterdata skal du bruge MDX-rapporter. Se Analysere data med MDX-rapporter.

Hvis du vil bruge MDX-scripts, skal du vælge et workflow:

Skrive, uploade og køre et MDX-script

Brug dette workflow til at skrive MDX-scripts i en teksteditor og uploade dem til Essbase.

  1. Skriv MDX-scriptet i en teksteditor, og gem det med filtypenavnet .mdx.

  2. Upload MDX-scriptet til applikationen eller kubekataloget under Filer i Essbase-webinterfacet.

  3. Kør MDX-scriptet fra Job eller fra Smart View ved hjælp af BeregnEssbase-båndet.

Skrive et MDX-script i script-editoren og køre det

Brug dette workflow til at skrive MDX-scripts i en script-editor i kuben og køre dem fra Job.

  1. Åbn applikationen på siden Applikationer, og åbn databasen (kuben).

  2. Klik på Scripts, og klik på MDX-scripts.

  3. Klik på Opret, indtast et navn til scriptet, og klik på OK.

  4. Skriv MDX-scriptet. Du kan bruge et medlemstræ og en funktionsliste.

  5. Valider og gem scriptet, og luk derefter script-editoren.

  6. Kør MDX-scriptet fra Job (se Kør MDX), eller, hvis du bruger Smart View, ved at vælge BeregnEssbase-båndet.

  1. Udvid en applikation og kuben på siden Applikationer.

  2. Klik på Inspicer i kubens handlingsmenu.

  3. Klik på Scripts, og klik derefter på MDX-scripts.

  4. Klik på + for at åbne en script-editor.

  5. Skriv MDX-scriptet. Du kan bruge et medlemstræ og en funktionsliste.

  6. Valider og gem scriptet, og luk derefter script-editoren.

  7. Kør MDX-scriptet fra Job (se Kør MDX), eller, hvis du bruger Smart View, ved at vælge BeregnEssbase-båndet.

Oprette et MDX-script i Kubedesigner og køre det

Brug dette workflow til at oprette MDX-scripts ved hjælp af en applikationsprojektmappe og køre dem fra Job.

  1. Opret et MDX-projektark i en applikationsprojektmappe. Se Arbejde med MDX-projektark i Kubedesigner.
  2. Tilføj et filnavn i feltet Filnavn.
  3. Angiv i feltet Udfør MDX, om MDX-scriptet skal udføres på tidspunktet for oprettelsen af kuben. Gyldige indtastninger er Ja og Nej.
  4. Tilføj MDX-scriptet under linjen Script.
  5. Gem applikationsprojektmappen.
  6. Byg kuben. Se Oprette en applikation og en kube i Kubedesigner.
  7. Kør MDX-scriptet fra Job, eller, hvis du bruger Smart View, vælg Beregn på Essbase-båndet.

Retningslinjer for MDX-scripts

Brug følgende retningslinjer, når du arbejder med MDX-scripts.

  • Brug MDX-scripts til at udføre dataoperationerne Insert eller Export.

  • Til gitteranalyse skal du bruge MDX-rapporter i stedet for MDX-scripts.

  • MDX-scripts kan eventuelt indeholde runtime-erstatningsvariabler.

    • For at kunne bruges i Smart View skal MDX-scripts med runtime-erstatningsvariabler bruge XML-syntaksen i beregningskommandoen SET RUNTIMESUBVARS, herunder <RTSV_HINT>.

    • Hvis du vil angive en runtime-erstatningsvariabel, så den kun beregner det synlige udsnit af data i Smart View, skal du angive værdien af runtime-erstatningsvariablen til Skæringspunkt og angive datatypen til medlem.

    • Når MDX-scripts køres fra Essbase-webinterfacet, kan de bruge erstatningsvariabler, men ikke runtime-erstatningsvariabler. Hvis du vil bruge runtime-erstatningsvariabler i MDX-scripts, skal du køre dem fra Smart View ved hjælp af BeregnEssbase-båndet.

Bruge erstatningsvariabler

Eksempler på MDX-scripts

Følgende er eksempler på MDX-scripts, som du kan køre på kuben Sample Basic, enten fra Job eller i Smart View.

MDX Insert

Du kan gemme dette .mdx-script og køre det fra Job eller fra dialogboksen Beregn 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 ovenstående eksempel antages det, at du tidligere har føjet en Revised_Payroll-måling til Sample Basic.

MDX Export

Du kan gemme dette .mdx-script og køre det fra Job eller fra dialogboksen Beregn 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 scriptet, gemmes eksportfilen sample01.txt i kubekataloget for filkataloget:

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-eksport ved hjælp af runtime-erstatningsvariabel

Du kan gemme dette .mdx-script og køre det fra dialogboksen Beregn 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 scriptet, gemmes eksportfilen sample002.txt i kubekataloget for filkataloget:

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