Analyse des médias sociaux avec Azure Stream Analytics

Ce tutoriel vous montre comment créer une solution d’analyse des sentiments des médias sociaux en apportant des événements X (anciennement Twitter) en temps réel dans Azure Event Hubs, puis en les analysant à l’aide de 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 des tendances sur X en temps réel est un excellent exemple d’outil analytique, car le modèle d’abonnement aux hashtags vous permet de surveiller des mots-clés spécifiques (hashtags) et d’effectuer une analyse des sentiments du fil.

Scénario d’analyse des sentiments des médias sociaux en temps réel

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 tutoriel, vous utilisez une application cliente qui se connecte à X et recherche des tweets qui ont certains hashtags (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.

Diagramme montrant les services et applications utilisés pour créer la solution d’analytique des médias sociaux.

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, consultez la documentation 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. Si c’est le cas, notez-le, car vous aurez besoin du nom plus tard. Vous n’avez pas besoin de configurer d’autres options pour le hub d’événements.

Autoriser l’accès à 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.

  1. 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.

  2. Dans la barre de navigation sur le côté gauche, sélectionnez Stratégies d’accès partagé situé sous Paramètres.

    Note

    Il existe une option de stratégies d’accès partagé pour l’espace de noms et pour le hub d’événements. Assurez-vous que vous travaillez dans le contexte de votre Event Hub, et non dans l’espace de noms.

  3. 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.

  4. Sélectionnez Créer.

  5. Une fois la stratégie déployée, sélectionnez-la dans la liste des stratégies d’accès partagé.

  6. 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.

  7. 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.

Note

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 n’avez pas encore d’application X que vous pouvez utiliser pour ce didacticiel, vous pouvez en créer une. Vous devez déjà posséder un compte X.

Note

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.

  1. 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.

    Capture d’écran du portail des développeurs X montrant le bouton Créer une application.

  2. Sur la page Créer une application, renseignez les informations de la nouvelle application, puis sélectionnez Créer votre application Twitter.

    Capture d’écran du volet Détails de l’application dans lequel vous entrez des valeurs pour votre nouvelle application.

  3. 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.

Note

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 de X à l’aide des API de streaming de Twitter pour collecter des événements liés aux tweets concernant un ensemble précis de sujets.

Avant de lancer l’application, elle a besoin de certaines informations de votre part, comme les clés d’accès Twitter et la chaîne de connexion à Event Hub.

  1. Veillez à avoir téléchargé l’application TwitterClientCore, comme indiqué dans les conditions préalables.

  2. 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 la valeur du 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é).
  3. 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 commande dotnet run pour exécuter l’application. L’application envoie des tweets à votre Event Hub.

Création d'un travail Stream Analytics

Maintenant que les événements de tweets arrivent en temps réel en provenance de X, vous pouvez configurer un travail Stream Analytics afin d’analyser ces événements en temps réel.

  1. 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.

  2. 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.

  3. Sélectionnez Créer. Ensuite, accédez à votre tâche une fois le déploiement terminé.

Spécification de l’entrée de travail

  1. Dans votre tâche Stream Analytics, sélectionnez Entrées dans le menu de gauche sous Topologie de la tâche.

  2. 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 tutoriel vous aide à créer et tester 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.

  1. 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.

  2. Dans l’éditeur de requête, modifiez la requête comme suit :

    SELECT *
    FROM TwitterStream
    
  3. 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.

  4. Sélectionnez Tester la requête et notez les résultats dans la fenêtre Résultats du test sous votre requête.

  5. 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%'
    
  6. Cette requête retourne tous les tweets qui incluent le mot clé Azure.

Créer un récepteur de sortie

Vous avez maintenant défini un flux d’événements, une entrée Event Hub pour ingérer les événements, et une requête pour appliquer une transformation au flux. La dernière étape consiste à définir un récepteur de sortie pour le travail.

Dans ce didacticiel, 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écifiez la sortie de la tâche

  1. Sous la section Topologie de la tâche dans le menu de navigation gauche, sélectionnez Sorties.

  2. Sur la page Sorties, sélectionnez + Ajouter et Stockage 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.
  3. 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.

  1. Assurez-vous que l’application TwitterClientCore est en cours d’exécution.

  2. Dans la vue d’ensemble du travail, sélectionnez Démarrer.

  3. 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 du support pour Azure Stream Analytics

Pour obtenir de l’aide supplémentaire, essayez notre page de questions Microsoft Q&A pour Azure Stream Analytics.

Étapes suivantes