Se connecter à une API avec Power BI

4 février 2022

Nous allons nous intéresser aujourd’hui aux connexions API WEB. Ce type de connexion se définit comme un jeu de données « contenu » dans une adresse http. C’est notamment pour cela que les connexions aux API WEB requièrent une URL.

L’exemple dans cet article explique comment intégrer dans Power BI des données provenant d’une API WEB.

Mais avant toute chose, sachez que vous pouvez intégrer dans Power BI Desktop des données provenant d’un fichier au format JSON que vous aurez téléchargé au préalable. Vous trouverez dans le menu « Obtenir les données » de Power BI Desktop la possibilité d’intégrer manuellement ce type de fichier.

Dans notre exemple nous utiliserons des données correspondant à la fréquentation des voyageurs dans les gares de la SNCF.

Vous pouvez accéder à cette page en tapant « sncf open data » sur votre navigateur internet. Ces données de la SNCF sont libres et ne nécessitent pas de clé.

Voici ci-dessous le site que nous utiliserons.

Toutefois, en cliquant sur ce lien vous pourrez récupérer l’URL de l’API WEB que nous utiliserons dans cet exemple.

Le lien vous amène sur la page ci-dessous et vous permet de paramétrer les données que vous désirez.

En l’occurrence nous souhaitons travailler sur l’ensemble du jeu de données. On constate ci-dessous en haut à gauche qu’il y a 2967 enregistrements. Pour le moment de votre côté le paramètre « rows » est sur « 10 ». Ainsi, votre jeu de données ne va récupérer que les 10 premières lignes des 2967 enregistrements. Changer alors ce paramètre sur « 3000 ».

Toutefois, si vous avez un nombre d’enregistrements différents, c’est normal. En effet, les données SNCF ont probablement évolué depuis février 2022 (date à laquelle l’article a été rédigé).

Une fois, cela fait, vous verrez plus bas le bouton « Envoyer ». Cliquez dessus puis cliquez sur le lien en dessous du bouton.

Cela ouvrira une page illisible. Récupérez ainsi l’URL de cette dernière. Vous constaterez notamment que le paramètre « rows » est bien complété avec la valeur « 3000 ». Voici l'URL que nous utiliserons.

Maintenant ouvrez Power BI Desktop et cliquez sur « Obtenir les données » puis sur « Web ».

Copier-coller le lien.

Laissez Power Query s’ouvrir. Vous devriez voir apparaître cette page. Vous constaterez que Power BI a déjà fait des transformations dans « Etapes appliquées ». Toutefois, le résultat obtenu ne correspond pas du tout à la table de 2967 enregistrements.

Supprimez alors toutes les étapes dans le volet « étapes appliquées » de sorte à conserver uniquement l’étape « Source ».

Vous constatez maintenant dans le volet « Requêtes » que vos données ne sont plus au format « table » mais au format « liste ».

Dans un premier temps, nous remettons la liste au format « table ». Pour ce faire cliquez dans le menu « Convertir » sur « En table ».

Vous voilà maintenant avec vos données au format table. Si vous souhaitez transformer vos données, il vous suffit de cliquez sur vos valeurs. Vous pouvez effectuer un test puis revenir à votre position initiale en supprimant l’étape créée.

Revenons à notre tutoriel, la colonne « Record » correspond à toutes les données d’une ligne compressées dans une seule cellule. Si par exemple vous avez une table avec 3 colonnes : nom, prénom, âge. Alors, la cellule nommée « Record » contiendra le nom, le prénom et l’âge d’une ligne. Cela correspond donc à un enregistrement.

« List » est l’inventaire d’un ensemble. Dans notre exemple, on constate ligne 3 que l’on a la liste des « reccords ». Autrement dit la liste de tous les enregistrements du jeu de données.

Nous cliquons donc sur la liste à la ligne 3.

Vous obtiendrez la liste de tous les « Record », autrement dit la liste des 2967 enregistrements. Chaque cellule contiendra alors toutes les données d’une ligne.

Ainsi, transformez votre liste en table comme vous l’avez précédemment fait.

Cette fenêtre s’affiche, cliquez sur « OK ».

Vos données sont maintenant à nouveau au format « table ».

Comme vous pouvez l’observer ci-dessous vous pouvez développer votre colonne. Lorsque vous effectuez cette manipulation chaque cellule va se décompresser et vos cellules vont se diviser en colonne.

Vos données devraient se présenter comme ci-dessous.

Refaites la même manipulation cette fois sur la colonne « fields ».

Vos données devraient se présenter comme ceci.

Aller dans le menu « Affichage » et cliquez sur « Profil de la colonne ». En bas de votre fenêtre, cliquez sur « Profilage de la colonne » et paramétrez sur l’ensemble du jeu de données. Vous verrez ainsi dans « Statistiques de colonnes » que le nombre de lignes est bien de 2967 enregistrements.

Vous pouvez comparer vos données Power Query à l’API WEB de la SNCF.

Effectuons maintenant un peu de mise en forme pour comprendre quelques éléments importants. Pour ce faire, sélectionnez les colonnes indiquées ci-dessous.

Vos données devraient se présenter comme ceci.

Permutez vos colonnes, renommez votre table et paramétrez le type de vos colonnes.

Si vous faites une recherche de gare dans « nom_gare » vous constaterez que Power Query est sensible à la casse. De plus, la barre de recherche dans le filtre est limitée à seulement 1000 lignes.

Ainsi, ici il est préférable de faire un filtre sur le code_postal.

Enfin préférez faire un filtre textuel sur « commence par » ou bien « contient ». Cela permettra de contourner le problème lié à la barre de recherche.

Effectuons le test avec la gare Montparnasse. On observe ainsi que ce processus de filtre est bien plus pertinent.

Vous savez maintenant comment vous connecter à une API WEB.

Nous espérons que ce tuto vous a plu et vous aidera. Sinon n'hésitez pas à consulter nos propositions de formations.

A très bientôt!

Articles en relation

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