Streaming en temps réel dans Power BI

Le streaming en temps réel de Power BI vous permet de diffuser des données et de mettre à jour des tableaux de bord en temps réel. Tout visuel ou tableau de bord créé dans Power BI peut afficher et mettre à jour des données et des visuels en temps réel. Les appareils et autres sources de données de streaming peuvent être des capteurs, des sources de médias sociaux, des métriques d’utilisation de service, ou d’autres dispositifs permettant de collecter ou transmettre des données.

Cet article vous montre comment configurer un modèle sémantique de streaming en temps réel dans Power BI.

Screenshot of the Environmental sensors dashboard, showing the results of the data in real-time.

Types de modèles sémantiques en temps réel

Avant toute chose, il est important de connaître les types de modèles sémantiques en temps réel qui sont conçus pour s’afficher dans les vignettes et les tableaux de bord, ainsi que ce qui les différencie.

Les trois types suivants de modèles sémantiques en temps réel sont conçus pour un affichage dans les tableaux de bord en temps réel :

  • Modèle sémantique push
  • Modèle sémantique de streaming
  • Modèle sémantique de streaming PubNub

Cette section explique comment ces modèles sémantiques diffèrent les uns des autres. Les sections ultérieures décrivent comment envoyer (push) des données à chacun de ces modèles sémantiques.

Modèle sémantique push

Avec un modèle sémantique push, les données sont envoyées au service Power BI. Lorsque le modèle sémantique est créé, le service Power BI crée automatiquement une base de données dans le service pour y stocker les données.

Étant donné qu’il existe une base de données sous-jacente qui stocke les données à mesure qu’elles arrivent, vous pouvez créer des rapports avec celles-ci. Ces rapports et leurs visuels sont comme n’importe quel autre visuel de rapport. Vous pouvez utiliser toutes les fonctionnalités de génération de rapports de Power BI, telles que les visuels, les alertes de données et les vignettes de tableau de bord épinglées Power BI.

Après avoir créé un rapport à l’aide du modèle sémantique push, vous pouvez épingler n’importe quel visuel de rapport à un tableau de bord. Sur ce tableau de bord, les visuels sont mis à jour en temps réel chaque que les données sont mises à jour. Au sein du service Power BI, le tableau de bord déclenche une actualisation de la vignette chaque fois que de nouvelles données sont reçues.

Il existe deux éléments à prendre en compte concernant les vignettes épinglées à partir d’un modèle sémantique push :

  • L’épinglage d’un rapport complet à l’aide de l’option Épingler un élément dynamique n’entraîne pas la mise à jour automatique des données.
  • Une fois que vous avez épinglé un visuel à un tableau de bord, vous pouvez utiliser Questions et réponses pour poser des questions en langage naturel sur le modèle sémantique push. Après avoir effectué une requête Questions et réponses, vous pouvez épingler le visuel obtenu au tableau de bord, et ce visuel sera également mis à jour en temps réel.

Modèle sémantique de streaming

Un modèle sémantique de streaming envoie également des données au service Power BI, avec toutefois une différence importante, puisque Power BI stocke les données uniquement dans un cache temporaire qui expire rapidement. Le cache temporaire est utilisé uniquement pour afficher des visuels qui ont un historique temporaire, par exemple un graphique en courbes ayant une fenêtre d’une heure.

Un modèle sémantique de streaming n’a aucune base de données sous-jacente. Vous ne pouvez donc pas générer de visuels de rapport à l’aide des données qui circulent à partir du flux. Par conséquent, vous ne pouvez pas utiliser des fonctionnalités de rapport telles que le filtrage, les visuels Power BI et d’autres fonctions de rapport.

