Analizzare e gestire i dati con MDX

MDX (Multidimensional Expressions) è un linguaggio di manipolazione dati ed esecuzione query particolarmente potente.

Il linguaggio MDX consente di:

  • eseguire query e report su dati e metadati nei cubi Essbase;

  • inserire i dati in un cubo Essbase;

  • esportare i dati da un cubo Essbase.

Una query MDX è un'istruzione MDX singola, che dispone esattamente di un solo set di risultati, che si applica a un cubo singolo.

Un report MDX è una query MDX singola salvata nel contesto del cubo. È possibile accedere ai report da Smart View e dall'interfaccia Web di Essbase.

Uno script MDX è un file con estensione .mdx che può essere caricato e quindi eseguito dalla pagina Job o in Smart View. Negli script MDX devono essere utilizzate solo istruzioni MDX Insert ed Export. Per analizzare i dati di griglia, utilizzare i report MDX anziché gli script MDX.

Argomenti:

Analizzare i dati con report MDX

È possibile memorizzare e visualizzare le query nell'interfaccia Web di Essbase utilizzando report MDX. L'autorizzazione minima richiesta per creare un report è Gestione database.

La definizione di layout mediante la scheda Analisi ad hoc potrebbe non essere il metodo più efficace per creare un report elaborato. Se si conosce esattamente la natura dei dati su cui eseguire una query, è possibile utilizzare il linguaggio MDX per creare la query per popolare la griglia.

Per creare un report MDX, effettuare le operazioni riportate di seguito.
  1. Eseguire il login all'interfaccia Web di Essbase con il ruolo Gestione database o un ruolo con maggiori privilegi.
  2. Passare ad Analizza dati.
    • Nell'interfaccia Redwood aprire l'applicazione, aprire il database (cubo), quindi fare clic su Analizza dati.
    • Nell'interfaccia Web classica espandere l'applicazione, selezionare un cubo, fare clic sul menu Azioni a destra del nome del cubo e selezionare Analizza dati.
  3. Nella vista Analizza selezionare la scheda Report e fare clic su Crea.
  4. Immettere il nome e, se necessario, la descrizione del report.
  5. Nel campo Query immettere una query MDX pertinente per il cubo corrente. Ad esempio:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    La query deve contenere entrambe le specifiche degli assi per le righe e le colonne. In altre parole, la sintassi della query deve includere le specifiche per ON COLUMNS e ON ROWS, anche se è stato specificato un solo set vuoto {} per un asse.

    Poiché il contesto della funzione Analizza dati è il cubo attivo, si consiglia di omettere la specifica facoltativo del cubo (la clausola FROM) nei report MDX. L'omissione della clausola garantisce maggiore flessibilità: se il cubo viene copiato o rinominato, il report funzionerà nel nuovo cubo.

    Le variabili di sostituzione sono supportate nei report MDX, a differenza delle variabili di sostituzione in runtime. Per usare le variabili di sostituzione in runtime, salvare la query MDX come script ed eseguirla da Smart View utilizzando l'opzione Calcola della barra multifunzione Essbase.

  6. Fare clic su Convalida per verificare la sintassi MDX, quindi fare clic su Salva.
  7. Dal pannello Report a sinistra, selezionare il report salvato per presentare una griglia.

Per ulteriori informazioni su MDX, vedere MDX e Scrittura di query MDX.

Accesso ai report MDX

Le modalità d'uso dei report dipendono dal tipo di accesso al cubo di cui si dispone.

Gli utenti che dispongono, come minimo, del ruolo a livello applicazione Accesso a database possono visualizzare i report MDX salvati creati da altri utenti. I dati che un utente può vedere visualizzati nel report dipendono dell'accesso filtro di cui dispone.

Oltre a visualizzare i report salvati, gli utenti con il ruolo Accesso a database possono esportare i set di risultati in vari formati: HTML, CSV, Excel e JSON.

Gli utenti con il ruolo Accesso a database possono inoltre visualizzare la query MDX che definisce il report facendo clic sul menu Azioni accanto al nome del report e selezionando Visualizza.

