DAX per modelli multidimensionali

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Questo articolo descrive come Power BI usa query DAX (Espressioni di analisi dei dati) per segnalare i modelli multidimensionali in SQL Server Analysis Services.

In precedenza, le applicazioni di creazione di report usano MDX (espressioni multidimensionali) come linguaggio di query su database multidimensionali. MDX è ottimizzato per modelli visivi comuni, ad esempio tabelle pivot in Excel e altre applicazioni di report destinate alla semantica aziendale multidimensionale. A partire da SQL Server 2012 SP1, Analysis Services supporta l'uso di DAX e MDX su modelli multidimensionali e tabulari. DAX, tuttavia, è stato originariamente progettato per i modelli di dati tabulari. Anche se DAX è considerato più semplice da usare, è anche più incentrato sulle visualizzazioni di dati più semplici, ad esempio tabelle, grafici e mappe nei report e nei dashboard. Power BI usa DAX per eseguire query su modelli tabulari e multidimensionali.

Poiché DAX è progettato principalmente per i modelli tabulari, esistono alcuni mapping interessanti e utili e vincoli, che devono essere compresi quando si usa DAX rispetto ai modelli multidimensionali.

Compatibilità

Power BI usa DAX per eseguire query su modelli multidimensionali di Analysis Services in SQL Server 2016 e versioni successive di Enterprise o Standard. SQL Server 2012 e SQL Server edizioni Enterprise o Business Intelligence 2014 sono supportate anche queste versioni.

Funzionalità

DAX non è un subset di MDX. DAX è stato inizialmente progettato per essere simile al linguaggio della formula di Excel. Nei modelli tabulari, DAX viene usato in un archivio dati relazionale costituito da tabelle e relazioni. DAX viene usato anche per creare misure personalizzate, colonne calcolate e regole di sicurezza a livello di riga.

Oltre a essere un linguaggio di calcolo, è anche possibile usare DAX per eseguire query. Questo articolo descrive il funzionamento delle query DAX su un modello multidimensionale.

Interazione tra MDX e DAX

Le espressioni DAX sono supportate solo nei modelli tabulari. Non è possibile usare misure create da un'espressione DAX in un modello multidimensionale. Una query DAX in un modello multidimensionale può fare riferimento a una misura o ad un altro calcolo definito in tale modello, ma tali calcoli devono essere creati usando il linguaggio MDX. Non è possibile usare espressioni DAX in cui è necessaria un'espressione MDX e viceversa e alcune funzioni DAX, ad esempio PATH, non sono applicabili nella modellazione multidimensionale.

Sintassi DAX

La sintassi delle formule DAX è molto simile a quella delle formule di Excel e prevede l'utilizzo di una combinazione di funzioni, operatori e valori. Per altre informazioni sulla sintassi per le singole funzioni, vedere riferimento alla funzione DAX.

Mapping di oggetti da multidimensionali a tabulari

Analysis Services offre una rappresentazione dei metadati del modello tabulare di un modello multidimensionale. Gli oggetti in un modello multidimensionale vengono quindi rappresentati come oggetti tabulari in Power BI. Questo mapping viene esposto a Power BI usando il set di righe dello schema DISCOVER_CSDL_METADATA .

Mapping degli oggetti

Oggetto multidimensionale Oggetto tabulare
Cubo Modello
Dimensione del cubo Tabella
Attributi dimensione (Chiave/i, Nome) Colonna
Gruppo di misure Tabella
Misura Misura
Misura senza gruppo di misure In una tabella denominata Misure
Relazione di dimensione del cubo del gruppo di misure Relazione
Prospettiva Prospettiva
Indicatore KPI Indicatore KPI
Gerarchie utente/padre-figlio Gerarchia
Cartella di visualizzazione Cartella di visualizzazione

Misure, gruppi di misure e indicatori KPI

I gruppi di misure in un cubo multidimensionale vengono visualizzati nell'elenco Campi di Power BI come tabelle con un'icona calcolatrice.

Le misure in un gruppo di misure vengono visualizzate come misure. Se sono presenti misure calcolate che non hanno un gruppo di misure associato, vengono raggruppate in una tabella speciale denominata Misure.

Per semplificare modelli multidimensionali più complessi, gli autori possono definire un set di misure o indicatori KPI in un cubo da inserire in una cartella di visualizzazione. Power BI può visualizzare le cartelle e le misure e gli indicatori KPI in essi.

Misure e indicatori KPI in un gruppo di misure

Misure e indicatori KPI nell'elenco Campi di Power BI

Misure come varianti

Le misure nei modelli multidimensionali sono varianti. Ciò significa che le misure non sono fortemente tipizzate e che possono avere tipi di dati diversi. Nell'immagine seguente, ad esempio, la misura Amount nella tabella Financial Reporting per impostazione predefinita è Il tipo di dati Valuta, ma ha anche un valore stringa NA per il subtotale degli account statistici, ovvero tipo di dati String. Power BI riconosce determinate misure come varianti e mostra i valori e la formattazione corretti nelle diverse visualizzazioni.

Misura come variante

Misura come variante

Misure implicite

I modelli tabulari offrono agli utenti la possibilità di creare misure implicite quali conteggio, somma o media dei campi. Per i modelli multidimensionali, poiché i dati dell'attributo dimensione sono archiviati in modo diverso, l'esecuzione di query su misure implicite può richiedere molto tempo. A causa di questo, le misure implicite sui modelli multidimensionali non sono disponibili in Power BI.

Dimensioni, attributi e gerarchie

Le dimensioni del cubo vengono esposte come tabelle nei metadati tabulari. Nell'elenco Campi di Power BI gli attributi delle dimensioni vengono visualizzati come colonne all'interno delle cartelle di visualizzazione. Attributi della dimensione che hanno la proprietà AttributeHierarchyEnabled impostata su False; ad esempio: l'attributo Data di nascita nella dimensione Customer o la proprietà AttributeHierarchyVisible impostata su false non verrà visualizzata nell'elenco Campi di Power BI. Gerarchie a più livelli o gerarchie utente; Ad esempio Customer Geography nella dimensione Customer, vengono esposti come gerarchie nell'elenco Campi di Power BI. I sconosciuti nascosti di un attributo di dimensione vengono esposti nelle query DAX e in Power BI.

Dimensioni, attributi e gerarchie in SQL Server Data Tools (SSDT) e elenco campi di Power BI

Dimensioni, attributi, gerarchie nell'elenco di campi SSDT e Power BI

Tipo di attributo dimensione

I modelli multidimensionali supportano l'associazione degli attributi dimensione a tipi di attributi dimensione specifici. L'immagine seguente mostra la dimensione Geography in cui gli attributi della dimensione City, State-Province, Country e Postal Code hanno tipi geography associati. Questi sono esposti nei metadati tabulari. Power BI riconosce i metadati che consentono agli utenti di creare visualizzazioni mappa. Questa opzione è indicata dall'icona della mappa accanto alle colonne City, Country, Postal Code e State-Province nella tabella Geography nell'elenco campi di Power BI.

Dimensione geografica nell'elenco campi SSDT e Power BI

Tipo di attributo dimensione nell'elenco campi SSDT e Power BI

Membri calcolati della dimensione

I modelli multidimensionali supportano i membri calcolati per Tutti con un singolo membro reale. Di seguito sono riportati vincoli aggiuntivi riguardanti l'esposizione di questo tipo di membro calcolato:

  • Deve essere un membro reale singolo quando la dimensione presenta più di un attributo.
  • Un attributo contenente membri calcolati non può essere l'attributo chiave della dimensione, a meno che non sia l'unico attributo.
  • Un attributo contenente membri calcolati non può essere un attributo padre-figlio.