La seule façon de visualiser un modèle sémantique de streaming consiste à ajouter une vignette et à utiliser le modèle sémantique de streaming en tant que source de données de streaming personnalisées. Les vignettes de streaming personnalisées basées sur un modèle sémantique de streaming sont optimisées pour afficher rapidement les données en temps réel. Il existe une faible latence entre le moment où les données sont envoyées (push) au service Power BI et celui où le visuel est mis à jour, car il n’est pas nécessaire d’entrer ou de lire les données dans une base de données.

Dans la pratique, l’idéal est d’utiliser des modèles sémantiques de streaming et les visuels de streaming qui les accompagnent dans des situations où il est essentiel de réduire la latence entre l’envoi et la visualisation des données. Vous deviez avoir les données envoyées dans un format qui peut être visualisé tel quel, sans agrégation supplémentaire, par exemple, des températures et des moyennes précalculées.

Modèle sémantique de streaming PubNub

Avec un modèle sémantique de streaming PubNub, le client web Power BI utilise le Kit de développement logiciel (SDK) PubNub pour lire un flux de données PubNub existant. Le service Power BI ne stocke aucune donnée. Étant donné que le client web effectue cet appel directement, si vous autorisez uniquement le trafic sortant approuvé à partir de votre réseau, vous devez répertorier le trafic vers PubNub comme autorisé. Pour obtenir des instructions, consultez l’article de support relatif à l’approbation du trafic sortant pour PubNub.

Comme avec le modèle sémantique de streaming, avec le modèle sémantique de streaming PubNub, il n’y a pas de base de données Power BI sous-jacente. Vous ne pouvez pas générer de visuels de rapport sur les données qui circulent et ne pouvez pas utiliser de fonctionnalité de rapport comme un filtrage ou des visuels Power BI. Vous ne pouvez visualiser un modèle sémantique de streaming PubNub qu’en ajoutant une vignette au tableau de bord et en configurant un flux de données PubNub en tant que source.

Les vignettes basées sur le modèle sémantique de streaming PubNub sont optimisées pour afficher rapidement les données en temps réel. Comme Power BI est connecté directement au flux de données PubNub, il existe une faible latence entre le moment où les données sont envoyées (push) au service Power BI et le moment où le visuel est mis à jour.

Matrice des modèles sémantiques de streaming

Le tableau suivant décrit les trois types de modèles sémantiques de streaming en temps réel et répertorie leurs fonctionnalités et limitations.

Fonctionnalité Envoi de données (push) Diffusion en continu PubNub
Les vignettes de tableau de bord sont mises à jour en temps réel à mesure que des données sont envoyées Oui.
Pour les visuels générés via des rapports, puis épinglés au tableau de bord.
Oui.
Pour les vignettes de streaming personnalisées ajoutées directement au tableau de bord.
Oui.
Pour les vignettes de streaming personnalisées ajoutées directement au tableau de bord.
Les vignettes de tableau de bord sont mises à jour avec des animations fluides Non. Oui. Oui.
Données stockées en permanence dans Power BI à des fins d’analyse d’historique Oui. Non.
Les données sont temporairement stockées pendant une heure pour rendre des visuels.
Non.
Générer des rapports Power BI par-dessus les données Oui. Non. Non.
Débit maximal d’ingestion des données 1 requête
16 Mo/demande
5 requêtes
15 Ko/demande
N/A
Les données ne sont pas envoyées à Power BI.
Limites du débit de données 1 million de lignes/heure Aucun. N/A
Les données ne sont pas envoyées à Power BI.

Envoyer des données à des modèles sémantiques

Cette section explique comment créer et envoyer des données aux trois principaux types de modèles sémantiques en temps réel que vous pouvez utiliser dans un streaming en temps réel.

Vous pouvez envoyer des données à un modèle sémantique à l’aide des méthodes suivantes :

  • API REST Power BI
  • Interface utilisateur du modèle sémantique de streaming Power BI
  • Azure Stream Analytics

Utiliser des API REST Power BI pour envoyer des données

