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