Travailler avec la vue de requête 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. Des mesures peuvent être ajoutées au modèle à l’aide de CodeLens lorsqu’elles sont utilisées dans DEFINE.
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.
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
Cliquez sur le bouton du ruban Format de la requête ou utilisez MAJ+ALT+F pour formater 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
Cliquez sur 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.
Cliquez sur le bouton du ruban Supprimer les commentaires pour supprimer // au début de toute ligne où se trouve le curseur, ou 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
Cliquez sur 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 Remplacer.
Cliquez sur 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
Cliquez sur le bouton du ruban de la 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. 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.
É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. En cliquant sur ESC, vous fermez l’une des 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.
Cliquez pour voir les actions rapides des ampoules de mesure
Cliquer sur une mesure dans une instruction EVALUATE dans une requête sans instruction DEFINE affiche l’ampoule d’actions rapides. Cliquez sur 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. 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.
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.
- Cliquez sur la mesure dans la requête à 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. En savoir plus sur la documentation du mode developer Power BI.
Actuellement, vous ne pouvez pas afficher ou modifier les requêtes DAX 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.
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 Performance Analyzer. Cliquez sur Démarrer l’enregistrement, puis sur 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. Cliquer sur 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.
Observations et limitations
La vue des requêtes DAX est actuellement en aperçu. N’oubliez pas les éléments suivants :
- Mettre à jour le modèle : la mesure d’écrasement CodeLens supprime les commentaires dans la formule DAX.
- Modèle de mise à jour : écraser les mesures que CodeLens ne s’affiche pas avec uniquement les modifications de formatage.
- Modèle de mise à jour : mesures d’écrasement CodeLens peut ajouter des lignes supplémentaires en cas d’erreur de syntaxe.
- 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 requête de format interrompt la fonction RANKX.
- La palette de commandes affiche les commandes qui ne fonctionnent pas encore.
- Les onglets de requête ne permettent pas encore de se déplacer.
- 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.