Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Power Query évalue une requête M pour déterminer les données et les transformations requises pour son résultat. Pendant l’évaluation, le pliage des requêtes tente de traduire les transformations prises en charge en opérations qu’une source de données peut effectuer. Les transformations qui ne peuvent pas être pliées s'exécutent dans le moteur Power Query.
Qu’est-ce qu’un script Power Query M ?
Un script M, également appelé code M, est l’ensemble de fonctions et de syntaxe du langage de formule M Power Query qui Power Query évalue pour produire un résultat de requête. Chaque requête a un script M, qu’elle soit Power Query la crée, que vous l’écriviez dans l’éditeur avancé ou que vous l’entrez dans une requête vide.
Conseil / Astuce
Vous pouvez considérer le script M comme une recette qui décrit comment préparer vos données.
La façon la plus courante de créer un script M consiste à utiliser l’éditeur Power Query. Par exemple, lorsque vous vous connectez à une source de données, telle qu'une base de données SQL Server, notez sur le côté droit de votre écran qu'il existe une section appelée étapes appliquées. Cette section présente toutes les étapes ou transformations utilisées dans votre requête. Dans ce sens, l’éditeur de Power Query sert d’interface pour vous aider à créer le script M approprié pour les transformations souhaitées et garantit que le code que vous utilisez est valide.
Remarque
Le script M est utilisé dans l’éditeur Power Query pour :
- Affichez la requête sous la forme d’une série d’étapes et laissez-vous créer ou modifier des étapes.
- Afficher une vue de diagramme.
Dans cet exemple SQL Server, le volet Étapes appliquées contient les étapes suivantes :
- Source : établit la connexion à la source de données. Dans ce cas, il s'agit d'une connexion à une base de données SQL Server.
- Navigation : accède à une table spécifique dans la base de données.
- Suppression d’autres colonnes : sélectionne les colonnes de la table à conserver.
- Lignes triées : trie la table à l’aide d’une ou plusieurs colonnes.
- Lignes supérieures conservées : filtre le tableau pour ne conserver que certaines lignes du haut du tableau.
Afficher et modifier un script M dans Power Query
Cet ensemble de noms d’étapes est un moyen convivial d’afficher le script M qui Power Query créé pour vous. Vous pouvez afficher le script M complet de plusieurs façons. Dans Power Query, sélectionnez Éditeur avancé dans l’onglet Affichage. Vous pouvez également sélectionner Éditeur avancé dans le groupe Requête de l’onglet Accueil. Dans certaines versions de Power Query, vous pouvez aussi modifier l’affichage de la barre de formule pour afficher le script de requête en allant dans l’onglet Affichage, puis, dans le groupe Disposition, sélectionnez Vue Script>Script de requête.
La plupart des noms que vous trouvez dans le volet Étapes appliquées sont également utilisés comme dans le script M. Vous nommez les étapes d’une requête à l’aide d’identificateurs dans la langue M. Parfois, des caractères supplémentaires entourent les noms d’étapes dans M, mais ces caractères ne s’affichent pas dans les étapes appliquées. Un exemple est #"Kept top rows", qui est classé comme identificateur entre guillemets en raison de ces caractères supplémentaires. Un identificateur entre guillemets permet d’utiliser une séquence de zéro ou plusieurs caractères Unicode comme identificateur, y compris les mots clés, les espaces blancs, les commentaires, les opérateurs et les ponctuateurs. Pour en savoir plus sur les identificateurs dans la langue M, consultez la structure lexicale.
Toutes les modifications apportées à votre requête via l’éditeur de Power Query mettent automatiquement à jour le script M pour votre requête. Par exemple, si vous remplacez le nom de l’étape Lignes du haut conservées par 20 lignes du haut, le nom change également dans la vue Script de requête.
Bien que nous vous recommandons d’utiliser l’éditeur Power Query pour créer tout ou la plupart du script M pour vous, vous pouvez ajouter ou modifier manuellement des éléments de votre script M. Pour en savoir plus, consultez la référence du langage M.
Dans cet article, le script M fait référence au code Power Query M dans une requête, auquel vous pouvez accéder via l’éditeur avancé ou la vue de script de requête dans la barre de formule.
Comment Power Query évalue une requête M
Power Query évalue un script M en déterminant la sortie requise et la façon de le produire. Pour les requêtes qui utilisent une source de données externe, l’évaluation inclut la demande de données à partir de la source, le traitement des transformations qui s’exécutent dans le moteur Power Query et le chargement du résultat vers une destination.
Le diagramme suivant explore le processus qui se produit lorsqu’une requête est évaluée dans Power Query.
- Le script M, trouvé dans l’éditeur avancé, est soumis au moteur de Power Query. D’autres informations importantes sont également incluses, telles que les informations d’identification et les niveaux de confidentialité de la source de données.
- Power Query détermine les données à extraire de la source de données et envoie une demande à la source de données.
- La source de données répond à la demande de Power Query en transférant les données demandées vers Power Query.
- Power Query reçoit les données entrantes de la source de données et effectue les transformations à l’aide du moteur de Power Query si nécessaire.
- Power Query charge le résultat transformé vers une destination.
Remarque
Ce flux montre une requête qui lit à partir d’une base de données SQL Server. Pour une requête sans source de données externe, Power Query évalue toujours le script M et produit un résultat, mais les étapes de demande et de transfert de source de données ne s'appliquent pas.
Comment le pliage des requêtes optimise l’évaluation des requêtes
Lorsque Power Query lit votre script M, il exécute le script par le biais d’un processus d’optimisation pour évaluer plus efficacement votre requête. Dans ce processus, il détermine quelles étapes (transformations) de votre requête peuvent être déchargées vers votre source de données. Il détermine également quelles autres étapes doivent être évaluées à l’aide du moteur de Power Query.
Ce processus d’optimisation est appelé pliage des requêtes. Le pliage des requêtes traduit les transformations M prises en charge en opérations que la source de données peut effectuer. Power Query tente d’exécuter autant de requête que possible sur la source de données et évalue les transformations restantes dans le moteur de Power Query.
Important
Toutes les règles du langage de formule Power Query M (également appelée langage M) sont suivies. Plus particulièrement, l’évaluation différée joue un rôle important pendant le processus d’optimisation. Dans ce processus, Power Query comprend quelles transformations spécifiques de votre requête doivent être évaluées. Power Query comprend également les autres transformations qui n'ont pas besoin d'être évaluées, car elles ne sont pas nécessaires dans la sortie de votre requête.
En outre, lorsque plusieurs sources sont impliquées, le niveau de confidentialité des données de chaque source de données est pris en compte lors de l’évaluation de la requête. Plus d’informations : dans les coulisses du pare-feu de confidentialité des données
Le diagramme suivant illustre les étapes qui se produisent dans ce processus d’optimisation.
- Le script M, trouvé dans l’éditeur avancé, est soumis au moteur de Power Query. D’autres informations importantes sont également fournies, telles que les informations d’identification et les niveaux de confidentialité de la source de données.
- Le mécanisme de pliage de requête envoie des demandes de métadonnées pour déterminer les fonctionnalités de la source de données, des schémas de table, des relations entre les tables à la source de données et d’autres métadonnées.
- En fonction des métadonnées qu’il reçoit, le mécanisme de pliage de requête détermine quelles informations extraire de la source de données et quelles transformations doivent se produire à l’intérieur du moteur de Power Query. Il envoie des instructions à deux autres composants qui récupèrent des données à partir de la source de données et transforment les données entrantes dans le moteur de Power Query si nécessaire.
- Une fois les composants internes de Power Query recevoir les instructions, Power Query envoie une demande à la source de données à l’aide d’une requête de source de données.
- La source de données reçoit la demande de Power Query et transfère les données au moteur de Power Query.
- Une fois que les données se trouvent à l'intérieur de Power Query, le moteur de transformation à l'intérieur de Power Query (également appelé moteur mashup) effectue les transformations qui n'ont pas pu être repliées ou déchargées vers la source de données.
- Power Query charge le résultat transformé vers une destination.
Remarque
Selon les transformations et la source de données utilisées dans le script M, Power Query détermine s’il faut diffuser ou mettre en mémoire tampon les données entrantes.
Que fait le pliage des requêtes dans Power Query
L’objectif du pliage des requêtes est de décharger ou d’envoyer (push) autant de l’évaluation d’une requête vers une source de données qui peut calculer les transformations de votre requête.
Le mécanisme de repli de requête accomplit cet objectif en traduisant votre script M en langage que votre source de données peut interpréter et exécuter. Il envoie ensuite l’évaluation à votre source de données et envoie le résultat de cette évaluation à Power Query.
Cette opération fournit souvent une exécution de requête plus rapide que l’extraction de toutes les données requises à partir de votre source de données et l’exécution de toutes les transformations requises dans le moteur de Power Query.
Lorsque vous utilisez l’expérience de données get, Power Query vous guide tout au long du processus qui vous permet de vous connecter à votre source de données. Dans ce cas, Power Query utilise une série de fonctions dans le langage M, classées comme fonctions d'accès aux données. Ces fonctions spécifiques utilisent des mécanismes et des protocoles pour se connecter à votre source de données à l’aide d’un langage que votre source de données peut comprendre.
Pour les transformations après la fonction de source de données, le mécanisme de repli de requête vérifie s’il peut les décharger vers la source de données au lieu de les traiter dans le moteur Power Query.
Important
Les fonctions de source de données, couramment affichées comme l’étape Source d’une requête, interrogent les données à la source de données dans son langage natif. Pour les transformations après la fonction de source de données, Power Query tente de plier la requête uniquement lorsque le connecteur et les transformations le prennent en charge. Le mécanisme peut traduire et combiner des transformations prises en charge en une seule requête de source de données.
Résultats de repli des requêtes dans Power Query
Selon la façon dont la requête est structurée, il peut y avoir trois résultats possibles pour le mécanisme de pliage de requête :
| Résultat du repliement de requête | Traitement à la source de données | Traitement dans le moteur de Power Query |
|---|---|---|
| Pliage des requêtes complètes | La source de données traite toutes les transformations de requête. | Le traitement minimal se produit dans le moteur Power Query. |
| Pliage de requêtes partielles | La source de données traite les transformations que Power Query peut traduire dans le langage de requête natif. | Le moteur Power Query traite les transformations restantes. |
| Aucun repliement de requête | La source de données retourne les données sources demandées sans traiter les transformations de requête. | Le moteur Power Query traite toutes les transformations requises. |
Sources de données qui prennent en charge le pliage des requêtes
La prise en charge du pliage des requêtes dépend du connecteur, de la source de données et des transformations de la requête. Les connecteurs pour les sources de données structurées dotées de capacités de traitement des requêtes, tels que SQL Server et OData Feed, prennent généralement en charge le repliement de requête. Les sources sans moteur de requête, telles que les fichiers CSV et Excel, ne prennent pas en charge le pliage des requêtes.
Pendant l’optimisation, le moteur Power Query peut réorganiser les étapes de requête. L’utilisation d’une source de données avec davantage de ressources de traitement et de fonctionnalités de repli des requêtes peut réduire les temps de chargement des requêtes, car le traitement se produit à la source de données au lieu du moteur de Power Query.
Vérifier le pliage des requêtes dans Power Query Online
Dans Power Query Online, utilisez des indicateurs de pliage de requête en regard des étapes appliquées pour identifier les étapes qui se plient. Vous pouvez également utiliser le plan de requête pour voir quelles opérations s’exécutent à la source de données et quelles opérations s’exécutent dans le moteur Power Query. Ces fonctionnalités sont disponibles uniquement dans Power Query Online.
Lorsqu’elles sont disponibles, utilisez Afficher la requête native ou Afficher la requête de la source de données pour examiner la requête que Power Query envoie à la source de données. La disponibilité dépend du connecteur.