Vous pouvez utiliser des API REST Power BI pour créer et envoyer des données à des modèles sémantiques push et à des modèles sémantiques de streaming. Lorsque vous créez un modèle sémantique à l’aide d’API REST Power BI, l’indicateur defaultMode spécifie s’il s’agit d’un modèle sémantique push ou de streaming.

Si aucun indicateur defaultMode n’est défini, le modèle sémantique est défini par défaut sur un modèle sémantique push. Si la valeur defaultMode est définie sur pushStreaming, le modèle sémantique est à la fois un modèle sémantique push et de streaming, ce qui signifie qu’il bénéficie des avantages des deux types de modèles sémantiques.

Remarque

Lorsque vous utilisez des modèles sémantiques avec l’indicateur defaultMode défini sur pushStreaming, si une requête dépasse la restriction de taille de 15 Ko pour un modèle sémantique de streaming, mais est inférieure à la restriction de taille de 16 Mo pour un modèle sémantique push, la requête aboutit et les données sont mises à jour dans le modèle sémantique push. Toutefois, les vignettes de streaming échouent de façon temporaire.

Après avoir créé un modèle sémantique, vous pouvez utiliser les API REST PostRows pour envoyer les données. Toutes les demandes adressées aux API REST sont sécurisées à l’aide d’un jeton OAuth Microsoft Entra ID.

Utiliser l’interface utilisateur du modèle sémantique de streaming pour envoyer des données

Dans le service Power BI, vous pouvez créer un modèle sémantique en sélectionnant une API comme indiqué dans la capture d’écran suivante :

Screenshot of the New streaming semantic model choices, showing the API selection.

Lorsque vous créez le modèle sémantique de streaming, vous pouvez activer l’option Analyse des données d’historique, comme illustré dans la capture d’écran suivante. Cette sélection a un impact significatif.

Screenshot of the New streaming semantic model, showing Historic data analysis enabled.

Quand l’option Analyse des données d’historique est désactivée, comme c’est le cas par défaut, vous créez un modèle sémantique de streaming comme décrit précédemment. Lorsque l’option Analyse des données d’historique est activée, le modèle sémantique créé est à la fois un modèle sémantique de streaming et un modèle sémantique push. Ce paramètre équivaut à utiliser les API REST Power BI pour créer un modèle sémantique dont l’indicateur defaultMode est défini sur pushStreaming, comme décrit précédemment.

Remarque

Les modèles sémantiques de streaming créés à l’aide de l’interface utilisateur du service Power BI ne nécessitent pas d’authentification Microsoft Entra. Le propriétaire de ces modèles sémantiques reçoit une URL avec un élément rowkey, qui autorise le demandeur à envoyer des données au modèle sémantique sans utiliser de jeton du porteur OAuth Microsoft Entra ID. Toutefois, l’approche Microsoft Entra ID fonctionne toujours pour envoyer des données au modèle sémantique.

Utiliser Azure Stream Analytics pour envoyer (push) des données

Vous pouvez ajouter Power BI en tant que sortie dans Azure Stream Analytics, puis visualiser ces flux de données dans le service Power BI en temps réel. Cette section décrit les détails techniques de ce processus.

Azure Stream Analytics utilise les API REST Power BI pour créer son flux de données de sortie vers Power BI, avec la valeur defaultMode définie sur pushStreaming. Le modèle sémantique résultant peut utiliser à la fois le mode push et le streaming. Lorsque vous créez le modèle sémantique, Azure Stream Analytics définit l’indicateur retentionPolicy sur basicFIFO. Avec ce paramètre, la base de données qui prend en charge le modèle sémantique push stocke 200 000 lignes, et supprime des lignes selon la méthode FIFO (premier entré, premier sorti).

Important

