SQLShack

Microsoft Power BI prend en charge deux langages différents, le langage M et le DAX (Data Analysis Expression) qui peuvent être utilisés pour filtrer, gérer et visualiser les données.

Le M peut être considéré comme un langage de formule de requête et il peut être utilisé dans l’éditeur de requête de Power BI afin de préparer les données avant de les charger dans le modèle Power BI.

A l’inverse, DAX est un langage de calcul analytique des données qui peut être utilisé pour une analyse approfondie des données pendant la phase de Data View.

M et DAX ne sont pas dépendants l’un de l’autre et suivent des structures et des logiques totalement différentes, et ont des codes sous-jacents différents. M et DAX ne peuvent pas être utilisés simultanément puisque le langage M est utilisé dans l’éditeur de requêtes tandis que DAX est surtout utilisé dans le modèle Data View.

Cet article de blog vous montrera comment M et DAX diffèrent l’un de l’autre dans Power BI, à l’aide d’exemples. Voir cet article pour une introduction rapide à DAX.

Importer le jeu de données

Dans cette section, nous allons importer un jeu de données factice que nous utiliserons pour exécuter nos requêtes en langage M et DAX. Pour ce faire, commencez par cliquer sur le bouton « Obtenir des données » dans le menu supérieur, comme le montre la capture d’écran suivante.

Un nouveau dialogue énumérera tous les liens de données ouverts à Power BI.

Insérez web » dans la section de recherche, et très rapidement une option de données Web » apparaîtra et aussi une icône s’affichera dans les options Toutes les sources de données. Sélectionnez l’option Web » et cliquez ensuite sur « connecter » en bas. Ceci est clair dans la capture d’écran ci-dessous.

La fenêtre de dialogue que vous pouvez voir dans la capture d’écran ci-dessous apparaîtra. Vous devez maintenant insérer l’URL ci-dessous dans le champ intitulé URL:

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

Cliquez sur « OK » pour confirmer lorsque c’est fait.

Voici une capture d’écran pour votre référence:

Cette URL amène Power BI à Github qui contient le fichier de données CSV dont nous avons besoin. Le fichier de données détaille un ensemble de données sur le taux de désabonnement des clients d’une entreprise de télécommunications. Il contient des données sur les clients d’une entreprise de télécommunications, qui ont quitté l’entreprise après une certaine période.

Selon la taille du fichier, le téléchargement des données depuis le site distant peut prendre un certain temps.

Une fois les données téléchargées, vous avez deux options : soit vous pouvez directement importer les données dans Data/Report View, soit vous pouvez d’abord charger les données dans Query Editor. Puisque le langage M fonctionne dans l’éditeur de requêtes, nous allons d’abord charger les données dans l’éditeur de requêtes en cliquant sur « Transformer les données », comme le montre la capture d’écran suivante :

Vous verrez que l’ensemble de données contient des informations sur un client, telles que le sexe, l’ancienneté, le service téléphonique, le service Internet, les personnes à charge, etc.

Une fois que vous avez cliqué sur le bouton Transformer, vous devriez voir l’éditeur de requête suivant.

Différences entre le langage M et DAX

Dans la section précédente, nous avons connecté Power BI à un jeu de données factice sur GitHub. Dans cette section, vous verrez à l’aide d’exemples, les différences entre le langage M et DAX.

Langage M

Tout d’abord, nous allons voir ce qu’est le langage M et comment il est utilisé dans Power BI. Comme je l’ai dit précédemment, le langage M est utilisé pour gérer et filtrer les données dans l’éditeur de requêtes. Si vous avez fermé l’éditeur de requêtes, vous pouvez l’ouvrir en cliquant sur l’option « Editer les requêtes » dans le menu supérieur.

Dans l’éditeur de requêtes, le seul nom de table sur le panneau gauche de l’écran sera votre table, comme indiqué ci-dessous. Cliquez sur la table de données « WA_Fn-UseC_-Telco-Customer-Churn » dans le panneau gauche de l’éditeur de requêtes, comme indiqué ci-dessous :

Pour voir les requêtes en M. Sélectionnez n’importe quelle colonne, par exemple « Partenaire », puis cliquez sur le bouton « Supprimer les colonnes » dans le menu supérieur. Cela supprimera la colonne « Partenaire » du tableau comme indiqué ci-dessous :

Ensuite, cliquez sur l’option « View » du menu supérieur comme mis en évidence dans la capture d’écran suivante.

