Analysere og administrere data med MDX

MDX (Multidimensional Expressions) er et effektivt språk for datamanipulering og -spørring.

Med MDX kan du:

  • Sende spørringer og rapportere om data og metadata i Essbase-kuber

  • Sette inn data i en Essbase-kube

  • Eksportere data fra en Essbase-kube

En MDX-spørring er én enkelt MDX-setning som har nøyaktig ett resultatsett som gjelder for én kube.

En MDX-rapport er én enkelt MDX-spørring som er lagret i kubekonteksten. Du kan få tilgang til MDX-rapporter fra Smart View og fra Web-grensesnittet for Essbase.

Et MDX-skript er en fil med filtypen MDX som du kan laste opp og deretter kjøre fra Jobber eller i Smart View. Bare MDX-setninger for innsetting og eksport skal brukes i MDX-skript. Hvis du vil analysere rutenettdata, bør du bruke MDX-rapporter i stedet for MDX-skript.

Emner:

Analysere data med MDX-rapporter

Du kan lagre og gjengi spørringer i Web-grensesnittet for Essbase ved hjelp av MDX-rapporter. Minimumstillatelsen som er nødvendig hvis du skal opprette en rapport, er Databasestyrer.

Definering av oppsett i fanen Ad hoc-analyse er ikke alltid den mest effektive måten å opprette en avansert rapport på. Hvis du vet akkurat hva du vil spørre etter, kan du bruke MDX til å opprette en spørring slik at rutenettet fylles ut.

Slik oppretter du en MDX-rapport:
  1. Logg på Web-grensesnittet for Essbase som Databasestyrer eller en høyere rolle.
  2. Gå til Analyser data:
    • I Redwood-grensesnittet åpner du applikasjonen, åpner databasen (kuben) og klikker deretter på Analyser data.
    • I det klassiske Web-grensesnittet utvider du applikasjonen, velger en kube, klikker på menyen Handlinger til høyre for kubenavnet og velger Analyser data.
  3. I visningen Analyser velger du fanen Rapporter og klikker på Opprett.
  4. Angi et navn for rapporten og eventuelt en beskrivelse.
  5. Angi en MDX-spørring som er relevant for den gjeldende kuben, i feltet Spørring. For eksempel:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    Spørringen må inneholde angivelser av både rad- og kolonneakser. Med andre ord må spørringssyntaksen inneholde angivelser av både ON COLUMNS og ON ROWS, selv om det bare er angitt et tomt sett {} for én akse.

    Ettersom konteksten for Analyser data er den aktive kuben, anbefaler vi at du utelater den valgfrie kubeangivelsen (leddet FROM) fra MDX-rapporter. Hvis leddet FROM utelates, får du mer fleksibilitet. Selv om kuben kopieres eller gis nytt navn, vil rapporten fremdeles fungere i den nye kuben.

    Erstatningsvariabler støttes i MDX-rapporter, men ikke erstatningsvariabler for kjøretid. Hvis du vil bruke erstatningsvariabler for kjøretid, lagrer du MDX-spørringen som et skript og kjører det fra Smart View ved hjelp av BeregnEssbase-båndet.

  6. Klikk på Valider, slik at MDX-syntaksen verifiseres, og klikk deretter på Lagre.
  7. Velg den lagrede rapporten i ruten Rapporter til venstre hvis du vil gjengi et rutenett.

Hvis du vil ha flere opplysninger om MDX-innsetting, se MDX og Skrive MDX-spørringer.

Tilgang til MDX-rapporter

Hvordan du arbeider med rapporter, avhenger av kubetilgangen din.

Brukere med minst brukerrollen Databasetilgang på applikasjonsnivå kan gjengi lagrede MDX-rapporter som er opprettet av andre. Hvilke data en bruker ser i rapporten, avhenger av hvilken filtertilgang vedkommende har.

I tillegg til å gjengi lagrede rapporter kan brukere med Databasetilgang eksportere resultatsett i ulike formater: HTML, CSV, Excel og JSON.

Brukere med Databasetilgang kan også vise MDX-spørringen som definerer rapporten, ved å klikke på menyen Handlinger ved siden av rapportnavnet og velge Vis.