Si votre requête Azure Stream Analytics entraîne une sortie très rapide vers Power BI (par exemple, une ou deux fois par seconde), Azure Stream Analytics commence à traiter les sorties par lot dans une seule demande. Ce traitement par lots peut avoir pour effet que la taille de demande dépasse la limite de vignette de streaming, et le rendu des vignettes de streaming peut échouer. Dans ce cas, la meilleure pratique consiste à ralentir le débit de sortie de données vers Power BI. Par exemple, au lieu d’une valeur maximale à chaque seconde, demandez une valeur maximale supérieure à 10 secondes.

Configurer votre modèle sémantique de streaming en temps réel dans Power BI

Pour commencer à utiliser le streaming en temps réel, vous choisissez l’une des manières suivantes d’utiliser des données de streaming dans Power BI :

  • Vignettes avec des visuels de données de streaming
  • Modèles sémantiques créés à partir de données de streaming qui persistent dans Power BI

Dans les deux cas, vous devrez configurer des données de streaming dans Power BI. Pour que votre modèle sémantique de streaming en temps réel fonctionne dans Power BI :

  1. Dans un tableau de bord existant ou nouveau, sélectionnez Ajouter une vignette.

  2. Dans la page Ajouter une vignette, sélectionnez Données de streaming personnalisées, puis Suivant.

    Screenshot of the Add a tile page, showing the Custom Streaming Data selection.

  3. Dans la page Ajouter une vignette de données de streaming personnalisées, vous pouvez sélectionner un modèle sémantique existant ou choisir Gérer les modèles sémantiques pour importer votre modèle sémantique de streaming si vous en avez déjà créé un. Si vous n’avez pas encore configuré de données de streaming, sélectionnez Ajouter un modèle sémantique de streaming pour commencer.

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

  4. Dans la page Nouveau modèle sémantique de streaming, sélectionnez API, Azure Stream ou PubNub, puis Suivant.

    Screenshot of the New streaming semantic model choices, showing API, Azure Stream, and PubNub options.

Créer un modèle sémantique de streaming

Il existe trois façons de créer un flux de données de streaming en temps réel que Power BI peut utiliser et visualiser :

  • API REST Power BI utilisant un point de terminaison de streaming en temps réel
  • Azure Stream
  • PubNub

Cette section décrit les options API REST Power BI et PubNub, et explique comment créer une vignette ou un modèle sémantique de streaming à partir de la source de données de streaming. Vous pouvez ensuite utiliser le modèle sémantique pour générer des rapports. Pour plus d’informations sur l’option Azure Stream, consultez Sortie Power BI d’Azure Stream Analytics.

Utiliser l’API REST Power BI

L’API REST Power BI facilite le streaming en temps réel pour les développeurs. Après avoir sélectionné API sur l’écran Nouveau modèle sémantique de streaming et sélectionné Suivant, vous pouvez fournir des entrées qui permettent à Power BI de se connecter et d’utiliser votre point de terminaison. Pour plus d’informations sur l’API, consultez Utiliser les API REST Power BI.

Screenshot of the New streaming semantic model dialog, showing the Power BI REST API entries for a connection.

Si vous souhaitez que Power BI stocke les données que ce flux de données envoie afin de pouvoir créer rapporter et analyser les données collectées, activez Analyse des données d’historique.

Une fois votre flux de données créé, vous obtenez un point de terminaison d’URL d’API REST. Votre application peut appeler le point de terminaison à l’aide de demandes POST pour envoyer vos données de streaming au modèle sémantique Power BI. Dans vos requêtes POST, assurez-vous que le corps de la demande correspond à l’exemple JSON fourni par l’interface utilisateur Power BI. Par exemple, encapsulez vos objets JSON dans un tableau.

Attention

Pour les modèles sémantiques de streaming que vous créez dans l’interface utilisateur du service Power BI, le propriétaire du modèle sémantique obtient une URL qui inclut une clé de ressource. Cette clé autorise le demandeur à transmettre des données au modèle sémantique sans utiliser de jeton du porteur OAuth Microsoft Entra ID. Gardez à l’esprit les implications de l’utilisation d’une clé secrète dans l’URL lorsque vous utilisez ce type de modèle sémantique et de méthode.