Cliquez sur la case à cocher « Formula Bar ». Vous devriez maintenant voir une requête dans la barre de formule comme mis en évidence dans la capture d’écran suivante. La requête ici est « = Table.RemoveColumns(# »Changed Type »,{« Partner »}). Cette requête est une requête en langage M utilisée pour supprimer la colonne « Partenaire » de la table sélectionnée. Vous pouvez voir que la requête en langage M est plus similaire à une commande SQL ou LINQ (Language Integrated Query) en C#.

Pour voir toutes les requêtes M précédemment exécutées dans votre ensemble de données, vous pouvez cliquer sur « Affichage – Éditeur avancé » comme indiqué dans la capture d’écran suivante.

Une fois que vous avez cliqué sur l’option « Éditeur avancé » dans le menu supérieur, vous devriez voir la fenêtre de l’éditeur avancé comme indiqué ci-dessous. La fenêtre de l’éditeur avancé contient toutes les requêtes en langage M que vous avez exécutées jusqu’à présent dans la session actuelle.

Vous pouvez voir que la dernière requête est celle qui a supprimé la colonne « Partenaire » de la table. Avant cela, la requête « Change Type » est utilisée pour affecter les types de données aux différentes colonnes de l’ensemble de données. Et avant cela, la requête « Promoted Headers » est utilisée pour définir les colonnes d’en-tête. Si vous exécutez une autre requête, celle-ci apparaîtra en bas de la liste des requêtes dans l' »Éditeur avancé ».

Essayons d’ajouter une simple colonne dans la table des livres et voyons la requête M pour cela. Cliquez sur l’option « Add Column -> Custom Column » dans le menu en haut de la fenêtre, comme vous pouvez le voir ci-dessous:

Vous devriez voir la fenêtre ci-dessous. Cliquez sur les colonnes « TotalCharges » et « MonthlyCharges » une par une, puis cliquez sur le bouton « Insert » pour les insérer sur la fenêtre de l’éditeur de requêtes. Dans la fenêtre de l’éditeur de requêtes, ajoutez un signe « + » entre les noms des deux colonnes et cliquez sur le bouton « OK ».

Vous devriez voir une nouvelle colonne « Monthly-Total » ajoutée au tableau comme indiqué ci-dessous. Dans la barre de formule, vous pouvez également voir la requête M générée pour créer la colonne « Monthly-Total ». La colonne « Monthly-Total » affiche essentiellement la somme des valeurs des colonnes « TotalCharges » et « MonthlyCharges ».

Maintenant, si vous ouvrez à nouveau la fenêtre « Éditeur avancé », vous verrez la requête utilisée pour ajouter la colonne « Monthly-Total » en bas des requêtes dans l’éditeur avancé.

Maintenant, nous savons comment le langage M fonctionne et à quoi il ressemble. Dans la section suivante, nous allons essayer de créer la même colonne « Mensuel-Total 2 » via DAX (Data Analysis Expression).

Les requêtes DAX sont exécutées dans la vue des données ; nous devons donc déplacer les données de l’éditeur de requêtes vers la vue des données. Pour ce faire, dans l’éditeur de requêtes, cliquez sur l’option « Fermer & Appliquer » dans le menu supérieur, comme indiqué ci-dessous :

Une fois que vous avez cliqué sur le bouton « Fermer & Appliquer », la vue des données sera ouverte.

DAX (Data Analysis Expression)

Dans cette section, nous verrons comment ajouter une nouvelle colonne à la table Livres en utilisant DAX. Dans la vue des données, cliquez sur l’option « Modélisation -> Nouvelle colonne » dans le menu supérieur comme indiqué ci-dessous :

Vous devriez voir la fenêtre suivante une fois que vous avez cliqué sur l’option « Nouvelle colonne ». Dans la barre de formule, vous pouvez voir le nom de la colonne par défaut. Vous pouvez exécuter les requêtes DAX dans cette barre de formule.

Saisissez la requête « Mensuel-Total 2 = +  » dans la barre de formule et appuyez sur la touche « Entrée ». Une fois que vous avez appuyé sur la touche « Entrée », vous verrez une nouvelle colonne « Monthly-Total 2 » qui affiche la somme des valeurs des colonnes « TotalCharges » et « MonthlyCharges ».

Vous pouvez voir que les requêtes DAX sont plus similaires à MS Excel.

Conclusion

M Language et DAX sont les deux langages supportés par Power BI pour manipuler, filtrer et analyser les données. Bien que ces deux langages aient des fonctionnalités similaires, ils fonctionnent indépendamment l’un de l’autre. M est utilisé pour prétraiter les données à l’intérieur de l’éditeur de requêtes tandis que DAX est utilisé pour analyser les données après leur chargement dans le modèle de vue des données.

  • Auteur
  • Postes récents
Ben Richardson dirige Acuity Training, un fournisseur leader de formation SQL le Royaume-Uni. Il offre une gamme complète de formations SQL, depuis les cours d’introduction jusqu’à l’administration avancée et la formation aux entrepôts de données – voir ici pour plus de détails. Acuity a des bureaux à Londres et à Guildford, dans le Surrey. Il blogue aussi occasionnellement sur le blog d’Acuity
Voir tous les messages de Ben Richardson

Derniers messages de Ben Richardson (voir tous)
  • Travailler avec les thèmes de rapport de Power BI – 25 février 2021
  • Power BI : Graphiques en cascade et visuels combinés – 19 janvier 2021
  • Power BI : formatage conditionnel et couleurs de données en action – 14 janvier 2021

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.