Se si dispone almeno del ruolo Gestione database, è possibile utilizzare i report come gli utenti che dispongono del ruolo Accesso a database. Inoltre, è possibile modificare ed eliminare i report utilizzando il menu Azioni.

Gli amministratori di servizi usufruiscono del privilegio aggiuntivo che consiste nell'uso del pulsante Esegui come per rappresentare altri utenti e verificarne l'accesso ai dati. Ciò può essere utile per eseguire i test dei filtri assegnati ai vari utenti.

Esempi di report MDX

Gli esempi MDX di questa sezione descrivono i tipi speciali di analisi che è possibile eseguire tramite i report MDX ma che risultano più difficili da effettuare in una vista Analisi ad hoc.

Gli esempi riportati di seguito sono stati progettati per l'uso con il cubo Sample Basic.

Report metadati

L'esempio seguente restituisce solo i metadati (i nomi dei membri ma non i dati):

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

viene restituita la griglia seguente:

Output del report con i membri Product 100, 200, 300, 400 e Diet

Report attributi

L'esempio seguente utilizza i membri di una dimensione attributo nelle colonne:

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

viene restituita la griglia seguente:

Output del report con i membri Product 100, 200, 300, 400 e Diet nelle righe. Nelle colonne vengono mostrati i membri attributo: Ounces_32, Ounces_20, Ounces_16 e Ounces_12

Report filtrato

L'esempio seguente utilizza uno slicer (clausola WHERE) per limitare la query a Cola. Inoltre, la funzione Filter limita i mercati di livello 0 nella query ai soli mercati con profitto negativo.

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

viene restituita la griglia seguente:

Output del report con i membri Market Oregon, Utah, Nevada, Oklahoma, Louisiana, Ohio, Wisconsin, Missouri e Iowa nelle righe. Nelle colonne viene mostrato il profitto. I valori dei dati sono tutti negativi.

Report ADU

L'esempio seguente mostra i dati Product per i membri dimensione Market ai quali è associato l'attributo definito dall'utente (ADU) "Major Market". Uno slicer (clausola WHERE) limita la query in modo che includa solo i dati Sales.

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

viene restituita la griglia seguente:

Output del report con i membri Product 100, 200, 300, 400 e Diet nelle righe. Nelle colonne vengono mostrati i mercati più importanti East e Central.

Inserire ed esportare i dati con MDX

Oltre a essere utile per l'analisi basata su griglia, MDX consente di copiare e aggiornare i subset di dati multidimensionali.

La clausola MDX Insert consente di aggiornare il cubo con i dati utilizzando un membro calcolato (non fisico) definito con il linguaggio MDX.

La clausola MDX Export consente di salvare ed esportare i risultati delle query sotto forma di subset che sarà possibile visualizzare o importare in un secondo momento.

Le istruzioni MDX Insert ed Export possono essere eseguite come script MDX salvati.

Per ulteriori informazioni sulle clausole MDX Insert ed Export, vedere Specifica di MDX Insert e Specifica di MDX Export.

Eseguire gli script MDX

Utilizzare gli script MDX quando è necessario eseguire operazioni di inserimento o esportazione dei dati.

Per l'analisi dei dati di griglia utilizzare i report MDX. Vedere Analizzare i dati con report MDX.

Per usare gli script MDX selezionare un workflow:

Scrivere, caricare ed eseguire uno script MDX

Utilizzare questo workflow per scrivere script MDX in un editor di testo e caricarli in Essbase.

  1. Scrivere lo script MDX in un editor di testo e salvare il file con l'estensione .mdx.

  2. Caricare lo script MDX nella directory dell'applicazione o del cubo sotto File nell'interfaccia Web Essbase.

  3. Eseguire lo script MDX da Job o da Smart View selezionando Calcola nella barra multifunzione Essbase.

Scrivere uno script MDX nell'editor di script ed eseguirlo

