Les fonctions dans Power Query

25 mai 2023

Dans le monde de la business intelligence et de l'analyse de données, les outils ETL (Extraction, Transformation, Chargement) comme Power Query de Microsoft jouent un rôle primordial. L'une des caractéristiques les plus fascinantes de cet outil est la variété de sources de données depuis lesquelles nous pouvons importer des informations.

De plus, Power Query nous permet aussi d'importer plusieurs sources de données à la fois, de leur appliquer les mêmes transformations et de les présenter dans le même rapport Power BI par la suite. Pour ce faire il existe des fonctions qui, en travaillant avec des paramètres, peuvent agir sur le chemin du fichier source initial afin de pouvoir pointer vers différentes sources de données. Ces fonctions sont essentielles pour établir des connexions avec différentes sources de données et pour importer des données pour une analyse ultérieure. Il existe d'une part les fonctions avec un ou plusieurs paramètres et d'autres part les fonctions sans paramètres.

Comme le dit très bien Microsoft, l'utilité d'une fonction est la suivante :

Si vous vous retrouvez dans une situation où vous avez besoin d’appliquer le même ensemble de transformations à différentes requêtes ou valeurs, la création d’une fonction personnalisée dans Power Query réutilisable autant de fois que nécessaire peut s’avérer bénéfique.

Les différentes sources de données

Il est important de connaitre l'étendue des capacités de Power Query afin de pouvoir en tirer un maximum de cet outil. Lors de l'obtention de nouvelles données, l'ETL nous demande de quel type de source il s'agit afin de pouvoir l'interpréter si besoin et en extraire les données pertinentes. Il supporte une grande variété de sources de données.

Que vos données résident dans des fichiers locaux, des bases de données, des services web, des services cloud ou même des flux de données, Power Query est prêt à les traiter. Vous pouvez donc analyser des données provenant d'une grande variété de sources, le tout dans une seule et même interface.

Pour les fichiers locaux, Il peut se connecter à des fichiers Excel, CSV, texte, XML, JSON et bien d'autres. Cela facilite grandement l'importation de données à partir de documents stockés localement sur votre ordinateur.

En ce qui concerne les bases de données, Power Query prend en charge un large éventail de systèmes, y compris SQL Server, Oracle, MySQL, PostgreSQL et bien d'autres. Il est aussi compatible avec des bases de données NoSQL plus récente.

Il lui est aussi possible d'extraire des informations depuis une page web, en y renseignant son URL, Power Query vous proposera plusieurs versions de sa lecture de la page et vous n'aurez plus qu'à sélectionner la version qui comprend les informations que vous souhaitez.

De plus, Power Query propose des connecteurs pour des services spécifiques comme SharePoint, Salesforce, Active Directory, et bien d'autres. Ces connecteurs facilitent l'importation de données à partir de ces services sans avoir besoin de programmer des interfaces personnalisées.

Enfin, que vos données soient stockées dans un service cloud comme Azure ou AWS ou dans un flux de données en temps réel, l'ETL de Microsoft peut les récupérer et les transformer pour une analyse ultérieure.

En résumé, Power Query supporte une multitude de types de sources de données, ce qui le rend extrêmement polyvalent pour tous les besoins d'analyse de données. Sa facilité d'utilisation et sa flexibilité font de Power Query un outil précieux pour quiconque cherche à extraire des informations à partir de données provenant de sources variées

Utiliser une fonction pour regrouper différentes sources de données dans une même requête

Supposons que vous souhaitez regrouper différentes sources de données de la même forme dans une même table, et bien cela est possible. Pour ce faire, il faut retourner dans la première étape de la table, qui est l'étape source, et y implémenter un paramètre afin de manipuler le chemin de la source.

Prenons un exemple, Wikipédia propose pour de nombreuses villes françaises un tableau montrant l'évolution de leur démographie au fil des années.

Supposons que nous souhaitons afficher dans une même requête l'évolution de la démographie pour plusieurs villes françaises.

Dans ce but, nous allons d'abord importer les informations de la page Wikipédia d'une ville, dans notre cas nous allons prendre Paris.

Maintenant nous allons réaliser les transformations nécessaires afin de ne garder que l'évolution démographique.

Ensuite, nous créons un paramètre qui va contenir le nom des villes et nous l'insérons dans l'étape source.

Puis nous créons une fonction qui va prendre en paramètre notre paramètre Ville afin que Power BI puisse naviguer entre les différentes sources.

Par la suite, pour avoir notre table résultante, nous allons créer une nouvelle requête où nous allons inscrire le nom des villes que nous voulons faire apparaitre dans notre base de données finale.

Enfin, nous allons maintenant appuyer sur le bouton "Appeler une fonction personnalisée", en prenant la colonne Commune comme paramètre, pour fusionner notre requête comprenant les villes avec les données démographiques correspondantes.

Pour conclure il est tout à fait possible de regrouper dans une même requête différentes sources de données grâce à des fonctions faisant appel ou non à des paramètres. Néanmoins, il y a une condition à respecter pour le faire, il faut que toutes les sources soient sous la même forme afin que Power Query puisse les lire de la même manière. En effet la limite de cette fonctionnalité est que les transformations réalisées doivent être applicables à toutes les sources de données, le résultat de l'importation pour toutes les sources doit donc être interprété de la même manière par l'ETL.

Merci d'avoir lu cet article, vous pouvez retrouvez nos vidéos explicatives sur Power BI sur notre chaine YouTube ou en cliquant ici, aussi nous traitons les fonctions personnalisées durant nos formations Power BI.

Articles en relation

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram