DAX per modelli multidimensionali
Si applica a:
SQL Server Analysis Services
Azure Analysis Services
Power BI Premium
Questo articolo descrive come Power BI le query DAX (Data Analysis Expressions) per creare report su modelli multidimensionali in SQL Server Analysis Services.
Le applicazioni di creazione report usano in modo cronologico MDX (espressioni multidimensionali) come linguaggio di query per database multidimensionali. MDX è ottimizzato per modelli visivi comuni come le tabelle pivot in Excel e altre applicazioni di report che hanno come destinazione la 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. Sebbene DAX sia considerato più semplice da usare, è anche più incentrato sulle visualizzazioni dei dati più semplici, ad esempio tabelle, grafici e mappe in report e 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 su modelli multidimensionali.
Compatibilità
Power BI usa DAX per eseguire query Analysis Services modelli multidimensionali in SQL Server 2016 e versioni successive Enterprise o standard. SQL Server 2012 e SQL Server 2014 Enterprise o business intelligence sono supportate anche le edizioni di Business Intelligence, ma queste versioni sono ora fuori dal supporto mainstream.
Funzionalità
DAX non è un subset di MDX. DAX è stato inizialmente progettato per essere simile al linguaggio Excel formula. 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 all'interno di modelli tabulari. Non è possibile usare misure create da un'espressione DAX in un modello multidimensionale. Una query DAX a un modello multidimensionale può fare riferimento a una misura o a un altro calcolo definito in tale modello, ma tali calcoli devono essere creati usando il linguaggio MDX. Le espressioni DAX non possono essere usate quando è necessaria un'espressione MDX e viceversa e alcune funzioni DAX, ad esempio PATH, non sono applicabili alla 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 le informazioni di riferimento sulle funzioni 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 DISCOVER_CSDL_METADATA di righe dello schema.
Mapping di oggetti
| Oggetto multidimensionale | Oggetto tabulare |
|---|---|
| Cubo | Modellare |
| 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 tra dimensioni 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'Power BI campi come tabelle con un'icona della calcolatrice.
Le misure in un gruppo di misure vengono visualizzate come misure. Se sono presenti misure calcolate a cui non è associato un gruppo di misure, vengono raggruppate in una tabella speciale denominata Measures.
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 visualizzare le cartelle e le misure e gli indicatori KPI in esse presenti.
Misure e indicatori KPI in un gruppo di misure
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 Currency, ma ha anche un valore stringa NA per il subtotale di Conti statistici , ovvero tipo di dati String. Power BI alcune misure come varianti e mostra i valori e la formattazione corretti nelle diverse visualizzazioni.
Misura come variante
Misure implicite
I modelli tabulari offrono agli utenti la possibilità di creare misure implicite, ad esempio conteggio, somma o media nei 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. Per questo scopo, le misure implicite nei modelli multidimensionali non sono disponibili in Power BI.
Dimensioni, attributi e gerarchie
Le dimensioni del cubo vengono esposte come tabelle nei metadati tabulari. Nell'Power BI campi, gli attributi della dimensione vengono visualizzati come colonne all'interno delle cartelle di visualizzazione. Attributi della dimensione con la proprietà AttributeHierarchyEnabled impostata su False. Ad esempio: l'attributo Birth Date nella dimensione Customer o la proprietà AttributeHierarchyVisible impostata su false non verrà visualizzata nell'elenco Power BI Campi. Gerarchie a più livelli o gerarchie utente; Ad esempio Customer Geography nella dimensione Customer, vengono esposte come gerarchie nell'Power BI Campi. Hidden UnknownMembers di un attributo di dimensione viene esposto nelle query DAX e Power BI.
Dimensione, attributi e gerarchie in SQL Server Data Tools (SSDT) e Power BI campi
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 agli attributi delle dimensioni City, State-Province, Country e Postal Code sono associati tipi geografici. Questi sono esposti nei metadati tabulari. Power BI i metadati che consentono agli utenti di creare visualizzazioni mappa. Ciò è indicato dall'icona della mappa accanto alle colonne City, Country, Postal Code e State-Province nella tabella Geography nell'elenco Power BI Campi.
Dimensione Geography in SSDT e Power BI campi
Membri calcolati della dimensione
I modelli multidimensionali supportano i membri calcolati per gli elementi figlio di All 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, tuttavia 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 molto simile Excel tabelle pivot quando vengono applicati attributi. Quando un utente aggiunge una colonna a una visualizzazione Power BI (tabella, matrice o grafico) che contiene un valore predefinito, il valore predefinito non verrà applicato e vengono 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 visti dall'utente in Power BI. Tuttavia, se a un utente è stata definita un'autorizzazione di sicurezza delle celle in cui sono limitate determinate celle, tale utente non potrà 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 che le applicazioni di creazione report non devono aggregare i dati tra gerarchie (attributo o più livelli) quando esere 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 Accounts (primi due livelli) vengono visualizzati i subtotali per Account Level 02 ma non per il livello superiore, Account Level 01.
Gerarchia non aggregabile in Power BI
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 è l'esposizione di 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 Power BI nei metadati tabulari. Power BI possibile scaricare e visualizzare le immagini specificate negli URL all'interno delle visualizzazioni.
Tipo di attributo 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 in SSDT e Power BI campi
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à Stringa di connessione cubo. Nella 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 alla 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 dell'utente correnti identificate al server. Tuttavia, ciò non si verifica per un report pubblicato nel Power BI servizio.
Funzionalità non supportate
Sicurezza a livello di cella - non è supportato nei Power BI report.
Azioni : non sono supportati nei report 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 usano 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
<Envelopexmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<Discoverxmlns="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 DISCOVER_CSDL_METADATA richiesta presenta le restrizioni seguenti:
| Nome | Obbligatorio | Descrizione |
|---|---|---|
| CATALOG_NAME | Sì | 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 | Sì | 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 Technical Reference for BI Annotations to CSDLe [MS-CSDLBI]: Conceptual Schema Definitions File Format with Business Intelligence Annotations.
SuperDAXMD
Con ogni versione di SQL Server Analysis Services, i miglioramenti supportano funzionalità e funzioni DAX nuove ed esistenti. Nel SQL Server 2019 CU5, una classe di funzioni DAX introdotte per la prima volta per i modelli tabulari, nota in modo informale come SuperDAX, è ora abilitata per i modelli multidimensionali.
Anche se potrebbe essere necessario riprogettare alcuni modelli di query DAX esistenti, 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 di 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)