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.

Analizzare i dati con report MDX

È possibile memorizzare e visualizzare le query nell'interfaccia Web di Essbase utilizzando i 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 Essbase come ruolo Database Manager o superiore.
  2. Passare a Analizza dati: nella Home page, andare all'applicazione e selezionare il menu Azioni Immagine dell'icona del menu Azioni nella pagina Applicazioni, accanto al nome dell'applicazione.. Scegliere Database > Database Name > 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.

    Nota

    Quando si utilizza Essbase su Autonomous AI Database, non includere il carattere percentuale (%) nei nomi dei report. La percentuale (%) di caratteri non è supportata negli URL. Se il nome di un report contiene %, si può verificare un errore quando si passa da Report alla vista Analizza dati.
  5. Nel campo Query immettere una query MDX pertinente per il cubo corrente. Ad esempio:
    SELECT
      {([West].children)}
    ON COLUMNS,
      {([Diet].children)}
    ON ROWS
    

    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 Writing MDX Queries.

Accesso ai report MDX

Le modalità d'uso dei report MDX di Essbase dipendono dall'accesso al cubo.

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 servizio Accesso a database possono inoltre visualizzare l'interrogazione 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 tipi speciali di analisi, che è possibile eseguire tramite i report MDX. Salvare i report MDX nella vista Analizza dell'interfaccia Web di Essbase, nella scheda Report.

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 di Essbase, MDX consente anche 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 sull'inserimento e l'esportazione MDX, vedere Specifica di inserimento MDX e Specifica di esportazione MDX.

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 salvarlo 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 Home page aprire l'applicazione e 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.

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 Utilizzo dei 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. Fare riferimento alla sezione Creare un'applicazione e uno 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

Utilizzare gli script MDX per eseguire le operazioni di inserimento o esportazione dei dati. Per l'analisi della griglia nell'interfaccia Web di Essbase, utilizzare i report MDX anziché gli script MDX. Gli script MDX possono facoltativamente includere variabili di sostituzione runtime ed è possibile eseguirle da Smart View.

Per poter essere utilizzato in Smart View, gli script MDX che con variabili di sostituzione nel runtime devono usare la sintassi XML all'interno del comando del 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 sono riportati alcuni esempi di script di inserimento ed esportazione MDX che è possibile eseguire nel cubo di base di esempio, dai job nell'interfaccia Web di Essbase o dall'operazione Calcola di Smart View.

Inserimento MDX

È possibile salvare questo script .mdx ed eseguirlo da Job o dalla schermata 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.

Esportazione MDX

È possibile salvare questo script .mdx ed eseguirlo da Job o dalla schermata 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 sample01.txt di esportazione 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 nella 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 sample002.txt di esportazione 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