Utiliser PubNub

L’intégration d’un streaming PubNub avec Power BI vous aide à créer et à utiliser vos flux de données PubNub à faible latence dans Power BI. Lorsque vous sélectionnez PubNub sur l’écran Nouveau modèle sémantique de streaming, puis sélectionnez Suivant, l’écran suivant s’affiche :

Screenshot of the New streaming semantic model dialog, showing the PubNub entries for connection.

Important

Vous pouvez sécuriser les canaux PubNub à l’aide d’une clé d’authentification PAM (PubNub Access Manager). Cette clé est partagée entre tous les utilisateurs qui ont accès au tableau de bord. Pour plus d’informations sur le contrôle d’accès PubNub, consultez Gérer l’accès.

Les flux de données PubNub sont souvent très volumineux, et ne conviennent pas toujours dans leur forme d’origine pour le stockage et l’analyse d’historique. Pour utiliser Power BI pour l’analyse d’historique de données PubNub, vous devez agréger le flux PubNub brut et l’envoyer à Power BI, par exemple, à l’aide d’Azure Stream Analytics.

Exemple de streaming en temps réel dans Power BI

Voici un exemple du fonctionnement du streaming en temps réel dans Power BI. Cet exemple utilise un flux disponible publiquement de PubNub. Suivez l’exemple pour constater par vous-même l’intérêt du streaming en temps réel.

  1. Dans le service Power BI, sélectionnez ou créez un tableau de bord. En haut de l’écran, sélectionnez Modifier>Ajouter une vignette.

  2. Sur l’écran Ajouter une vignette, sélectionnez Données de streaming personnalisées, puis Suivant.

    Screenshot of the dashboard, showing the Add tile with the Custom streaming data selection.

  3. Dans la page Ajouter une vignette de données de streaming personnalisées, sélectionnez Ajouter un modèle sémantique de streaming.

    Screenshot of the dashboard, showing the Add streaming semantic model link in the Add a custom streaming data tile.

  4. Dans la page Nouveau modèle sémantique de streaming, sélectionnez API, puis Suivant.

  5. Dans l’écran suivant, entrez un Nom de modèle sémantique, entrez les valeurs suivantes dans les deux champs suivants, puis sélectionnez Suivant.

    • Sous-clé :sub-c-99084bc5-1844-4e1c-82ca-a01b18166ca8
    • Nom du canal :pubnub-sensor-network

    Screenshot of the New streaming semantic model dialog, showing how to create a Semantic model name and entries in the Sub-key and Channel name fields.

  6. Dans l’écran suivant, conservez les valeurs renseignées automatiquement, puis sélectionnez Créer.

    Screenshot of the New streaming semantic model dialog, showing defaults for the Semantic model name and Values from stream fields.

  7. De retour dans votre espace de travail Power BI, créez un nouveau tableau de bord, puis, en haut de l’écran, sélectionnez Modifier>Ajouter une vignette.

  8. Sélectionnez Données de streaming personnalisées, puis Suivant.

  9. Dans la page Ajouter une vignette de données de streaming personnalisées, sélectionnez votre nouveau modèle sémantique de streaming, puis Suivant.

    Familiarisez-vous avec l’exemple de modèle sémantique. En ajoutant des champs de valeur aux graphiques en courbes et en ajoutant d’autres vignettes, vous pouvez obtenir un tableau de bord en temps réel qui ressemble à la capture d’écran suivante :

    Screenshot of the Environmental sensors dashboard, showing the results in real-time.

Passez ensuite à la création de vos propres modèles sémantiques, et envoyez les données par streaming en direct à Power BI.

Questions et réponses

Voici quelques questions courantes concernant le streaming en temps réel dans Power BI et les réponses à celles-ci.

Pouvez-vous utiliser des filtres sur des modèles sémantiques push ou de streaming ?

