Analyse des médias sociaux avec Azure Stream Analytics
Cet article vous explique comment créer une solution d’analyse de sentiments sur les réseaux sociaux en intégrant des événements X en temps réel dans Azure Event Hubs, puis en les analysant avec Stream Analytics. Vous écrirez une requête Azure Stream Analytics pour analyser les données, puis stocker les résultats pour une utilisation ultérieure ou créer un tableau de bord Power BI pour fournir des informations en temps réel.
Les outils d’analyse des réseaux sociaux aident les organisations à comprendre les tendances. Les sujets tendances sont les sujets et les attitudes apparaissant dans un grand nombre de publications sur les réseaux sociaux. L’analyse de sentiments, aussi appelée exploration d’opinions, utilise des outils d’analyse de réseaux sociaux pour déterminer les attitudes envers un produit ou une idée.
L’analyse de tendances X en temps réel constitue un excellent exemple d’outil d’analyse, car le modèle d’abonnement mot-dièse vous permet de suivre des mots-clés spécifiques (mots-dièse) et de développer l’analyse des sentiments sur le flux.
Scénario : Analyse de sentiments en temps réel sur les réseaux sociaux
Une entreprise qui dispose d’un site web de médias souhaite obtenir un avantage sur ses concurrents en présentant des contenus immédiatement pertinents pour ses lecteurs. Elle utilise l’analyse des réseaux sociaux sur des sujets pertinents pour ses lecteurs en effectuant une analyse de sentiments en temps réel des données de X.
Pour identifier les tendances en temps réel sur X, l’entreprise doit analyser en temps réel le volume et les sentiments des tweets relatifs aux sujets clés.
Prérequis
Dans ce guide pratique, vous utilisez une application cliente qui se connecte à X, puis recherchez des tweets contenant certains mots-dièse (que vous pouvez définir). La liste suivante vous donne les conditions préalables à l’exécution de l’application et à l’analyse des tweets à l’aide d’Azure Streaming Analytics.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit.
Un compte X.
L’application TwitterClientCore, qui lit le flux X. Pour obtenir à cette application, téléchargez TwitterClientCore.
Installez le CLI .NET Core version 2.1.0.
Voici l’architecture de la solution que vous allez implémenter.
Créer un Event Hub pour l’entrée de diffusion en continu
L’exemple d’application génère des événements et les transmet à un Event Hub. Azure Event Hubs est la méthode privilégiée d’ingestion des événements dans Stream Analytics. Pour plus d’informations, voir la Documentation relative aux concentrateurs Azure Event Hubs.
Créer un espace de noms Event Hubs et un hub d’événements
Suivez les instructions fournies dans Démarrage rapide : Créer un hub d’événements avec le Portail Azure pour créer un espace de noms Event Hubs et un Event Hub appelé socialx-eh. Vous pouvez utiliser un autre nom. Le cas échéant, prenez-en note, car vous devrez l’utiliser ultérieurement. Vous n’avez pas besoin de définir d’autres options pour le concentrateur Event Hub.
Accorder un accès au concentrateur Event Hub
Pour qu’un processus puisse envoyer des données à un Event Hub, ce dernier a besoin d’une stratégie autorisant l’accès. La stratégie d’accès génère une chaîne de connexion qui inclut des informations d’autorisation.
Dans la barre de navigation sur le côté gauche de votre espace de noms Event Hub, sélectionnez Event Hubs, qui se trouve dans la section Entités. Ensuite, sélectionnez l’Event Hub que vous venez de créer.
Dans la barre de navigation sur le côté gauche, sélectionnez Stratégies d’accès partagé situé sous Paramètres.
Notes
Il existe une option Stratégies d’accès partagé en-dessous pour l’espace de noms et pour le Event Hub. Assurez-vous que vous travaillez dans le contexte de votre Event Hub, et non dans l’espace de noms.
Dans la page Stratégies d’accès partagé, sélectionnez +Ajouter dans la barre de commandes. Entrez ensuite socialx-access comme nom de stratégie, puis cochez la case Gérer.
Sélectionnez Créer.
Une fois la stratégie déployée, sélectionnez-la dans la liste des stratégies d’accès partagé.
Recherchez la zone intitulée Chaîne de connexion-Clé primaire, puis sélectionnez le bouton de copie situé à côté de la chaine de connexion.
Collez la chaîne de connexion dans un éditeur de texte. Vous aurez besoin de cette chaîne de connexion pour la section suivante, une fois que vous lui aurez apporté quelques légères modifications.
La chaîne de connexion ressemble à ce qui suit :
Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh
Notez que la chaîne de connexion contient plusieurs paires clé-valeur, séparées par des points-virgules : Endpoint
, SharedAccessKeyName
, SharedAccessKey
et EntityPath
.
Notes
Pour des raisons de sécurité, des parties de la chaîne de connexion indiquée dans l’exemple ont été supprimées.
Configurer et démarrer l’application cliente X
L’application cliente obtient des événements de tweet directement depuis X. Pour ce faire, elle doit être autorisée à appeler les API de diffusion en continu Twitter. Pour configurer cette autorisation, créez une application dans X, qui génère des informations d’identification uniques (par exemple, un jeton OAuth). Vous pouvez ensuite configurer l’application cliente pour qu’elle utilise ces informations d’identification lorsqu’elle émet des appels d’API.
Créer une application X
Si vous ne possédez pas encore d’application X que vous pouvez utiliser pour ce guide pratique, vous pouvez en créer une. Vous devez déjà posséder un compte X.
Remarque
Dans X, il est possible que le processus exact pour créer une application et obtenir les clés, secrets et le jeton soit différent. Si ces instructions ne correspondent pas ce que vous voyez sur le site X, consultez la documentation pour développeurs X.
Dans un navigateur web, accédez à X Developers, créez un compte de développeur, puis sélectionnez Create an app (Créer une application). Vous verrez sans doute un message indiquant que vous devez demander un compte de développeur X. N’hésitez pas à le faire et, une fois votre application approuvée, vous devriez voir un e-mail de confirmation. L’approbation d’un compte de développeur peut prendre plusieurs jours.
Sur la page Créer une application, renseignez les informations de la nouvelle application, puis sélectionnez Créer votre application Twitter.
Dans la page de l’application, sélectionnez l’onglet Keys and Tokens (Clés et jetons), et copiez les valeurs de Consumer API Key (Clé d’API du consommateur) et Consumer API Secret Key (Clé secrète d’API du consommateur). Sélectionnez aussi Create (Créer) sous Access Token and Access Token Secret (Jeton d’accès et secret du jeton d’accès) pour générer les jetons d’accès. Copiez les valeurs de Jeton d’accès et Secret du jeton d’accès.
Enregistrez les valeurs que vous avez récupérées pour l’application X. Vous aurez besoin des valeurs ultérieurement.
Remarque
Les clés et secrets de l’application X permettent d’accéder à votre compte X. Considérez que ces informations sont sensibles, tout comme votre mot de passe X. Par exemple, ne les intégrez pas à une application que vous proposerez à d’autres utilisateurs.
Configurer l’application cliente
Nous avons créé une application cliente qui se connecte aux données X par le biais des API de diffusion X pour collecter des événements de tweet sur un ensemble spécifique de sujets.
Pour que l’application s’exécute, vous devez indiquer certaines informations telles que les clés Twitter et la chaîne de connexion du concentrateur Event Hub.
Veillez à avoir téléchargé l’application TwitterClientCore, comme indiqué dans les conditions préalables.
Utilisez un éditeur de texte pour ouvrir le fichier App.config. Apportez les modifications suivantes à l’élément
<appSettings>
:- Définissez
oauth_consumer_key
sur la clé du client Twitter (clé API). - Définissez
oauth_consumer_secret
sur le secret du client Twitter (clé secrète de l’API). - Définissez
oauth_token
sur le jeton d’accès Twitter. - Définissez
oauth_token_secret
sur le secret du jeton d’accès Twitter. - Définissez
EventHubNameConnectionString
sur la chaîne de connexion. - Définissez
EventHubName
sur le nom de l’Event Hub (autrement dit, la valeur du chemin d’accès de l’entité).
- Définissez
Ouvrez la ligne de commande et accédez au répertoire où se trouve votre application TwitterClientCore. Utilisez la commande
dotnet build
pour générer le projet. Utilisez ensuite la commandedotnet run
pour exécuter l’application. L’application envoie des tweets à votre Event Hub.
Création d’un travail Stream Analytics
Maintenant que nous avons un flux d’événements de tweet diffusé en temps réel depuis X, vous pouvez configurer un travail Stream Analytics pour analyser ces événements en temps réel.
Dans le Portail Azure, accédez à votre groupe de ressources et sélectionnez + Ajouter. Recherchez ensuite Tâche Stream Analytics et sélectionnez Créer.
Nommez le travail
socialx-sa-job
, puis spécifiez un abonnement, un groupe de ressources et un emplacement.Il est judicieux de placer le travail et le concentrateur Event Hub dans la même région afin d’optimiser les performances. Ce faisant, vous ne payez pas pour transférer des données entre les régions.
Sélectionnez Create (Créer). Ensuite, accédez à votre tâche une fois le déploiement terminé.
Spécification de l’entrée de travail
Dans votre tâche Stream Analytics, sélectionnez Entrées dans le menu de gauche sous Topologie de la tâche.
Sélectionnez + Ajouter une entrée de flux>Event Hub. Remplissez le formulaire Nouvelle entrée avec les informations suivantes :
Paramètre Valeur suggérée Description Alias d’entrée TwitterStream Spécifiez un alias pour l’entrée. Abonnement <Votre abonnement> Sélectionnez l’abonnement Azure que vous souhaitez utiliser. Espace de noms Event Hubs asa-x-eventhub Nom du hub d’événements socialx-eh Choisissez Utiliser l’existant. Ensuite, sélectionnez l’Event Hub que vous avez créé. Type de compression d’événement Gzip Type de compression des données. Conservez les valeurs par défaut restantes et sélectionnez Enregistrer.
Spécification de la requête de travail
Stream Analytics prend en charge un modèle de requête simple et déclaratif pour la description des transformations. Pour plus d’informations sur ce langage, consultez la page Références sur le langage des requêtes d’Azure Stream Analytics. Ce guide pratique aborde la création et le test de plusieurs requêtes sur des données X.
Pour comparer le nombre de mentions entre les sujets, vous pouvez utiliser une fenêtre bascule pour obtenir le nombre de mentions par sujet toutes les cinq secondes.
Dans votre tâche Vue d’ensemble, sélectionnez Modifier la requête dans la partie supérieure droite de la zone de requête. Azure répertorie les entrées et sorties qui sont configurées pour le travail. Vous pouvez également utiliser Azure pour créer une requête visant à transformer le flux d’entrée lorsqu’il est envoyé vers la sortie.
Dans l’éditeur de requête, modifiez la requête comme suit :
SELECT * FROM TwitterStream
Les données d’événement issues des messages doivent apparaître dans la fenêtre Aperçu de l’entrée sous votre requête. Vérifiez que Affichage est défini sur JSON. Si vous ne voyez pas de données, assurez-vous que votre générateur de données envoie des événements à votre Event Hub et que vous avez sélectionné Gzip comme type de compression pour l’entrée.
Sélectionnez Tester la requête et notez les résultats dans la fenêtre Résultats du test sous votre requête.
Modifiez la requête dans l’éditeur de code par ce qui suit, puis sélectionnez Tester la requête :
SELECT System.Timestamp as Time, text FROM TwitterStream WHERE text LIKE '%Azure%'
Cette requête retourne tous les tweets qui incluent le mot clé Azure.
Créer un récepteur de sortie
Vous avez défini un flux d’événements, une entrée de concentrateur Event Hub pour ingérer des événements, et une requête pour effectuer une transformation sur le flux. La dernière étape consiste à définir un récepteur de sortie pour le travail.
Dans ce guide pratique, vous écrivez les événements de tweet agrégés de la requête de travail dans un stockage Blob Azure. Selon les besoins de votre application, vous pouvez également transmettre vos résultats à Azure SQL Database, le stockage Table Azure, Event Hubs ou Power BI.
Spécification de la sortie du travail
Sous la section Topologie de la tâche dans le menu de navigation gauche, sélectionnez Sorties.
Dans la page Sorties, cliquez sur +Ajouter et Stockage d’objets blob/Data Lake Storage Gen2 :
- Alias de sortie : utilisez le nom
TwitterStream-Output
. - Options d'importation : Sélectionnez Sélectionner un stockage parmi vos abonnements.
- Compte de stockage. Sélectionnez votre compte de stockage.
- Conteneur : Sélectionnez Créer, puis entrez
socialx
.
- Alias de sortie : utilisez le nom
Sélectionnez Enregistrer.
Démarrage du travail
Une entrée de travail, une requête et une sortie sont spécifiées. Vous êtes prêt à démarrer le travail Stream Analytics.
Assurez-vous que l’application TwitterClientCore est en cours d’exécution.
Dans la vue d’ensemble du travail, sélectionnez Démarrer.
Dans la page Démarrer le travail, sélectionnez Maintenant pour l’option Heure de début de la sortie de la tâche, puis sélectionnez Démarrer.
Obtenir de l’aide
Pour obtenir de l’aide supplémentaire, essayez notre page de questions Microsoft Q&A pour Azure Stream Analytics.