I membri calcolati delle gerarchie utente non vengono esposti in Power BI, ma gli utenti possono comunque connettersi a un cubo contenente membri calcolati nelle gerarchie utente.

Membri predefiniti

I modelli multidimensionali supportano i membri predefiniti per gli attributi dimensione. Il membro predefinito viene utilizzato da Analysis Services nel corso dell'aggregazione di dati per una query. Il membro predefinito di un attributo dimensione viene esposto come filtro o valore predefinito per la colonna corrispondente nei metadati tabulari.

Power BI si comporta in modo analogo alle tabelle pivot di Excel quando vengono applicati gli attributi. Quando un utente aggiunge una colonna a una visualizzazione di Power BI (tabella, matrice o grafico) che contiene un valore predefinito, il valore predefinito non verrà applicato e verranno visualizzati tutti i valori disponibili. Se l'utente aggiunge la colonna a Filtri, viene applicato il valore predefinito.

Sicurezza delle dimensioni

I modelli multidimensionali supportano la sicurezza a livello di dimensione e di cella attraverso i ruoli. Un utente che si connette a un cubo usando Power BI viene autenticato e valutato per le autorizzazioni appropriate definite dai ruoli a cui appartiene l'utente. Quando viene applicata la sicurezza delle dimensioni, i rispettivi membri della dimensione non vengono visualizzati dall'utente in Power BI. Tuttavia, se un utente dispone di un'autorizzazione di sicurezza delle celle definita in cui determinate celle sono limitate, l'utente non può connettersi al cubo con Power BI. In alcuni casi, gli utenti possono vedere dati aggregati se porzioni di questi dati sono calcolate in base a dati sicuri.

Gerarchie/attributi non aggregabili

Nei modelli multidimensionali, gli attributi di una dimensione possono avere la proprietà IsAggregatable impostata su False. Ciò significa che l'autore del modello ha specificato applicazioni di creazione report non deve aggregare i dati tra gerarchie (attributo o multi-livello) quando eseguono query sui dati. In Power BI questo attributo della dimensione viene esposto come colonna per cui i subtotali non sono disponibili. Nell'immagine seguente viene visualizzato un esempio di gerarchia non aggregabile, Accounts. Il livello superiore della gerarchia padre-figlio Accounts è non aggregabile, mentre altri livelli lo sono. In una visualizzazione matrice della gerarchia Account (primi due livelli), vengono visualizzati subtotali per Il livello di account 02 , ma non per il livello più alto, Livello account 01.

Gerarchia non aggregabile in Power BI

Misura come variante

Immagini

Power BI offre la possibilità di eseguire il rendering delle immagini. Nei modelli multidimensionali, uno dei modi in cui è possibile fornire immagini da visualizzare in Power BI consiste nell'esporre colonne contenenti URL (Uniform Resource Locator) delle immagini. Analysis Services supporta l'assegnazione di tag agli attributi della dimensione come tipo ImageURL. Questo tipo di dati viene quindi fornito a Power BI nei metadati tabulari. Power BI può quindi scaricare e visualizzare le immagini specificate negli URL all'interno delle visualizzazioni.

Tipo di attributo dimensione ImageURL in SSDT

Dimensione ImageURL in SSDT

Gerarchie padre-figlio

I modelli multidimensionali supportano gerarchie padre-figlio, esposte come gerarchia nei metadati tabulari. Ogni livello della gerarchia padre-figlio viene esposto come colonna nascosta. L'attributo chiave della dimensione padre-figlio non viene esposto nei metadati tabulari.

Gerarchie padre-figlio nell'elenco dei campi di SSDT e Power BI

Gerarchie padre-figlio nell'elenco dei campi di SSDT e Power BI

Prospettive e traduzioni

