SQLShack

Recuperare le informazioni da un database tabulare è facile-basta interrogarlo con alcune funzioni di base DAX! In questo articolo, impareremo come interrogare un modello tabulare con alcune delle espressioni MDX, esaminare i risultati dell’interrogazione DAX e analizzare i dati dalle tabelle.

Requisiti

I prerequisiti per l’interrogazione con MDX sono SQL Server Management Studio 2014 o superiore con un’istanza tabulare SSAS installata e un database modello tabulare SSAS distribuito.

Preparazione dell’ambiente

L’interrogazione di un database di modelli tabulari SSAS con MDX avviene in SQL Server Management Studio, nella finestra query MDX.

Multidimensional Expressions (MDX) overview

MDX è un linguaggio di espressione in grado di interrogare e analizzare dati multidimensionali in cubi OLAP (come i database di modelli multidimensionali SSAS, ad esempio). Sebbene sia progettato principalmente per l’interrogazione di un database di modelli multidimensionali, può interrogare anche un database di modelli tabulari. D’altra parte, le funzioni DAX non possono interrogare i database di modelli multidimensionali, perché le espressioni di query DAX sono specifiche dei database di modelli tabulari.

Strutturalmente, MDX incorpora la sintassi specificata XMLA. Poiché è simile a T-SQL, sono presenti alcune istruzioni DDL, che possono gestire e organizzare costruzioni di dati multidimensionali. Questo vale solo per i database di modelli multidimensionali SSAS.

Per quanto riguarda la complessità, i principali tipi di espressioni MDX sono: costante (numerico, stringa ecc.), scalare e orientato agli oggetti. Questi tipi si combinano in espressioni complesse corrispondenti a istruzioni e funzioni MDX.

Quando si parla di interrogare un database di modelli tabulari SSAS, le espressioni in questo articolo sono combinate di tipo scalare / costante, come semplici espressioni cubiche. Queste espressioni recuperano solo i dati da un cubo tabulare, mostrano i risultati nelle colonne, ordinano i dati e li preparano per ulteriori analisi.

Interrogare il database dei modelli tabulari SSAS con MDX

All’inizio della maggior parte delle query MDX è l’istruzione SELECT, seguita da un’istruzione FROM. È molto simile al T-SQL (come opposto a Valutare istruzione DAX):

1
2
3

selezionare da

Questa query è la più semplice, e restituisce il valore 1 (“true”). Significa che è presente un database tabulare AW.

Selezionando la tabella Nome prodotto dalla tabella Prodotto, SELECT statement in T-SQL si presenta così:

1
2
3

SELEZIONARE dbo.ProductName Prodotto

La corrispondente istruzione MDX, sarebbe logicamente:

1
2
3
4
5

selezionare
{..}
da

Si noti le parentesi {}, che sono gli operatori come la parentesi in DAX. Racchiudono le istruzioni e rendono possibile aggiungere complessità nella scrittura delle query. Le query MDX sono case-insensitive come le query DAX.

Questa query recupera la colonna Nome prodotto e la tabella prodotto dal cubo tabulare AW, ma invece di mostrare la singola colonna, genera un errore di esecuzione:

Il motivo principale è nel tipo del modello e della sintassi del database: I database di modelli multidimensionali e tabulari hanno entrambi dimensioni, come concetto cruciale, ma MDX nella sua sintassi riconosce colonne, righe e altri elementi (specifici dei database multidimensionali) come assi nella query – immaginarli come gli assi x, y, z su un modello di cubo 3D.

Durante l’esecuzione di un modello Tabulare SSAS database, MDX deve riconoscere almeno due assi in loro: le colonne e le righe, per mostrare i dati correttamente:

1
2
3
4
5
6

selezionare
{..} sulle colonne,
{..} a righe
da

Ora, abbiamo impostato gli assi nella query, e il risultato mostra:

Come si può vedere, tutti i valori del Prodotto Nome colonna mostra su colonne risultato, e le righe mostrano i corrispondenti anni (nell’Anno Fiscale colonna) e il numero di elementi (in questo caso, parti di biciclette). Pertanto, invece di tre assi nella query MDX, quando si esegue l’interrogazione di un database di modelli tabulari SSAS, sono sufficienti solo due assi per recuperare i dati.

Questo esempio interroga la stessa tabella all’interno di entrambi gli assi:

1
2
3
4
5
6

selezionare
{..} sulle colonne,
{..} a righe
da

Il risultato della query mostra:

