Azure Stream Analytics & Azure Machine Learning

 

1 - Introduction

Dans cet article je vais présenter une des nouveautés du service Azure Stream Analytics permettant d’appeler en temps réel un web service AzureML !

Pour présenter cette nouveauté, nous prendrons un cas concret d’utilisation, l’analyse de mots clefs sur le réseau social Twitter et analyse des sentiments des tweets en temps réel !

Nous créerons pour cela une architecture l’Ambda permettant de :

  • Stocker les données pour de futures analyses

  • Analyser en temps réel avec Power BI les données

 

 

2 - Récupération et envoi des Tweets dans un Events Hub

Une solution C# me permet de scruter le réseau social à la recherche de mots clés (Azure, Pulsweb, GUSS, SQLServer, AzureML), d’appeler l’API Sentiment 140 pour qualifier les tweets et de les envoyer dans un Events Hub (eventhubtweets) :

 

3 - Azure Machine Learning

Le service AzureML n’est plus à présenter : https://www.pulsweb.fr/predict-wine-quality-azureml/

Téléchargement dans mon Studio de la solution d’analyse de sentiments à partir de la galerie Cortana Analytics : Predictive sentiment analytics model.

 

Pour ce faire :

1. Accédez à l’expérimentation : Predictive sentiment analytics model


2. Open in Studio

3. Copie de l’expérimentation dans votre Studio

4. Exécution

5. Publication de l'expérience

 

Vous devriez avoir cela :

 

 

Test du Web Service :

 

Test du Web Service en mode batch avec Azure Machine Learning Excel Add-In :

 

 

4 - Azure Stream Analytics

Le service Azure Stream Analytics n’est plus à présenter : https://www.pulsweb.fr/?s=stream+analytics

Après avoir créé un Stream Analytics Job « twitteranalysis », j’ai configuré un Input de type Event Hub, se connectant à l’Event Hub recevant les Tweets.

 

Ajout d’une fonction Azure Machine Learning :

 

Création d’outputs : Définition de l’architecture Lambda

Une sortie pour le stockage des données et une sortie pour l’analyse en temps réel dans Power BI :

 

Configuration de la requête :

Récupération du sentiment du Tweet en appelant la fonction « sentiment » provenant du service AzureML :

 WITH subquery AS (  
  SELECT 
     System.Timestamp AS Time, 
      Text, 
      Topic, 
     SentimentScore,
     sentiment(Text) AS result
  FROM TwitterStream TIMESTAMP BY CreatedAt
   WHERE LANGUAGE = 'en'
)  
SELECT Time, Text, Topic, SentimentScore, result.*  INTO OutputToBlob FROM subquery 

SELECT Time, Text, Topic, SentimentScore, result.*  INTO tweets FROM subquery

Deux colonnes seront ajoutées dans les sorties : Scored Labels et Scored Probabilities.

 

5 - Test de la solution

Depuis Power BI, un nouveau Dataset apparait :

Les données ont aussi été stockées dans un Blob Storage :

 

6 - Conclusion

Dans cet article, nous avons créé un Stream Analytics Job permettant d’analyser en temps réel le sentiment des Tweets en utilisant une expérimentation AzureML.

Voici une architecture pouvant être mise en place pour compléter celle réalisée :

Les flèches rouges correspondantes au Real Time.

 

Si vous souhaitez apprendre davantage sur ces solutions, n’hésitez pas à contacter votre TAM. Nous délivrons avec Mathias Ekizian un Workshop de 3 jours d'Introduction au Big Data et Machine Learning.

 

---

Romain Casteres

Premier Field Engineer – SQL Server & BI & Big Data

Comments

  • Anonymous
    May 09, 2016
    Bonjour , J'aurai aimé savoir d'où vient votre DataSet "Twitter Analysis" dans power BI ? parceque quand on crée une sortie Power BI , il faut renseigner la base de données et dans votre cas selon le code C# s'appelle "Twitter Client" ? . en fait après avoir crée mon event hub , mon experience dans Azure ML et mon stream analytics je ne parviens pas a avoir un nouveau DataSet dans Power BI ? merci de bien me préciser ce qu'il faut mettre comme base de données et table lors de la configuration de la sortie Power BI . Merci d'avance
  • Anonymous
    November 25, 2016
    Article très intéressent. merci