Le prospettive sono viste dei cubi in cui solo alcune dimensioni o gruppi di misure sono visibili negli strumenti client. È possibile specificare un nome di prospettiva come valore per la proprietà Cube stringa di connessione. Nell'stringa di connessione seguente, ad esempio, "Direct Sales" è una prospettiva nel modello multidimensionale:

Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Direct Sales'

I cubi possono avere metadati e traduzioni dei dati specificati per varie lingue all'interno del modello. Per visualizzare le traduzioni (dati e metadati) un'applicazione può aggiungere la proprietà facoltativa Identificatore impostazioni locali al stringa di connessione, ad esempio:

Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Adventure Works'; Locale Identifier=3084

Quando Power BI Desktop si connette a un modello multidimensionale, passa automaticamente le impostazioni locali utente correnti identificate al server. Tuttavia, ciò non si verifica per un report pubblicato nel servizio Power BI.

Funzionalità non supportate

Sicurezza a livello di cella : non è supportata nei report di Power BI.

Azioni : non sono supportate nei report di Power BI o nelle query DAX su un modello multidimensionale.

Set denominati : nei modelli multidimensionali non sono supportati in Power BI o nelle query DAX su un modello multidimensionale.

Nota

Le azioni non supportate e i set denominati non impediscono agli utenti di connettersi ed esplorare modelli multidimensionali quando si usa Power BI.

Annotazioni CSDLBI

I metadati dei cubi multidimensionali vengono esposti come modello concettuale basato su Entity Data Model (EDM) dalle annotazioni Conceptual Schema Definition Language with Business Intelligence (CSDLBI).

I metadati multidimensionali sono rappresentati come spazio dei nomi del modello tabulare in un documento CSDLBI o CSDL in uscita, quando una richiesta DISCOVER_CSDL_METADATA viene inviata all'istanza di Analysis Services.

Esempio: DISCOVER_CSDL_METADATA richiesta

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
         <RequestType>DISCOVER_CSDL_METADATA</RequestType>
         <Restrictions>
            <RestrictionList>
              <CATALOG_NAME>"catalogname"<CATALOG_NAME>
            </RestrictionList>
         </Restrictions>
         <Properties>
            <PropertyList>
            </PropertyList>
         </Properties>
      </Discover>
   </Body>
</Envelope>

La richiesta di DISCOVER_CSDL_METADATA presenta le restrizioni seguenti:

Nome Obbligatorio Descrizione
CATALOG_NAME Nome del catalogo\database.
PERSPECTIVE_NAME Sì, se il cubo contiene più di una prospettiva. Facoltativo se è presente un solo cubo o una prospettiva predefinita. Nome del cubo o della prospettiva nel database multidimensionale.
VERSION Versione CSDL richiesta dal client. I costrutti e le funzionalità multidimensionali sono supportati nella versione 2.0.

Il documento CSDL in uscita restituito rappresenta il modello come spazio dei nomi, contenente entità, associazioni e proprietà.

Per altre informazioni sulle annotazioni CSDLBI, vedere Riferimento tecnico per le annotazioni BI in CSDL e [MS-CSDLBI]: Formato file definizioni schema concettuali con annotazioni di Business Intelligence.

SuperDAXMD

Con ogni versione di SQL Server Analysis Services, i miglioramenti supportano funzioni e funzionalità DAX nuove ed esistenti. In SQL Server 2019 CU5, una classe di funzioni DAX introdotta per i modelli tabulari in modo informale noto come SuperDAX è ora abilitata per i modelli multidimensionali.

Sebbene alcuni modelli di query DAX esistenti debbano essere riprogettati, le funzioni SuperDAX offrono miglioramenti significativi alle prestazioni delle query. I modelli di query DAX moderni che usano SuperDAX per i modelli multidimensionali offrono un forte incentivo per le organizzazioni che usano Power BI per aggiornare i server origine dati multidimensionali a SQL Server 2019 con CU5. Per altre informazioni, vedere SuperDAX per i modelli multidimensionali.

Vedi anche

DAX reference (Informazioni di riferimento su DAX)