Gegevens analyseren en beheren met MDX

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:

Gegevens analyseren met MDX-rapporten

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.

U maakt als volgt een MDX-rapport:
  1. Log in bij de webinterface van Essbase met de rol 'Databasebeheer' of een hogere rol.
  2. Navigeer naar Gegevens analyseren:
    • Open de applicatie in de Redwood interface, open de database (kubus) en klik op Gegevens analyseren.
    • Vouw in de klassieke webinterface de applicatie uit, selecteer een kubus, klik rechts van de kubusnaam op het menu 'Acties' en selecteer Gegevens analyseren.
  3. Selecteer in de weergave 'Analyseren' het tabblad Rapporten en klik op Maken.
  4. Voer een naam in voor het rapport en desgewenst ook een beschrijving.
  5. Voer in het veld 'Query' een MDX-query in die relevant is voor de huidige kubus. Bijvoorbeeld:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    De query moet specificaties voor zowel rij- als kolomassen bevatten. Met andere woorden: de syntaxis van de query moet specificaties bevatten voor zowel ON COLUMNS als ON ROWS, zelfs als alleen een lege set {} wordt opgegeven voor een van de assen.

    Omdat de context van 'Gegevens analyseren' de actieve kubus is, raden we aan om de optionele kubusspecificatie (de FROM-clausule) weg te laten in MDX-rapporten. Het weglaten van de FROM-clausule biedt meer flexibiliteit: als de kubus wordt gekopieerd of hernoemd, werkt het rapport in de nieuwe kubus.

    Vervangingsvariabelen worden ondersteund in MDX-rapporten, maar runtime-vervangingsvariabelen niet. Als u runtimevervangingsvariabelen wilt gebruiken, moet u de MDX-query opslaan als een script en uitvoeren vanuit Smart View via Berekenen op het lint van Essbase.

  6. Klik op Valideren om uw MDX-syntaxis te verifiëren en klik dan op Opslaan.
  7. Selecteer in het deelvenster 'Rapporten' aan de linkerkant het opgeslagen rapport om een raster weer te geven.

Zie MDX en MDX-zoekvragen schrijven voor meer informatie over MDX.

Toegang tot MDX-rapporten

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.

Voorbeelden van MDX-rapporten

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:

In de uitvoer van het rapport worden de onderdelen 100, 200, 300, 400 en Diet van 'Product' weergegeven

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:

In de uitvoer van het rapport worden voor de rijen onderdelen 100, 200, 300, 400 en Diet van 'Product' weergegeven Voor de kolommen worden kenmerkonderdelen getoond: Ounces_32, Ounces_20, Ounces_16 en Ounces_12

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:

In de uitvoer van het rapport worden voor de rijen de onderdelen van 'Market' getoond: Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri en Iowa. Voor de kolommen wordt 'Profit' getoond. De gegevenswaarden zijn allemaal negatief.

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:

In de uitvoer van het rapport worden voor de rijen onderdelen 100, 200, 300, 400 en Diet van 'Product' weergegeven Voor de kolommen worden de hoofdmarkten 'East' en 'Central' weergegeven.

Gegevens invoegen en exporteren met MDX

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.

MDX-scripts uitvoeren

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:

Een MDX-script schrijven, uploaden en uitvoeren

Met deze workflow kunt u MDX-scripts schrijven in een teksteditor en die scripts uploaden naar Essbase.

  1. Schrijf het MDX-script in een teksteditor en sla het op met een MDX-extensie.

  2. Upload het MDX-script naar de applicatie of kubusdirectory onder Bestanden in de webinterface van Essbase.

  3. Voer het MDX-script uit vanuit Taken of Smart View met de optie Berekenen op het lint van Essbase.

Een MDX-script in de scripteditor schrijven en uitvoeren

Met deze workflow kunt u MDX-scripts voor de kubus schrijven in een scripteditor en die scripts uitvoeren vanuit Taken.

  1. Open op de pagina 'Applicaties' de applicatie en open daarna de database (kubus).

  2. Klik op Scripts en daarna op MDX-scripts.

  3. Klik op Maken, voer een naam in voor het script en klik op OK.

  4. Schrijf het MDX-script. Een onderdeelstructuur en functielijst kunnen u helpen.

  5. Valideer het script en sla het op. Sluit vervolgens de scripteditor.

  6. 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.

  1. Vouw een applicatie en kubus uit op de pagina 'Applicaties'.

  2. Klik in het menu 'Acties' van de kubus op Inspecteren.

  3. Klik op Scripts en vervolgens op MDX-scripts.

  4. Klik op + om een scripteditor te openen.

  5. Schrijf het MDX-script. Een onderdeelstructuur en functielijst kunnen u helpen.

  6. Valideer het script en sla het op. Sluit vervolgens de scripteditor.

  7. 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.

Een MDX-script maken in Cube Designer en dit uitvoeren

Deze workflow gebruiken om MDX-scripts te maken met behulp van een applicatiewerkboek en deze uitvoeren vanuit Taken.

  1. Maak een MDX-werkblad in een applicatiewerkboek. Zie voor meer informatie: Werken met MDX-werkbladen in Cube Designer.
  2. Voeg een bestandsnaam toe in het veld Bestandsnaam.
  3. Geef in het veld MDX uitvoeren aan of MDX moet worden uitgevoerd op het moment dat de kubus wordt gemaakt. Geldige invoer is Ja en Nee.
  4. Voeg het MDX-script toe onder de regel Script.
  5. Sla het applicatiewerkboek op.
  6. Bouw de kubus op. Zie voor meer informatie: Applicaties en kubussen maken in Cube Designer.
  7. Voer het MDX-script uit vanuit Taken of kies bij het gebruik van Smart View de optie Berekenen op het lint van Essbase.

Richtlijnen voor MDX-scripts

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.

Vervangingsvariabelen gebruiken

Voorbeelden van MDX-scripts

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