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:
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.
Der er flere oplysninger om MDX under MDX og Skrivning af MDX-forespørgsler.
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.
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:
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:
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:
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:
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.
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:
Brug dette workflow til at skrive MDX-scripts i en teksteditor og uploade dem til Essbase.
Skriv MDX-scriptet i en teksteditor, og gem det med filtypenavnet .mdx
.
Upload MDX-scriptet til applikationen eller kubekataloget under Filer i Essbase-webinterfacet.
Kør MDX-scriptet fra Job eller fra Smart View ved hjælp af Beregn på Essbase-båndet.
Brug dette workflow til at skrive MDX-scripts i en script-editor i kuben og køre dem fra Job.
Åbn applikationen på siden Applikationer, og åbn databasen (kuben).
Klik på Scripts, og klik på MDX-scripts.
Klik på Opret, indtast et navn til scriptet, og klik på OK.
Skriv MDX-scriptet. Du kan bruge et medlemstræ og en funktionsliste.
Valider og gem scriptet, og luk derefter script-editoren.
Kør MDX-scriptet fra Job (se Kør MDX), eller, hvis du bruger Smart View, ved at vælge Beregn på Essbase-båndet.
Udvid en applikation og kuben på siden Applikationer.
Klik på Inspicer i kubens handlingsmenu.
Klik på Scripts, og klik derefter på MDX-scripts.
Klik på + for at åbne en script-editor.
Skriv MDX-scriptet. Du kan bruge et medlemstræ og en funktionsliste.
Valider og gem scriptet, og luk derefter script-editoren.
Kør MDX-scriptet fra Job (se Kør MDX), eller, hvis du bruger Smart View, ved at vælge Beregn på Essbase-båndet.
Brug dette workflow til at oprette MDX-scripts ved hjælp af en applikationsprojektmappe og køre dem fra Job.
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 Beregn på Essbase-båndet.
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