Utiliser l’Affichage des requêtes DAX
Avec l’affichage des requêtes DAX dans Power BI, vous pouvez afficher et utiliser des requêtes Data Analysis Expressions (DAX) dans des modèles sémantiques.
Requêtes DAX
Dans Power BI, les formules DAX sont utilisées pour définir différents types de calculs pour vos données, mais peuvent également être utilisées pour définir la sécurité des rôles. Les requêtes DAX, en revanche, peuvent être utilisées pour renvoyer des données du modèle.
Les requêtes DAX sont similaires aux requêtes SQL dans la mesure où elles peuvent vous montrer les données que vous possédez déjà. Les requêtes DAX ne créent pas d'éléments dans le modèle ni de visuels dans le rapport.
Les requêtes DAX comportent deux parties principales :
- Une instruction EVALUATE, qui est obligatoire. Il spécifie quelles données et comment sont renvoyées dans la requête.
- Une instruction DEFINE, qui est facultative. Elle vous permet de définir des formules DAX, telles qu'une mesure, à utiliser dans la requête. Les mesures créées ou mises à jour à l’aide de la requête DAX DEFINE MEASURE sont des mesures étendues aux requêtes DAX, en cours d’exécution uniquement dans le contexte de la requête DAX. Les mesures étendues aux requêtes DAX peuvent être ajoutées au modèle à l’aide des actions de modèle de mise à jour CodeLens ou du bouton Mettre à jour le modèle avec des modifications.
Pour en savoir plus sur la façon dont les requêtes sont utilisées, consultez Requêtes DAX dans la référence DAX.
Ouvrir la vue de requête DAX
Dans Power BI Desktop, sélectionnez l’icône Affichage des requêtes DAX sur le côté gauche.
Dans l’espace de travail du service Power BI ou du portail Fabric, choisissez Écrire des requêtes DAX dans le menu contextuel.
Sur la page des détails du modèle sémantique du service Power BI ou du portail Fabric, sélectionnez Écrire des requêtes DAX en haut de la page.
Disposition de la vue des requêtes DAX
Examinons de plus près la vue des requêtes DAX dans Power BI Desktop.
La vue de requête DAX contient les éléments suivants :
Ruban
Le ruban d’affichage des requêtes DAX comporte des actions courantes utilisées lors de l’écriture de requêtes DAX.
Examinons de plus près les éléments du ruban :
Mettre en forme la requête
Sélectionnez le bouton du ruban Mettre en forme la requête ou utilisez Maj+Alt+F pour mettre en forme la requête actuelle. La requête est en retrait avec des tabulations. Les fonctions DAX sont remplacées par MAJUSCULES et des lignes supplémentaires sont ajoutées. Le formatage de votre requête DAX est considéré comme une bonne pratique et améliore la lisibilité de la requête DAX. La mise en forme est également mise en retrait de telle manière que vous pouvez réduire et développer des sections de la requête.
Commenter et décommenter
Sélectionnez le bouton du ruban Commentaire pour ajouter une double barre oblique inverse (//) au début de la ligne où se trouve le curseur ou de toutes les lignes sélectionnées. Cela commente les lignes et lorsque la requête DAX est exécutée, ces lignes sont ignorées.
Sélectionnez le bouton du ruban Ne pas commenter pour supprimer // au début de la ligne où se trouve le curseur ou de toutes les lignes sélectionnées. Cela ne fonctionne pas sur les lignes sur lesquelles une notation de commentaire sur plusieurs lignes est ajoutée.
Vous pouvez également utiliser CTRL+/ pour basculer entre commenter et décommenter.
Rechercher et remplacer
Sélectionnez le bouton du ruban Rechercher ou utilisez Ctrl+F pour rechercher du texte dans l’éditeur de requête DAX. Rechercher inclut des options pour faire correspondre la casse, faire correspondre le mot entier, utiliser une expression régulière et parcourir toutes les correspondances pour la requête en cours. Vous pouvez également cliquer sur le chevron à gauche de la zone Rechercher pour entrer du texte dans Remplacer.
Sélectionnez le bouton Remplacer dans le ruban ou utilisez Ctrl+H pour rechercher et remplacer du texte dans l’éditeur de requête DAX. Remplacer inclut des options permettant de conserver le boîtier et de le remplacer un par un ou tous en même temps.
Palette de commandes
Sélectionnez le bouton du ruban Palette de commandes ou utilisez Ctrl+Alt+P pour ouvrir la boîte de la palette de commandes. Vous pouvez rechercher des actions supplémentaires de l’éditeur de requêtes DAX et voir leurs raccourcis clavier associés.
Barre de commandes
La barre de commandes de la vue de requête DAX inclut les actions les plus importantes lors de l'utilisation de la vue de requête DAX.
Exécuter et annuler
Le bouton Exécuter exécute la requête DAX ou les lignes sélectionnées d'une requête. L'état d'une requête après son exécution apparaît dans la barre d'état inférieure.
Lorsqu'une requête est en cours d'exécution, le bouton devient un bouton Annuler, qui peut être utilisé pour arrêter une requête en cours d'exécution.
Mettre à jour le modèle avec des modifications
Le bouton Mettre à jour le modèle avec des modifications ajoutera ou remplacera les mesures de modèle avec les formules DAX des mesures étendues aux requêtes DAX. Les mesures étendues aux requêtes DAX sont celles du bloc DEFINE MEASURE. Vous pouvez également choisir d’ajouter ou de remplacer des mesures de modèle individuellement à l’aide du texte CodeLens qui apparaît au-dessus de chacun d’eux.
Éditeur de requêtes DAX
La vue des requêtes DAX comprend un éditeur de requêtes dans lequel vous pouvez écrire et modifier des requêtes. C'est bien plus qu'une simple barre de formule DAX plus grande. Il est plus puissant et présente de nombreuses similitudes avec l'éditeur DAX disponible dans VS Code.
L'éditeur de requêtes DAX contient les éléments suivants :
Suggestions et intelligence
Tapez votre requête et obtenez de l'aide avec des suggestions et Intellisense lors de l'édition.
Utilisez ENTRÉE ou TAB pour ajouter l'intellisense en surbrillance, ou SHIFT+ENTER ou ALT+ENTER pour passer à une autre ligne sans ajouter l'option intellisense. Le fait de sélectionner Échap ferme les superpositions.
Pointez pour afficher les formules de mesure
Lorsqu'une mesure est incluse dans la requête DAX, vous pouvez la survoler pour voir la formule, le nom et la description.
Sélectionner pour voir les actions rapides liées à l’icône d’ampoule pour les mesures
Sélectionner une mesure dans une instruction EVALUATE d’une requête sans instruction DEFINE fait apparaître l’ampoule des actions rapides. Sélectionnez Définir ou Définir avec des références pour créer une instruction DEFINE avec la formule de cette mesure, avec ou sans les formules DAX de la mesure de référence.
Mettre à jour les mesures du modèle à l'aide de CodeLens
L’utilisation de DEFINE MEASURE est utile lors de la création de mesures en vous permettant d’abord de les créer en tant que mesures étendues aux requêtes DAX. Vous pouvez modifier plusieurs mesures dans une seule fenêtre, puis exécuter la requête pour voir les résultats de toutes ou seulement de certaines d'entre elles avec des colonnes de regroupement spécifiques. Vous n'avez pas besoin de créer un visuel de tableau dans la vue Rapport et de basculer entre les formules de mesure. CodeLens va encore plus loin en fournissant des invites lorsque la mesure existe déjà dans le modèle, ou si ce n'est pas le cas, il peut l'ajouter.
CodeLens est le texte cliquable qui s’affiche au-dessus d’un bloc DEFINE MEASURE. Pour les mesures étendues aux requête DAX qui ne sont pas déjà présentes dans le modèle, le CodeLens Mettre à jour le modèle : ajouter une nouvelle mesure apparaît, ce qui ajoute la mesure du modèle en cliquant dessus. Pour les mesures étendues aux requêtes DAX qui sont déjà présentes dans le modèle, et lorsque la formule DAX de mesure étendue à DAX est différente, le CodeLens Mettre à jour le modèle : remplacer la mesure apparaît, ce qui modifie la mesure du modèle en fonction de cette formule DAX en cliquant dessus.
Vous pouvez également ajouter ou remplacer plusieurs mesures à la fois en cliquant sur le bouton Mettre à jour le modèle avec les modifications dans la barre Commande.
Flux de travail de mise à jour des mesures
Les actions rapides de l'ampoule et CodeLens peuvent être utilisés ensemble dans un flux de travail complet :
- Dans le menu contextuel d'une mesure, choisissez Requêtes rapides, puis Évaluer pour que la requête soit créée pour vous dans un nouvel onglet Requête.
- Sélectionnez la mesure dans la requête pour Définir ou Définir avec des références, en ajoutant l’instruction DEFINE.
- Effectuez des mises à jour d'expression sur la mesure, puis exécutez la requête DAX pour afficher la modification.
- Lorsque la modification apparaît comme prévu, utilisez le modèle CodeLens Update : Remplacer la mesure pour l'enregistrer dans le modèle.
Voici une manière plus visuelle de comprendre le flux de travail :
Grille des résultats
Lorsqu'une requête est exécutée, les résultats sont affichés dans la grille Résultats.
S'il existe plusieurs instructions EVALUATE dans l'éditeur de requête, plusieurs résultats peuvent être renvoyés. Vous pouvez utiliser la liste déroulante Résultat pour basculer entre eux. Le bouton Copier copie la grille entière sous forme de tableau délimité par des tabulations avec des en-têtes. La grille peut être redimensionnée à l'aide des flèches du coin supérieur droit ou manuellement avec le curseur sur la bordure entre la grille de résultats et l'éditeur de requêtes.
Si la requête génère une erreur, la grille des résultats l'affiche.
Un bouton de copie transfère l'erreur dans votre presse-papiers. Le début de l'erreur indique où se trouve l'erreur dans la requête. Dans l'image ci-dessus, l'erreur est :
"Requête (4, 23) La valeur de « Ventes 2 » ne peut pas être déterminée. Soit la colonne n'existe pas, soit il n'existe aucune ligne actuelle pour cette colonne."
Et "Query (4, 23)" indique que l'erreur se trouve à la ligne 4 et au caractère 23.
Onglets de requête
La vue des requêtes DAX peut comporter plusieurs onglets de requête, qui peuvent être renommés ou supprimés. Ils montrent également l'état actuel de la requête.
Chaque onglet comprend un indicateur d'état :
- Aucun indicateur ne s'affiche avant l'exécution d'une requête.
- Une coche verte indique une exécution réussie de la requête.
- Une croix rouge indique qu'une erreur s'est produite.
- Un carré plein dans un cercle indique que la requête a été annulée.
- Une horloge indique que la requête est en cours d'exécution.
Les requêtes peuvent s'exécuter en arrière-plan, vous permettant de continuer à travailler sur d'autres onglets de requête.
Enregistrement des requêtes DAX
Les onglets de requête de l’affichage de requête DAX sont enregistrés dans le fichier lorsque vous enregistrez à partir de Power BI Desktop. Vous pouvez donc continuer là où vous vous êtes arrêté lorsque vous ouvrez à nouveau le fichier. Si vous utilisez le mode développeur pour enregistrer un projet Power BI, chaque onglet de requête est inclus sous forme de fichier .dax dans le dossier DAXQueries du dossier du modèle sémantique, ou dossier de rapport s’ils sont créés dans un rapport connecté en direct. En savoir plus dans la documentation du mode développeur de Power BI.
Actuellement, vous ne pouvez pas afficher ou modifier les requêtes DAX précédemment ajoutées dans Power BI Desktop dans le service Power BI. Les visionneuses du rapport ou du modèle sémantique ne voient pas les requêtes DAX enregistrées avec le modèle sémantique.
Les onglets d’affichage de requête DAX sont ignorés à la fermeture lorsque vous écrivez des requêtes DAX à partir du service Power BI ou du portail Fabric.
Volet Données
Le volet Données affiche les éléments du modèle pour vous aider à rédiger des requêtes. Les chemins d'édition de la plupart de ces éléments sont bloqués dans la vue des requêtes.
Requêtes rapides
Le menu contextuel du volet Données inclut les requêtes rapides. Utilisez des requêtes rapides pour créer des requêtes dans un nouvel onglet de requête pour les tables, les colonnes et les mesures. Les requêtes rapides sont conçues pour augmenter la productivité des tâches courantes et conçues de manière à pouvoir être facilement modifiées davantage. Toutes les requêtes rapides sont créées dans un nouvel onglet de requête et sont exécutées automatiquement.
N’importe où
Définir toutes les mesures du modèle crée une requête avec toutes les formules de mesure affichées dans une requête. Recherchez facilement toutes vos formules de mesure.
Tables
Afficher les 100 premières lignes crée une requête en utilisant SELECTCOLUMNS() pour afficher les 100 premières lignes du tableau. Les colonnes sont répertoriées sur chaque ligne pour permettre une modification facile en commentant les lignes. Un ORDER BY est également inclus pour spécifier votre ordre de tri.
Afficher les statistiques des colonnes crée une requête affichant des informations statistiques pour chaque colonne de votre table. Consultez de nombreuses formules expliquant comment agréger des colonnes sous la forme MIN, MAX, AVERAGE, COUNT, etc.
Définir toutes les mesures de cette table crée une requête avec les formules de mesure de cette table affichées dans une requête.
Colonnes
Afficher l'aperçu des données crée une requête à l'aide de DISTINCT() pour voir les valeurs d'une colonne.
Afficher les statistiques de la colonne crée une requête affichant des informations statistiques pour cette colonne spécifique. Découvrez de nombreuses formules expliquant comment agréger la colonne sous la forme MIN, MAX, AVERAGE, COUNT, etc. La requête renvoyée varie en fonction du type de données de la colonne, affichant différentes statistiques pour les colonnes numériques, de texte et de date.
Mesures
Evaluate crée une requête pour afficher le résultat de la mesure. SUMMARIZECOLUMNS() est utilisé pour que vous puissiez ajouter n'importe quel groupe par colonnes pour afficher la mesure par groupes spécifiques tels que Pays, Produit, etc.
Définir et évaluer crée une requête pour afficher le résultat de la mesure et afficher la formule de la mesure dans une instruction DEFINE qui peut ensuite être modifiée.
Définir avec des références et évaluer crée une requête pour afficher le résultat de la mesure et afficher non seulement la formule de la mesure dans une instruction DEFINE qui peut être modifiée, mais également toutes les autres mesures référencées dans la formule de la mesure. Modifiez n'importe quelle partie dans le contexte complet de la mesure.
Obtention de requêtes DAX visuelles à partir d’Analyseur de Performances
Les visuels de la vue Rapport obtiennent les données du modèle en créant une requête DAX. La requête visuelle peut être affichée dans la vue de requête DAX à l'aide d’Analyseur de Performances. L’Analyseur de Performances peut vous donner un aperçu de la raison pour laquelle un visuel peut afficher une valeur inattendue ou simplement comme un moyen de démarrer rapidement une requête que vous pouvez modifier davantage.
Dans la vue Rapport, accédez au ruban Optimiser, puis cliquez sur Analyseur de performances. Sélectionnez Démarrer l’enregistrement, puis Actualiser les visuels. Dans le tableau ci-dessous, développez un visuel pour voir les options permettant de copier la requête ou de l'exécuter dans la vue de requête DAX. Le fait de sélectionner Exécuter dans la vue de requête DAX prend la requête visuelle, l’ajoute en tant que nouvel onglet Requête dans la vue de requête DAX, puis l’exécute.
Affichage des requêtes DAX et connexion dynamique dans Power BI Desktop
Power BI Desktop peut se connecter en direct à un modèle sémantique Power BI publié en cliquant sur Connecter lorsqu’un modèle sémantique est sélectionné dans le hub de données OneLake. Dans le coin inférieur droit de la vue Rapport, s’affiche Connecté en direct au modèle sémantique Power BI. L’affichage des requêtes DAX peut être utilisé pour écrire des requêtes DAX lors de la connexion dynamique.
Mesures de modèle
Lorsque vous êtes connecté en direct à un modèle sémantique Power BI publié, vous ne pouvez pas afficher ou modifier des mesures de modèle. Les options de requêtes rapides sont limitées uniquement à Évaluer.
Mesures de rapport
Quand vous êtes connecté en direct à un modèle sémantique Power BI publié, vous pouvez créer des mesures de rapport. Les mesures de rapport peuvent être créées à l’aide de l’action Nouvelle mesure dans la vue Rapport et Modèle, mais comme le nom l’indique, elles ne sont disponibles que dans le rapport actuel. Une fois créées, les Requêtes rapides dans l’affichage des requêtes DAX affichent l’option permettant de Définir avec des références et d’évaluer. Les requêtes DAX s’exécutent sur le modèle sémantique. Par conséquent, les mesures de rapport doivent toujours être converties en mesures étendues aux requêtes DAX dans le bloc DEFINE MEASURE à exécuter, car elles n’existent pas dans le modèle lui-même.
Le bouton Mettre à jour le modèle avec les modifications et les options CodeLens pour Mettre à jour le modèle ne sont pas disponibles pour les mesures de rapport.
Affichage des requêtes DAX dans le web
Écrire des requêtes DAX à partir de modèles sémantiques publiés utilise l’affichage des requêtes DAX sur le web. L’affichage des requêtes DAX sur le web est la même expérience que dans Power BI Desktop, à quelques exceptions.
- L’utilisateur peut modifier des modèles de données dans le service Power BI (préversion). Le paramètre d’espace de travail Power BI doit être activé pour écrire des requêtes DAX. En savoir plus sur Modifier des modèles de données dans le service Power BI.
- Les requêtes DAX sont ignorées à la fermeture. Les requêtes DAX dans Power BI Desktop sont enregistrées dans le modèle et un modèle sémantique peut avoir des requêtes DAX déjà enregistrées dans le modèle. L’affichage des requêtes DAX sur le web n’affiche actuellement aucune requête DAX enregistrée précédemment qui peut exister dans le modèle sémantique, et les requêtes créées dans le web ne sont pas conservées une fois que vous fermez le navigateur.
- Écrire des requêtes DAX nécessite une autorisation d’écriture sur le modèle sémantique. Les visionneuses d’espace de travail doivent utiliser Power BI Desktop avec une connexion active au modèle sémantique pour écrire des requêtes DAX.
Observations et limitations
Considérations à prendre en compte :
- Plus de 500 lignes dans l'éditeur de requêtes DAX présentent un décalage notable lors de la saisie.
- Les actions rapides Lightbulb pour les mesures s’affichent uniquement lorsqu’aucune instruction DEFINE ne figure dans l’onglet de requête.
- La palette de commandes affiche certaines commandes qui ne fonctionnent pas encore.
- La grille de résultats n'affiche pas encore les colonnes et les mesures avec le format spécifié, tel que Devise, Nombre entier avec des milliers, etc.
- Télécharger ce fichier à partir de service Power BI n’inclut pas les requêtes DAX enregistrées dans le modèle sémantique publié.
- La configuration de l’intégration Git initiale à partir de l’espace de travail n’inclut pas les requêtes DAX enregistrées dans le modèle sémantique publié. En savoir plus sur l’intégration Fabric Git.
Et il y a certaines limites à garder à l’esprit :
- Maximum de 15 Mo de données par requête. Une fois que 15 Mo sont dépassés, la ligne actuelle se termine mais aucune ligne supplémentaire n'est écrite.
- Maximum de 1 000 000 de valeurs par requête. Si vous effectuez une requête sur 20 colonnes, vous pouvez récupérer un maximum de 50 000 lignes (1 million divisé par 20).
- Définir toutes les mesures dans ce tableau ou ce modèle n'est pas disponible lorsqu'il y a plus de 500 mesures.
L’exécution de requêtes DAX sur le web comporte des limites supplémentaires :
- Au maximum 99 999 lignes sont retournées par requête.
- Autorisation d’écriture sur le modèle sémantique. Les visiteurs disposant d’une autorisation de génération peuvent utiliser Power BI Desktop pour se connecter en direct et utiliser l’affichage des requêtes DAX pour exécuter des requêtes DAX.
- Disponible uniquement pour les modèles sémantiques non par défaut. Vous pouvez utiliser Power BI Desktop pour vous connecter en direct au modèle sémantique par défaut et utiliser la vue de requête DAX pour exécuter des requêtes DAX.
- L’utilisateur peut modifier des modèles de données dans le service Power BI (préversion). Le paramètre d’espace de travail Power BI doit être activé pour écrire des requêtes DAX. En savoir plus sur Modifier les modèles de données dans le service Power BI