Les modèles sémantiques de streaming ne prennent pas en charge le filtrage. Pour les modèles sémantiques push, vous pouvez créer un rapport, filtrer le rapport et épingler les visuels filtrés sur un tableau de bord. Toutefois, il n’existe aucun moyen de modifier le filtre sur le visuel une fois que celui-ci est sur le tableau de bord.

Vous pouvez épingler la vignette de rapport dynamique au tableau de bord séparément, puis modifier les filtres. Toutefois, les vignettes de rapport dynamique ne sont pas mises à jour en temps réel à mesure que les données sont envoyées (push). Vous devez mettre à jour manuellement le visuel en sélectionnant l’icône Actualiser en haut à droite sur la page du tableau de bord.

Lorsque vous appliquez des filtres à des modèles sémantiques push qui comportent des champs DateTime avec une précision en millisecondes, les opérateurs d’équivalence ne sont pas pris en charge. En revanche, des opérateurs tels que supérieur à > ou inférieur à < fonctionnent correctement.

Comment voyez-vous la dernière valeur sur les modèles sémantiques push ou de streaming ?

Les modèles sémantiques de streaming sont conçus pour afficher les données les plus récentes. Vous pouvez utiliser le type de visuel de streaming Carte pour voir facilement les dernières valeurs numériques. Les visuels de carte ne prennent pas en charge les types de données DateTime ou Text.

Pour les modèles sémantiques push, en supposant qu’un horodatage se trouve dans le schéma, vous pouvez essayer de créer un visuel de rapport avec le filtre last N.

Comment pouvez-vous effectuer une modélisation sur des modèles sémantiques en temps réel ?

La modélisation n’est pas possible sur un modèle sémantique de streaming, car les données ne sont pas stockées définitivement. Pour un modèle sémantique push, vous pouvez utiliser l’API REST Créer un modèle sémantique afin de créer un modèle sémantique avec des relations et des mesures, et utiliser les API REST de mise à jour de table pour ajouter des mesures à des tables existantes.

Comment pouvez-vous effacer toutes les valeurs d’un modèle sémantique push ou de streaming ?

Sur un modèle sémantique push, vous pouvez utiliser l’appel d’API REST de suppression de lignes. Il n’existe aucun moyen d’effacer les données d’un modèle sémantique de streaming, bien que les données s’effaceront d’elles-mêmes au bout d’une heure.

J’ai configuré une sortie Azure Stream Analytics vers Power BI, mais elle n’apparaît pas dans Power BI. Qu’est-ce qui ne va pas ?

Pour résoudre le problème, procédez comme suit :

  1. Redémarrez le travail Azure Stream Analytics.
  2. Essayez d’autoriser de nouveau votre connexion Power BI dans Azure Stream Analytics.
  3. Assurez-vous que vous vérifiez le même espace de travail dans le service Power BI que celui que vous avez spécifié pour la sortie Azure Stream Analytics.
  4. Assurez-vous que la requête Azure Stream Analytics génère explicitement la sortie Power BI à l’aide du mot clé INTO.
  5. Déterminez si le travail Azure Stream Analytics contient des données qui y transitent. Le modèle sémantique est créé uniquement lorsque des données sont transmises.
  6. Consulter les journaux Azure Stream Analytics pour voir s’il y a des avertissements ou erreurs.

Actualisation automatique de la page

Vous pouvez utiliser une actualisation automatique des pages au niveau page de rapport pour définir un intervalle d’actualisation pour les visuels qui soit actif uniquement lorsque la page est consommée. L’actualisation automatique de la page est disponible uniquement pour les sources de données DirectQuery. L’intervalle d’actualisation minimal dépend du type d’espace de travail dans lequel le rapport est publié, ainsi que des paramètres d’administration de capacité pour les espaces de travail Premium.

Pour plus d’informations sur l’actualisation automatique des pages, consultez Actualisation automatique des pages dans Power BI.