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:
È 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 ulteriori informazioni su MDX, vedere MDX e Scrittura di query 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.
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:
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:
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:
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:
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.
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:
Utilizzare questo workflow per scrivere script MDX in un editor di testo e caricarli in Essbase.
Scrivere lo script MDX in un editor di testo e salvare il file con l'estensione .mdx
.
Caricare lo script MDX nella directory dell'applicazione o del cubo sotto File nell'interfaccia Web Essbase.
Eseguire lo script MDX da Job o da Smart View selezionando Calcola nella barra multifunzione Essbase.
Utilizzare questo workflow per scrivere gli script MDX in un editor di script nel cubo ed eseguirli da Job.
Nella pagina Applicazioni aprire l'applicazione e aprire il database (cubo).
Fare clic su Script, quindi su Script MDX.
Fare clic su Crea, immettere un nome per lo script e fare clic su OK.
Scrivere lo script MDX. Una struttura ad albero di membri e una lista di funzioni possono rivelarsi utili.
Convalidare e salvare lo script, quindi chiudere l'editor di script.
Eseguire lo script MDX da Job (vedere Esegui MDX) oppure, se si utilizza Smart View, selezionando Calcola nella barra multifunzione Essbase.
Espandere un'applicazione e un cubo nella pagina Applicazioni.
Nel menu Azioni del cubo fare clic su Ispeziona.
Fare clic su Script, quindi su Script MDX.
Fare clic su + per aprire l'editor di script.
Scrivere lo script MDX. Una struttura ad albero di membri e una lista di funzioni possono rivelarsi utili.
Convalidare e salvare lo script, quindi chiudere l'editor di script.
Eseguire lo script MDX da Job (vedere Esegui MDX) oppure, se si utilizza Smart View, selezionando Calcola nella barra multifunzione Essbase.
Utilizzare questo workflow per creare gli script MDX utilizzando una cartella di lavoro dell'applicazione ed eseguirli da Job.
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.
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