SQLShack

Microsoft Power BI supporta due diversi linguaggi, il linguaggio M e DAX (Data Analysis Expression) che possono essere utilizzati per filtrare, gestire e visualizzare i dati.

M può essere considerato come un linguaggio di formule di query e può essere utilizzato nel Power BI Query Editor per preparare i dati prima che possano essere caricati nel modello Power BI.

D’altra parte, DAX è un linguaggio di calcolo analitico dei dati che può essere utilizzato per un’analisi approfondita dei dati durante la fase di Data View.

M e DAX non dipendono l’uno dall’altro e seguono strutture e logiche totalmente diverse, e hanno codici sottostanti diversi. M e DAX non possono essere usati simultaneamente poiché il linguaggio M è usato in Query Editor mentre DAX è usato principalmente nel modello Data View.

Questo post del blog vi mostrerà come M e DAX differiscono tra loro in Power BI, con l’aiuto di esempi. Vedi questo articolo per una rapida introduzione a DAX.

Importazione del dataset

In questa sezione, importeremo un dataset fittizio che useremo per eseguire le nostre query M Language e DAX. Per fare questo iniziate cliccando il pulsante “Get data” nel menu in alto come mostrato nel seguente screenshot.

Un nuovo dialogo elencherà tutti i collegamenti ai dati aperti a Power BI.

Inserite web” nella sezione di ricerca, e in breve tempo apparirà un’opzione dati “Web” e anche un’icona apparirà nelle opzioni di tutte le fonti dati. Seleziona l’opzione “Web” e poi clicca su “connect” in basso. Questo è chiaro nello screenshot qui sotto.

La finestra di dialogo che puoi vedere nello screenshot qui sotto apparirà. Ora hai bisogno di inserire l’URL sottostante nel campo etichettato URL:

https://raw.githubusercontent.com/treselle-systems/customer_churn_analysis/master/WA_Fn-UseC_-Telco-Customer-Churn.csv

Clicca “OK” per confermare quando questo è stato fatto.

Ecco uno screenshot per tuo riferimento:

Questo URL porta Power BI a Github che contiene il file dati CSV di cui abbiamo bisogno. Il file di dati dettaglia un set di dati sulla rotazione dei clienti delle telecomunicazioni. Contiene dati sui clienti di una società di telecomunicazioni che hanno lasciato la società dopo un certo periodo.

A seconda delle dimensioni del file, potrebbe essere necessario un po’ di tempo per scaricare i dati dal sito remoto.

Una volta scaricati i dati, avete due opzioni: o potete importare direttamente i dati in Data/Report View, o potete prima caricare i dati in Query Editor. Poiché il linguaggio M funziona nell’editor di query, caricheremo prima i dati nell’editor di query cliccando su “Transform Data” come mostrato nella seguente schermata:

Vedrete che il set di dati contiene informazioni su un cliente, come il sesso, la durata, il servizio telefonico, il servizio internet, le persone a carico ecc.

Una volta cliccato sul pulsante Transform, dovreste vedere il seguente Query Editor.

Differenze tra M Language e DAX

Nella sezione precedente, abbiamo collegato Power BI a un dataset fittizio su GitHub. In questa sezione, vedrete con l’aiuto di esempi, le differenze tra il linguaggio M e DAX.

Linguaggio M

Per prima cosa, vedremo cos’è M e come viene usato in Power BI. Come ho detto prima, il linguaggio M è usato per gestire e filtrare i dati nell’Editor di Query. Se hai chiuso l’Editor di Query, puoi aprirlo cliccando l’opzione “Modifica Query” dal menu in alto.

Nell’Editor di Query, l’unico nome di tabella sul pannello sinistro dello schermo sarà la tua tabella, come mostrato di seguito. Clicca sulla tabella dati “WA_Fn-UseC_-Telco-Customer-Churn” dal pannello sinistro dell’editor di query come mostrato qui sotto:

Per vedere le query in M. Seleziona qualsiasi colonna, per esempio, “Partner” e poi clicca il pulsante “Remove Columns” dal menu in alto. Rimuoverà la colonna “Partner” dalla tabella come mostrato sotto:

Successivamente, clicca sull’opzione “Visualizza” dal menu in alto come evidenziato nella seguente schermata.