Il valore “1” significa “vero” in questo caso, e valore “(null)” significa che non ci sono dati correlati all’interno del Costo Standard della colonna.

  1. Visualizzazione di particolare valore (voce) dalla colonna specificata e NON VUOTO funzione

    Con MDX, è possibile vedere il singolo valore dalla colonna in una tabella di un database modello:

    1
    2
    3
    4
    5

    selezionare
    {{..}.Articolo (53)} su 0
    da

    In questo esempio, il risultato mostra il 53 ° elemento (scelto a caso) dalla colonna Nome modello. Si noti l’asse definito “su 0″ – invece di definire” colonne “(vedremo in ulteriori esempi) o” righe”, quel singolo valore viene posizionato all’inizio iniziale della vista tabulare del risultato della query.

    Con inserimento di funzione VUOTA, unico valore calcolato dalla particolare misura (Internet Totale delle Vendite) visualizza:

    1
    2
    3
    4
    5
    6

    selezionare
    non vuoto
    {.} per le colonne
    DA

  2. Tupla funzione

    Tupla è determinato set di dati, una combinazione di due o più membri di dimensione (in questo caso due valori da colonna Anno).

    1
    2
    3
    4
    5

    selezionare {.. : ..} sulle righe,
    {.} sulle colonne
    da

    Notare i valori specificati dalla colonna Anno che fanno l’intervallo di anni e i valori corrispondenti dal Margine Totale di Internet nel risultato della query.

  3. BAMBINI ed espressione MEMBRO

    Questa espressione mostra l’insieme di dati relativi a colonne o misure specificate. Di solito, questi set di valori si presentano come figli o membri ed è correlato alla gerarchia. Sono ordinati gerarchicamente nel risultato della query.

    1
    2
    3
    4
    5

    selezionate . SULLE COLONNE,
    ..BAMBINI SU RIGHE
    DA

    In questo caso, la misura del trasporto totale di Internet si basa sul calcolo con la colonna di trasporto e, quindi, può essere combinata.

    Si noti che le parentesi graffe non sono presenti nella query, ma la query è ancora valida senza di esse.

    Per mostrare solo i valori di una colonna desiderata con i BAMBINI di espressione, in corrispondenza con un non-correlati colonna, utilizzare questa query:

    1
    2
    3
    4
    5
    6

    selezionare
    {..} il 0,
    {..bambini} su 1
    DA

    Nota: in questa espressione, su 0 sta per su colonne e su 1 sta per su asse righe.

    Ecco un altro esempio utilizzando l’espressione di MEMBRO

    1
    2
    3
    4
    5

    Selezionate . sulle colonne,
    ..membri Righe
    Da

  4. clausola WHERE

    Aggiunta della clausola WHERE è l’unico modo per filtrare determinati dati da una tabella, ed è simile alla clausola WHERE in T-SQL:

    1
    2
    3
    4
    5
    6
    7

    selezionare
    {..} sulle colonne,
    {..} sulle righe
    da
    dove {..}

    Il valore della colonna Nome regione paese, “Francia” è correlato alla colonna Città nella tabella Geografia e la query inclusa nel risultato solo città dalla Francia.

    L’istruzione WHERE è in realtà l’asse slicer, che aggiunge una dimensione aggiuntiva sia nei database di modelli multidimensionali che tabulari.

  5. Espressione CASO

    Questa espressione è un confronto basato sull’ordine logico degli elementi, che restituisce un risultato di query.

    In questo esempio, creare una nuova misura denominata Panoramica importo vendite corrispondente a un intervallo di valori specificato da Misura Totale vendite Internet:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    con gli stati . come
    caso .
    quando 69712.49 poi ‘Grande’
    quando 1045.6 poi ‘Cattivo’
    altro ‘(normale)’
    fine
    selezionare
    {.
    , .
    } sulle colonne
    , {..membri} su righe
    da

Spero che ti sia piaciuto questo articolo e felice di interrogare un database di modelli tabulari SSAS con MDX!

  • Utilizzo di un Cubo e di un Sottocubo Espressioni
  • riferimenti Linguaggio MDX (multidimensional expression)
  • Query MDX Fondamentali (Analysis Services)

  • Autore
  • Post Recenti
Daniel Tikvicki
Daniel è un bibliotecario che ha eseguito in un vortice di mondo, dove è fluttuante e di apprendimento continuo. Ama i libri, semplicemente tutte le forme di espressione artistica (essendo lui stesso musicista/poeta), ed è editore underground (fanzine e musica sperimentale). Inoltre, i punti di interesse includono teologia, mitologia e pseudoscienza.
Daniel sta attualmente lavorando per ApexSQL LLC come Software sales engineer dove è specializzato per l’ambiente BI.

Daniel Tikvicki
Ultimi messaggi di Daniel Tikvicki (vedi tutti)
  • Come per il monitoraggio di SQL Server database tempdb – 6 luglio 2017
  • Come monitorare totale indici di SQL Server dimensioni – 12 giugno 2017
  • Come impostare e utilizzare il modo connessioni SQL Server – Maggio 8, 2017

Write a Comment

Il tuo indirizzo email non sarà pubblicato.