Utilizzare questo workflow per scrivere gli script MDX in un editor di script nel cubo ed eseguirli da Job.

  1. Nella pagina Applicazioni aprire l'applicazione e aprire il database (cubo).

  2. Fare clic su Script, quindi su Script MDX.

  3. Fare clic su Crea, immettere un nome per lo script e fare clic su OK.

  4. Scrivere lo script MDX. Una struttura ad albero di membri e una lista di funzioni possono rivelarsi utili.

  5. Convalidare e salvare lo script, quindi chiudere l'editor di script.

  6. Eseguire lo script MDX da Job (vedere Esegui MDX) oppure, se si utilizza Smart View, selezionando Calcola nella barra multifunzione Essbase.

  1. Espandere un'applicazione e un cubo nella pagina Applicazioni.

  2. Nel menu Azioni del cubo fare clic su Ispeziona.

  3. Fare clic su Script, quindi su Script MDX.

  4. Fare clic su + per aprire l'editor di script.

  5. Scrivere lo script MDX. Una struttura ad albero di membri e una lista di funzioni possono rivelarsi utili.

  6. Convalidare e salvare lo script, quindi chiudere l'editor di script.

  7. Eseguire lo script MDX da Job (vedere Esegui MDX) oppure, se si utilizza Smart View, selezionando Calcola nella barra multifunzione Essbase.

Creare uno script MDX in Cube Designer ed eseguirlo

Utilizzare questo workflow per creare gli script MDX utilizzando una cartella di lavoro dell'applicazione ed eseguirli da Job.

  1. Creare un foglio di lavoro MDX in una cartella di lavoro dell'applicazione. Vedere Utilizzare i fogli di lavoro MDX in Cube Designer.
  2. Aggiungere un nome file nel campo Nome file.
  3. Nel campo Esegui MDX indicare se eseguire MDX al momento della creazione del cubo. Le voci valide sono e No.
  4. Aggiungere lo script MDX sotto la riga Script.
  5. Salvare la cartella di lavoro dell'applicazione.
  6. Generare il cubo. Vedere Creare un'applicazione e un cubo in Cube Designer.
  7. Eseguire lo script MDX da Job oppure, se si utilizza Smart View, selezionando Calcola nella barra multifunzione Essbase.

Istruzioni per gli script MDX

Attenersi alle istruzioni riportate di seguito quando si utilizzano gli script MDX.

  • Utilizzare gli script MDX per eseguire le operazioni di inserimento o esportazione dei dati.

  • Per l'analisi delle griglie, utilizzare i report MDX anziché gli script MDX.

  • Gli script MDX possono facoltativamente includere variabili di sostituzione in runtime.

    • Per poter essere utilizzati in Smart View, gli script MDX che includono variabili di sostituzione in runtime devono usare la sintassi XML all'interno del comando di calcolo SET RUNTIMESUBVARS, <RTSV_HINT> compreso.

    • Per definire una variabile di sostituzione in runtime in modo che calcoli solo la sezione di dati visibile in Smart View, impostarne il valore su POV e impostare il tipo di dati su member.

    • Quando l'esecuzione viene effettuata dall'interfaccia Web Essbase, gli script MDX possono usare le variabili di sostituzione, ma non le variabili di sostituzione in runtime. Per utilizzare le variabili di sostituzione in runtime negli script MDX, è necessario eseguire gli script da Smart View utilizzando l'opzione Calcola nella barra multifunzione Essbase.

Usare le variabili di sostituzione

Esempi di script MDX

Di seguito vengono forniti alcuni esempi di script MDX che possono essere eseguiti sul cubo Sample Basic, da Job o in Smart View.

MDX Insert

È possibile salvare questo script .mdx ed eseguirlo da Job o dalla finestra di dialogo Calcola 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]
);

Nell'esempio precedente si suppone che l'utente abbia aggiunto una misura Revised_Payroll al cubo Sample Basic.

MDX Export

È possibile salvare questo script .mdx ed eseguirlo da Job o dalla finestra di dialogo Calcola 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])

Al termine dell'esecuzione dello script, il file di esportazione sample01.txt viene salvato nella directory del cubo del catalogo file:

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 con una variabile di sostituzione in runtime

È possibile salvare questo script .mdx ed eseguirlo dalla finestra di dialogo Calcola 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])

Al termine dell'esecuzione dello script, il file di esportazione sample002.txt viene salvato nella directory del cubo del catalogo file:

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