Hvis du minst har rollen Databasestyrer, kan du bruke rapporter på samme måte som brukere med Databasetilgang kan. I tillegg kan du redigere og slette rapporter ved hjelp av menyen Handlinger.

Hvis du er en Tjenesteadministrator, kan du også bruke knappen Utfør som til å etterligne andre brukere og kontrollere datatilgangen deres. Dette kan være nyttig hvis du vil teste filtrene som er tilordnet til ulike brukere.

Eksempler på MDX-rapporter

MDX-eksemplene i denne delen viser spesielle typer analyser du kan utføre ved hjelp av MDX-rapporter, som ikke er enkle å oppnå i visningen Ad hoc-analyse.

Følgende eksempler er utformet for å fungere på kuben Sample Basic.

Metadatarapport

Følgende eksempel returnerer bare metadata (medlemsnavn, men ingen data):

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

returnerer rutenettet:

Utdataene for rapporten viser produktmedlemmene 100, 200, 300, 400 og Diet

Attributtrapport

Følgende eksempel bruker medlemmer fra en attributtdimensjon i kolonner:

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

returnerer rutenettet:

Utdataene for rapporten viser produktmedlemmene 100, 200, 300, 400 og Diet i rader. I kolonner vises følgende attributtmedlemmer: Ounces_32, Ounces_20, Ounces_16 og Ounces_12

Filtrert rapport

Følgende eksempel bruker en slicer (leddet WHERE) til å begrense spørringen til Cola. I tillegg begrenser filterfunksjonen markedene på nivå 0 i spørringen til de som har negativ fortjeneste.

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

returnerer rutenettet:

Utdataene for rapporten viser markedsmedlemmene Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri og Iowa i rader. Fortjeneste vises i kolonner. Alle dataverdiene er negative.

UDA-rapport

Følgende eksempel viser produktdata for markedsdimensjonsmedlemmer som har det brukerdefinerte attributtet (UDA) Major Market. En slicer (leddet WHERE) begrenser spørringen til bare salgsdata.

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

returnerer rutenettet:

Utdataene for rapporten viser produktmedlemmene 100, 200, 300, 400 og Diet i rader. I kolonner vises de viktige markedene Øst og Central.

Sette inn og eksportere data med MDX

I tillegg til at MDX er nyttig for rutenettbasert analyse, gir det deg også mulighet til å kopiere og oppdatere delsett av flerdimensjonale data.

Med leddet for MDX-innsetting kan du oppdatere kuben med data ved hjelp av et beregnet (ikke-fysisk) medlem som du definerer ved hjelp av MDX.

Med leddet for MDX-eksport kan du lagre og eksportere resultater av spørringer som delsett med data som du kan vise eller importere senere.

MDX-setninger for innsetting og eksport kan kjøres som lagrede MDX-skript.

Hvis du vil lære mer om MDX-innsetting og -eksport, kan du se Angivelse av MDX-innsetting og Angivelse av MDX-eksport.

Kjøre MDX-skript

Bruk MDX-skript når du trenger å utføre operasjonen Sett inn data eller Eksporter data.

Bruk MDX-rapporter til å analysere rutenettdata. Se Analysere data med MDX-rapporter.

Når du skal bruke MDX-skript, velger du en arbeidsflyt:

Skrive, laste opp og kjøre et MDX-skript

Bruk denne arbeidsflyten til å skrive MDX-skript i et tekstredigeringsprogram og laste dem opp til Essbase.

  1. Skriv MDX-skriptet i et tekstredigeringsprogram, og lagre det med filtypen MDX.

  2. Last opp MDX-skriptet til applikasjons- eller kubekatalogen under Filer i Web-grensesnittet til Essbase.

  3. Kjør MDX-skriptet fra Jobber eller fra Smart View ved å velge BeregnEssbase-båndet.

Skrive et MDX-skript i redigeringsprogrammet for skript og kjøre det

