MDX (Multidimensional Expressions) is een krachtige taal voor gegevensmanipulatie en zoekvragen.
Met MDX kunt u het volgende doen:
Zoekvragen uitvoeren en rapporteren voor gegevens en metagegevens in Essbase kubussen
Gegevens in een Essbase kubus invoegen
Gegevens uit een Essbase kubus exporteren
Een MDX-query is één MDX-statement met één resultaatset die op één kubus van toepassing is.
Een MDX-rapport is één MDX-query die is opgeslagen in de context van een kubus. U hebt toegang tot MDX-rapporten vanuit Smart View en via de webinterface van Essbase.
Een MDX-script is een bestand met als extensie .mdx
dat u kunt uploaden en dan kunt uitvoeren via 'Taken' of in Smart View. In MDX-scripts mogen alleen MDX-statements voor invoegen en exporteren worden gebruikt. Als u rastergegevens wilt analyseren, gebruikt u MDX-rapporten in plaats van MDX-scripts.
Onderwerpen:
U kunt query's opslaan en weergeven in de webinterface van Essbase met MDX-rapporten. Het minimale recht dat vereist is voor het maken van een rapport is 'Databasebeheer'.
Het definiëren van lay-outs via het tabblad 'Ad-hocanalyse' is mogelijk niet altijd de meest efficiënte manier om een complex rapport samen te stellen. Als u precies weet wat u zoekt, kunt u MDX gebruiken om een query te maken waarmee het raster wordt gevuld.
Zie MDX en MDX-zoekvragen schrijven voor meer informatie over MDX.
Hoe u werkt met rapporten, is afhankelijk van uw toegang tot kubussen.
Gebruikers met ten minste de rol 'Databasetoegang' op applicatieniveau kunnen opgeslagen MDX-rapporten weergeven die door anderen zijn gemaakt. Welke gegevens een gebruiker ziet in het rapport, is afhankelijk van de filtertoegang van de gebruiker.
Naast het weergeven van opgeslagen rapporten kunnen gebruikers met de rol 'Databasetoegang' resultatensets exporteren in verschillende indelingen: HTML, CSV, Excel en JSON.
Gebruikers met de rol 'Databasetoegang' kunnen ook de MDX-query weergeven die voor het rapport is gedefinieerd door te klikken op het menu Acties naast de rapportnaam en dan Bekijken te selecteren.
Als u ten minste de rol 'Databasebeheer' hebt, kunt u rapporten gebruiken op dezelfde manieren als gebruikers met de rol 'Databasetoegang'. Daarnaast kunt u rapporten bewerken en verwijderen via het menu Acties.
Als u servicebeheerder bent, kunt u ook nog de knop Uitvoeren als gebruiken om andere gebruikers te imiteren en hun gegevenstoegang te controleren. Dit kan handig zijn voor het testen van filters die zijn toegewezen aan verschillende gebruikers.
De MDX-voorbeelden in deze sectie laten speciale analysen zien die u kunt uitvoeren met behulp van MDX-rapporten. Deze analysen kunnen niet gemakkelijk worden uitgevoerd vanuit de weergave 'Ad-hocanalyse'.
De volgende voorbeelden zijn ontworpen voor de kubus 'Sample Basic'.
Metagegevensrapport
Met het volgende voorbeeld worden alleen metagegevens (onderdeelnamen, maar geen gegevens) geretourneerd:
SELECT {[Product].Levels(1).Members} ON ROWS, {} ON COLUMNS
Het volgende raster wordt geretourneerd:
Kenmerkrapport
In het volgende voorbeeld worden onderdelen uit een kenmerkdimensie gebruikt voor kolommen:
SELECT [Product].Children ON ROWS, [Ounces].Children ON COLUMNS WHERE {Sales}
Het volgende raster wordt geretourneerd:
Gefilterd rapport
In het volgende voorbeeld wordt een slicer (WHERE-clausule) gebruikt om de query te beperken tot Cola. Bovendien wordt een filterfunctie gebruikt om de markten op niveau 0 in de query te beperken tot de markten met een negatieve winst.
SELECT { Profit } ON COLUMNS, Filter( [Market].levels(0).members, Profit < 0) ON ROWS WHERE {Cola}
Het volgende raster wordt geretourneerd:
UDA-rapport
In het volgende voorbeeld worden productgegevens weergegeven voor onderdelen van de dimensie Market waarvoor het door de gebruiker gedefinieerde kenmerk (UDA=User Defined Attribute) "Major Market" is ingesteld. Met een slicer (WHERE-clausule) wordt de query beperkt zodat alleen gegevens van 'Sales' worden opgenomen.
SELECT [Product].Children ON ROWS, {Intersect(UDA([Market], "Major Market"), [Market].Children)} ON COLUMNS WHERE {Sales}
Het volgende raster wordt geretourneerd:
MDX is niet alleen handig voor analysen op basis van rasters, maar stelt u ook in staat om subsets van multidimensionale gegevens te kopiëren en bij te werken.
Met de Insert-clausule van MDX kunt u de kubus bijwerken met gegevens met behulp van een berekend (niet-fysiek) onderdeel dat u definieert met MDX.
Met de MDX-exportclausule kunt u zoekvraagresultaten opslaan en exporteren als gegevenssubsets die u later kunt bekijken of importeren.
MDX-statements voor invoegen en exporteren kunnen worden uitgevoerd als opgeslagen MDX-scripts.
Zie MDX-invoegspecificatie en MDX-exportspecificatie ivoor meer informatie over het invoegen en exporteren van gegevens met MDX.
U kunt MDX-scripts gebruiken wanneer u gegevens wilt invoegen of exporteren.
Voor een analyse van rastergegevens gebruikt u MDX-rapporten. Zie voor meer informatie: Gegevens analyseren met MDX-rapporten.
Selecteer voor het gebruik van MDX-scripts een workflow:
Met deze workflow kunt u MDX-scripts schrijven in een teksteditor en die scripts uploaden naar Essbase.
Schrijf het MDX-script in een teksteditor en sla het op met een MDX
-extensie.
Upload het MDX-script naar de applicatie of kubusdirectory onder Bestanden in de webinterface van Essbase.
Voer het MDX-script uit vanuit Taken of Smart View met de optie Berekenen op het lint van Essbase.
Met deze workflow kunt u MDX-scripts voor de kubus schrijven in een scripteditor en die scripts uitvoeren vanuit Taken.
Open op de pagina 'Applicaties' de applicatie en open daarna de database (kubus).
Klik op Scripts en daarna op MDX-scripts.
Klik op Maken, voer een naam in voor het script en klik op OK.
Schrijf het MDX-script. Een onderdeelstructuur en functielijst kunnen u helpen.
Valideer het script en sla het op. Sluit vervolgens de scripteditor.
Voer het MDX-script uit vanuit Taken (zie MDX uitvoeren) of kies bij het gebruik van Smart View de optie Berekenen op het lint van Essbase.
Vouw een applicatie en kubus uit op de pagina 'Applicaties'.
Klik in het menu 'Acties' van de kubus op Inspecteren.
Klik op Scripts en vervolgens op MDX-scripts.
Klik op + om een scripteditor te openen.
Schrijf het MDX-script. Een onderdeelstructuur en functielijst kunnen u helpen.
Valideer het script en sla het op. Sluit vervolgens de scripteditor.
Voer het MDX-script uit vanuit Taken (zie MDX uitvoeren) of kies bij het gebruik van Smart View de optie Berekenen op het lint van Essbase.
Deze workflow gebruiken om MDX-scripts te maken met behulp van een applicatiewerkboek en deze uitvoeren vanuit Taken.
Gebruik de volgende richtlijnen wanneer u met MDX-scripts werkt.
Gebruik MDX-scripts om gegevens in te voegen of te exporteren.
Gebruik voor rasteranalysen MDX-rapporten in plaats van MDX-scripts.
MDX-scripts kunnen desgewenst runtimevervangingsvariabelen bevatten.
Als u MDX-scripts met runtimevervangingsvariabelen binnen Smart View wilt gebruiken, moet hiervoor de XML-syntaxis binnen de SET RUNTIMESUBVARS-rekenopdracht worden gebruikt, met inbegrip van <RTSV_HINT>
.
Als u een runtimevervangingsvariabele zo wilt instellen dat deze alleen het zichtbare gegevenssegment in Smart View berekent, stelt u de waarde van de runtimevervangingsvariabele in op POV en stelt u het gegevenstype in op Onderdeel.
Bij het uitvoeren van MDX-scripts vanuit de webinterface van Essbase kunnen er wel vervangingsvariabelen worden gebruikt, maar geen runtimevervangingsvariabelen. Als u runtimevervangingsvariabelen in MDX-scripts wilt gebruiken, moet u de scripts uitvoeren vanuit Smart View met behulp van Berekenen op het lint van Essbase.
In de volgende voorbeelden van MDX-scripts kunt u de kubus 'Sample Basic' uitvoeren vanuit 'Taken' of in Smart View.
MDX-invoeging
U kunt dit MDX
-script opslaan en uitvoeren vanuit Taken of vanuit het dialoogvenster Berekenen in 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] );
In het bovenstaande voorbeeld wordt ervan uitgegaan dat u eerder een eenheid 'Revised_Payroll' hebt toegevoegd aan 'Sample Basic'.
MDX-export
U kunt dit MDX
-script opslaan en uitvoeren vanuit Taken of vanuit het dialoogvenster Berekenen in 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])
Nadat u het script hebt uitgevoerd, wordt het exportbestand sample01.txt
opgeslagen in de kubusdirectory van de bestandscatalogus:
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 met runtimevervangingsvariabele
U kunt dit MDX
-script opslaan en uitvoeren vanuit het dialoogvenster Berekenen in 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])
Nadat u het script hebt uitgevoerd, wordt het exportbestand sample002.txt
opgeslagen in de kubusdirectory van de bestandscatalogus:
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