Clicca sulla casella di controllo “Formula Bar”. Dovresti ora vedere una query nella barra della formula come evidenziato nel seguente screenshot. La query qui è “= Table.RemoveColumns(#”Changed Type”,{“Partner”}). Questa query è una query in linguaggio M usata per rimuovere la colonna “Partner” dalla tabella selezionata. Puoi vedere che la query del linguaggio M è più simile a un comando SQL o LINQ (Language Integrated Query) in C#.

Per vedere tutte le query M precedentemente eseguite nel tuo set di dati, puoi cliccare su “Visualizza – Editor avanzato” come mostrato nel seguente screenshot.

Una volta che hai cliccato sull’opzione “Editor avanzato” dal menu in alto, dovresti vedere la finestra Editor avanzato come mostrato di seguito. La finestra dell’Editor avanzato contiene tutte le query del linguaggio M che hai eseguito finora nella sessione corrente.

Puoi vedere che l’ultima query è quella che ha rimosso la colonna “Partner” dalla tabella. Prima di questo, la query “Change Type” è usata per assegnare i tipi di dati alle diverse colonne del set di dati. E prima ancora, la query “Promoted Headers” è usata per impostare le colonne di intestazione. Se esegui un’altra query, questa apparirà in fondo alla lista delle query nell'”Editor di avanzamento”.

Proviamo ad aggiungere una semplice colonna nella tabella dei libri e vediamo la query M per questo. Clicca sull’opzione “Add Column -> Custom Column” nel menu in alto nella finestra, come puoi vedere qui sotto:

Dovresti vedere la finestra qui sotto. Clicca una per una sulle colonne “TotalCharges” e “MonthlyCharges” e poi clicca sul pulsante “Insert” per inserirle nella finestra dell’editor di query. Nella finestra dell’editor di query, aggiungi un segno “+” tra i nomi delle due colonne e clicca il pulsante “OK”.

Dovresti vedere una nuova colonna “Monthly-Total” aggiunta alla tabella come mostrato qui sotto. Nella barra della formula, potete anche vedere la query M generata per creare la colonna “Totale mensile”. La colonna “Totale mensile” visualizza fondamentalmente la somma dei valori nelle colonne “TotalCharges” e “MonthlyCharges”.

Ora se aprite di nuovo la finestra “Advanced Editor”, vedrete la query usata per aggiungere la colonna “Monthly-Total” in fondo alle query nell’editor avanzato.

Ora sappiamo come funziona il linguaggio M e come appare. Nella prossima sezione, proveremo a creare la stessa colonna “Totale mensile 2” tramite DAX (Data Analysis Expression).

Le query DAX vengono eseguite nella Vista Dati; quindi, dobbiamo spostare i dati dall’Editor di query alla Vista Dati. Per farlo, nell’Editor di Query, cliccate sull’opzione “Chiudi & Applica” dal menu in alto come mostrato di seguito:

Una volta cliccato sul pulsante “Chiudi & Applica”, la Vista Dati verrà aperta.

DAX (Data Analysis Expression)

In questa sezione, vedremo come aggiungere una nuova colonna alla tabella Libri usando DAX. Nella Vista Dati, cliccate sull’opzione “Modellazione -> Nuova colonna” dal menu in alto come mostrato qui sotto:

Dovreste vedere la seguente finestra una volta cliccata l’opzione “Nuova colonna”. Nella barra della formula, puoi vedere il nome predefinito della colonna. Potete eseguire le query DAX in questa barra della formula.

Inserite la query “Totale mensile 2 = + ” nella barra della formula e premete il tasto “Enter”. Una volta premuto Invio, vedrete una nuova colonna “Totale mensile 2” che visualizza la somma dei valori nelle colonne “TotalCharges” e “MonthlyCharges”.

Puoi vedere che le query DAX sono più simili a MS Excel.

Conclusione

M Language e DAX sono i due linguaggi supportati da Power BI per manipolare, filtrare e analizzare i dati. Anche se entrambi i linguaggi hanno funzionalità simili, operano indipendentemente l’uno dall’altro. M è usato per pre-elaborare i dati all’interno del Query Editor mentre DAX è usato per analizzare i dati dopo che i dati sono stati caricati nel Data View Model.

  • Autore
  • Postati recenti
Ben Richardson gestisce Acuity Training un fornitore leader di formazione SQL nel Regno Unito. Offre una gamma completa di formazione SQL dai corsi introduttivi fino all’amministrazione avanzata e alla formazione sul data warehouse – vedi qui per maggiori dettagli. Acuity ha uffici a Londra e Guildford, Surrey. Occasionalmente scrive anche sul blog di Acuity
Vedi tutti i post di Ben Richardson

I post più recenti di Ben Richardson (vedi tutti)
  • Lavorare con i temi dei report Power BI – 25 febbraio 2021
  • Power BI: Grafici a cascata e visualizzazioni combinate – 19 gennaio 2021
  • Power BI: Formattazione condizionale e colori dei dati in azione – 14 gennaio 2021

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.