Bruk denne arbeidsflyten til å skrive MDX-skript i et redigeringsprogram for skript på kuben, og kjør dem fra Jobber.

  1. Åpne applikasjonen på siden Applikasjoner, og åpne databasen (kuben).

  2. Klikk på Skript og deretter på MDX-skript.

  3. Klikk på Opprett, skriv inn et navn for skriptet, og klikk på OK.

  4. Skriv MDX-skriptet. Et medlemstre og en funksjonsliste kan være nyttig.

  5. Valider og lagre skriptet, og lukk deretter skriptredigeringsprogrammet.

  6. Kjør MDX-skriptet fra Jobber (se Kjør MDX), eller, hvis du bruker Smart View, ved å velge BeregnEssbase-båndet.

  1. Utvid en applikasjon og en kube på siden Applikasjoner.

  2. Klikk på Inspiser på menyen Handlinger for kuben.

  3. Klikk på Skript og deretter på MDX-skript.

  4. Klikk på + slik at et skriptredigeringsprogram åpnes.

  5. Skriv MDX-skriptet. Et medlemstre og en funksjonsliste kan være nyttig.

  6. Valider og lagre skriptet, og lukk deretter skriptredigeringsprogrammet.

  7. Kjør MDX-skriptet fra Jobber (se Kjør MDX), eller, hvis du bruker Smart View, ved å velge BeregnEssbase-båndet.

Opprette et MDX-skript i Kubeutformer og kjøre det

Bruk denne arbeidsflyten til å opprette MDX-skript ved hjelp av en applikasjonsarbeidsbok, og kjør dem fra Jobber.

  1. Opprett et MDX-regneark i en applikasjonsarbeidsbok. Se Arbeide med MDX-regneark i Kubeutformer.
  2. Legg til et filnavn i feltet Filnavn.
  3. Angi om MDX-skriptet skal utføres når kuben opprettes, i feltet Utfør MDX. Gyldige oppføringer er Ja og Nei.
  4. Legg til MDX-skriptet under linjen Skript.
  5. Lagre applikasjonsarbeidsboken.
  6. Bygg kuben. Se Opprette en applikasjon og kube i Kubeutformer.
  7. Kjør MDX-skriptet fra Jobber, eller, hvis du bruker Smart View, ved å velge Beregn på Essbase-båndet.

Retningslinjer for MDX-skript

Bruk følgende retningslinjer når du jobber med MDX-skript.

  • Bruk MDX-skript til å utføre operasjonen Sett inn data eller Eksporter data.

  • For rutenettanalyse bruker du MDX-rapporter i stedet for MDX-skript.

  • MDX-skript kan inneholde erstatningsvariabler for kjøretid.

    • Hvis de skal kunne brukes i Smart View, må MDX-skript med erstatningsvariabler for kjøretid bruke XML-syntaksen med beregningskommandoen SET RUNTIMESUBVARS, inkludert <RTSV_HINT>.

    • Hvis du vil konfigurere en erstatningsvariabel for kjøretid slik at den beregner bare den synlige sektoren med data i Smart View, setter du verdien for erstatningsvariabelen for kjøretid til Skjæringspunkt og datatypen til medlem.

    • Når MDX-skriptene kjøres fra Web-grensesnittet til Essbase, kan de bruke erstatningsvariabler, men ikke erstatningsvariabler for kjøretid. Hvis du vil bruke erstatningsvariabler for kjøretid i MDX-skript, må du kjøre skriptene fra Smart View ved å velge BeregnEssbase-båndet.

Bruke erstatningsvariabler

Eksempler på MDX-skript

Nedenfor finner du eksempler på MDX-skript du kan kjøre på kuben Sample Basic, enten fra Jobber eller i Smart View.

MDX-innsetting

Du kan lagre dette MDX-skriptet og kjøre det fra Jobber 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]
);

Eksemplet ovenfor forutsetter at du tidligere har lagt til en Revised_Payroll-måling i Sample Basic.

MDX-eksport

Du kan lagre dette MDX-skriptet og kjøre det fra Jobber 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 kjørt skriptet, lagres eksportfilen sample01.txt i kubekatalogen i 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-eksport med erstatningsvariabel for kjøretid

Du kan lagre dette MDX-skriptet og kjø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 kjørt skriptet, lagres eksportfilen sample002.txt i kubekatalogen i 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