Dans cet article, nous verrons comment afficher les données issues des
trackers dans Power BI, l'outil de création de tableaux de bord et d'analyse graphique de données de Microsoft.
Exemple de widget de visualisation de données de satisfaction dans Power BI
Architecture : utilisation de Microsoft Lists
Pour envoyer les données des trackers vers Power BI, 2 options sont possibles :
- Envoyer les données directement vers un Dataset Power BI (streaming/push)
- Envoyer les données vers une liste SharePoint qui sera synchronisée à intervalles réguliers avec un Dataset Power BI
La première option est réservée à des cas d'usage où le temps réel est la priorité, ce qui est rarement le cas dans le contexte d'une visualisation graphique, souvent utilisée pour l'analyse à froid. De plus, le stockage direct dans un Dataset présente plusieurs inconvénients, notamment en termes de volatilité, de nettoyage et de gestion des données.
C'est pourquoi dans ce tutoriel, nous utiliserons
Microsoft Lists comme base de données intermédiaire. Cet outil offre plusieurs avantages :
- Il est inclus dans les licences SharePoint et/ou Microsoft 365
- Il accepte un nombre important de lignes (bien qu'il soit nécessaire de l'optimiser dans le cas d'un volume de données important)
- Il est intégrable dans un portail SharePoint
- Il offre une interface de visualisation et de gestion de données ergonomique
- Il offre des fonctions natives d'export vers les outils Microsoft, et permet de déclencher des règles en temps réel selon les données reçues (par exemple une alerte email sur seuil bas de satisfaction)
Nous réaliserons ensuite la synchronisation automatique entre les données de cette liste et Power BI.
Créer une liste Microsoft Lists
La première étape consiste à créer une liste avec toutes les données dont nous aurons besoin dans Power BI.
Exemple pour du recueil de satisfaction dans un aéroport :
- La colonne Time contiendra l'heure à laquelle le tracker a remonté la donnée. Elle devra être au format date, et contenir l'heure de l'évènement.
- La colonne Place contiendra le libellé du tracker, qui correspond, dans notre cas, à son emplacement au sein de l'aéroport.
- La colonne Score contiendra la note attribuée pour cette ligne de données à l'heure indiquée.
- La colonne Votes contiendra le nombre de votes remontés pour ce score et cette heure.
De nombreuses autres données sont disponibles. Il est par exemple possible d'utiliser les sites en combinaison avec les libellés des trackers.
Connecter Ubiqod à la liste avec Power Automate
Afin d'envoyer les données des trackers vers la liste, créez un flux Power Automate, en utilisant le trigger
"Receive Data From Trackers" de Taqt (pensez à créer le connecteur associé dans Ubiqod) :
Enregistrez votre flux et activez-le. Vous pouvez le tester en utilisant des QR codes ou le simulateur intégré à la plateforme Ubiqod.
Synchroniser les données de la liste avec un Dataset Power BI
Dans Microsoft List, cliquez sur Exporter dans Power BI dans le menu Exporter :
Créez un Dataset qui sera associé à cette source et sélectionnez l'espace de travail dans lequel ce Dataset sera stocké :
Afficher les données dans Power Automate
Le Dataset est désormais disponible pour créer des rapports à partir des données. Par défaut, les données seront créés dans une table appelée "table".
Vous pouvez écrire des requêtes DAX pour créer vos propres indicateurs, comme par exemple le niveau de satisfaction agrégé, heure par heure, avec la requête :
Score Agrégé = DIVIDE( SUMX('table', 'table'[Score] * 'table'[Votes]), SUM('table'[Votes]), 0 )
Avec la colonne suivante pour la tranche horaire :
DateHeure = 'table'[Time] - MOD('table'[Time], 1/24)
Puis utiliser les nouvelles colonnes pour créer vos rapports :
Rafraichissement des données
Vous pouvez programmer le rafraîchissement automatique des données :
Limitations connues
Limitations liées à Power Automate
Power Automate limite le nombre d'actions journalières en fonction de la licence possédée. Dans ce cas, envisagez l'utilisation de Azure Logic Apps
Limitations liées à Microsoft Lists
Les Microsoft Lists sont théoriquement capables d'accepter des millions de lignes. Toutefois, à partir de plusieurs milliers de lignes, des problèmes de performances peuvent apparaître, notamment en termes d'affichage et de temps de synchronisation. Vous trouverez ci-après des suggestions d'optimisations permettant de profiter au mieux de la solution.
Optimisations recommandées
Indexation
L'indexation permet à SharePoint de trier et de filtrer les gros volumes de données plus efficacement.
Si vous travaillez essentiellement sur des requêtes par date, vous pouvez par exemple indexer la colonne comprenant la date de la données envoyée par les trackers :
Vue à 7 jours par défaut
Le fait de créer une vue avec les données les plus récentes et de la définir en tant que vue par défaut limite le nombre de données à afficher quand l'utilisateur accédera à la liste, améliorant ainsi les performances :
Utilisation de plusieurs listes (découpage)
Afin de ne pas surcharger la même liste, il est recommandé d'utiliser plusieurs listes, par exemple une liste par client ou par contrat, avec des flux Power Automate et des connecteurs Ubiqod dédiés à chacun.
Utilisation de Dataverse
Si vous prévoyez de générer des dizaines, voire des centaines de milliers de lignes, envisagez de stocker les données dans Dataverse, qui est une base de données plus adaptée au stockage d'un nombre important de données, et qui peut également être synchronisée avec un Dataset Power BI.