Social-Media-Analyse mit Azure Stream Analytics
In diesem Artikel erfahren Sie, wie Sie eine Lösung für Standpunktanalysen in sozialen Medien durch die Einbindung von X-Echtzeitereignissen in Azure Event Hubs erstellen und die Ergebnisse dann mit Stream Analytics analysieren können. Sie schreiben eine Azure Stream Analytics-Abfrage, um die Daten zu analysieren und die Ergebnisse zur späteren Verwendung zu speichern, oder Sie erstellen ein Power BI-Dashboard, um Erkenntnisse in Echtzeit bereitzustellen.
Analysetools für soziale Medien können Unternehmen helfen, Trendthemen zu verstehen. Bei beliebten Themen handelt es sich um Themen und Einstellungen mit einer hohen Anzahl von Beiträgen in sozialen Medien. Für die Standpunktanalyse – auch als Opinion Mining bezeichnet – werden Analysetools für soziale Medien verwendet, um Einstellungen zu einem Produkt, einer Idee usw. zu bestimmen.
Die X-Trendanalyse in Echtzeit ist ein gutes Beispiel für ein Analysetool, da das Hashtag-Abonnementmodell es Ihnen ermöglicht, bestimmte Schlüsselwörter (Hashtags) zu berücksichtigen und eine Standpunktanalyse für den Feed zu entwickeln.
Szenario: Standpunktanalyse für soziale Medien in Echtzeit
Ein Unternehmen, das über eine Nachrichtenwebsite verfügt, ist daran interessiert, sich durch Seiteninhalte mit unmittelbarer Relevanz für die Leser gegenüber der Konkurrenz einen Vorteil zu verschaffen. Das Unternehmen verwendet eine Analyse sozialer Medien für Themen mit Relevanz für Leser und führt dazu Standpunktanalysen von X-Daten in Echtzeit durch.
Das Unternehmen benötigt Echtzeitanalysen des Tweet-Umfangs und der Stimmung im Hinblick auf wichtige Themen, um zu erkennen, welche Themen sich auf X in Echtzeit zu Trendthemen entwickeln.
Voraussetzungen
In dieser Schrittanleitung verwenden Sie eine Clientanwendung, die eine Verbindung mit X herstellt und nach Tweets mit bestimmten Hashtags sucht (die Sie festlegen können). Die folgende Liste führt Voraussetzungen für das Ausführen der Anwendung und die Analyse der Tweets mithilfe von Azure Streaming Analytics auf.
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.
Ein X-Konto.
Die Anwendung TwitterClientCore, die den X-Feed liest. Um diese Anwendung zu erhalten, laden Sie TwitterClientCore- herunter.
Installieren Sie die .NET Core-CLI, Version 2.1.0.
Im Folgenden finden Sie die Lösungsarchitektur, die Sie implementieren werden.
Erstellen eines Event Hubs für Streamingeingaben
Die Beispielanwendung generiert Ereignisse und pusht diese ein einen Event Hub. Azure Event Hubs sind die bevorzugte Methode für die Ereigniserfassung für Stream Analytics. Weitere Informationen finden Sie in der Dokumentation zu Azure Event Hubs.
Erstellen eines Event Hubs-Namespaces und eines Event Hubs
Befolgen Sie die Anweisungen in der Schnellstartanleitung: Erstellen eines Event Hubs mithilfe des Azure-Portals, um einen Event Hubs-Namespace und einen Event Hub namens socialx-eh zu erstellen. Sie können auch einen anderen Namen verwenden. In diesem Fall sollten Sie sich den Namen notieren, da Sie ihn später noch benötigen. Sie müssen keine weiteren Optionen für den Event Hub festlegen.
Gewähren des Zugriffs auf den Event Hub
Damit ein Prozess Daten an einen Event Hub senden kann, benötigt der Event Hub eine0 Richtlinie, die den Zugriff gewährt. Die Zugriffsrichtlinie erzeugt eine Verbindungszeichenfolge, die Autorisierungsinformationen enthält.
Wählen Sie in der linken Navigationsleiste Ihres Event Hubs-Namespaces Event Hubs aus, das sich im Abschnitt Entitäten befindet. Wählen Sie dann den gerade erstellten Event Hub aus.
Wählen Sie in der linken Navigationsleiste Richtlinien für gemeinsamen Zugriff aus, die sich unter Einstellungen befinden.
Hinweis
Es gibt eine Option SAS-Richtlinien für den Namespace und für den Event Hub. Stellen Sie sicher, dass Sie im Kontext Ihres Event Hubs arbeiten, nicht im Namespace.
Wählen Sie auf der Seite SAS-Richtlinien die Option + Hinzufügen auf der Befehlsleiste aus. Geben Sie dann socialx-access als Richtliniennamen ein, und aktivieren Sie das Kontrollkästchen Verwalten.
Klicken Sie auf Erstellen.
Nachdem die Richtlinie bereitgestellt wurde, wählen Sie die Richtlinie aus der Liste der Richtlinien für gemeinsamen Zugriff aus.
Suchen Sie das Feld namens Verbindungszeichenfolge – Primärschlüssel, und wählen Sie neben der Verbindungszeichenfolge die Schaltfläche „Kopieren“ aus.
Fügen Sie die Verbindungszeichenfolge in einen Texteditor ein. Sie benötigen diese Verbindungszeichenfolge für den nächsten Abschnitt, nachdem Sie einige kleine Änderungen vorgenommen haben.
Die Verbindungszeichenfolge sieht folgendermaßen aus:
Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh
Beachten Sie, dass die Verbindungszeichenfolge mehrere durch ein Semikolon getrennte Schlüssel/Wert-Paare enthält: Endpoint
, SharedAccessKeyName
, SharedAccessKey
und EntityPath
.
Hinweis
Aus Sicherheitsgründen wurden Teile der Verbindungszeichenfolge in dem Beispiel entfernt.
Konfigurieren und Starten der X-Clientanwendung
Die Clientanwendung ruft Tweet-Ereignisse direkt von X ab. Dazu benötigt sie die Berechtigung, die Twitter Streaming-APIs aufzurufen. Um diese Berechtigung zu konfigurieren, erstellen Sie eine Anwendung in X, die eindeutige Anmeldeinformationen (z.B. ein OAuth-Token) generiert. Sie können die Clientanwendung dann so konfigurieren, dass diese Anmeldeinformationen bei API-Aufrufen verwendet werden.
Erstellen einer X-Anwendung
Wenn Sie noch keine X-Anwendung besitzen, die Sie für diese Schrittanleitung verwenden können, können Sie eine erstellen. Sie müssen bereits über ein X-Konto verfügen.
Hinweis
Der genaue Vorgang in X zum Erstellen einer Anwendung und zum Abrufen der Schlüssel, Geheimnisse und des Tokens kann variieren. Wenn diese Anweisungen nicht der X-Website entsprechen, lesen Sie die X-Entwicklerdokumentation.
Navigieren Sie in einem Webbrowser zu X Developers, erstellen Sie ein Entwicklerkonto, und wählen Sie App erstellen aus. Möglicherweise wird eine Meldung angezeigt, dass Sie ein X-Entwicklerkonto beantragen müssen. Zögern Sie nicht, diese Anfrage zu übermitteln, und nachdem sie genehmigt wurde, sollten Sie eine Bestätigungs-E-Mail erhalten. Es kann mehrere Tage dauern, bis die Genehmigung für ein Entwicklerkonto erfolgt ist.
Geben Sie auf der Seite Create an application (Anwendung erstellen) die Details für die neue App an, und klicken Sie anschließend auf Create your Twitter application (Twitter-Anwendung erstellen).
Klicken Sie auf der Anwendungsseite auf die Registerkarte Keys and Tokens (Schlüssel und Token), und kopieren Sie die Werte für Consumer API Key (Consumer-API-Schlüssel) und Consumer API Secret (Consumer-API-Geheimnis). Wählen Sie außerdem Erstellen unter Access Token und Access Token Secret (Zugriffstoken und Zugriffstokengeheimnis) aus, um die Zugriffstoken zu generieren. Kopieren Sie die Werte für Access Token (Zugriffstoken) und Access Token Secret (Zugriffstokengeheimnis).
Speichern Sie die Werte, die Sie für die X-Anwendung abgerufen haben. Sie benötigen diese Werte später.
Hinweis
Die Schlüssel und Geheimnisse für die X-Anwendung ermöglichen Zugriff auf Ihr X-Konto. Behandeln Sie diese Informationen vertraulich, so wie Sie es auch bei Ihrem X-Kennwort tun. Betten Sie diese Informationen beispielsweise nicht in eine Anwendung ein, die Sie anderen Benutzern zur Verfügung stellen.
Konfigurieren der Clientanwendung
Wir haben eine Clientanwendung erstellt, die über die Streaming-APIs von Twitter eine Verbindung mit X-Daten herstellt, um Tweet-Ereignisse zu einer bestimmten Reihe von Themen zu sammeln.
Bevor die Anwendung ausgeführt wird, benötigt diese bestimmte Informationen von Ihnen, wie etwa die Twitter-Schlüssel und die Event Hub-Verbindungszeichenfolge.
Stellen Sie sicher, dass Sie die Anwendung TwitterClientCore heruntergeladen haben, wie in den Voraussetzungen aufgeführt.
Öffnen Sie mithilfe eines Text-Editors die Datei App.config. Nehmen Sie die folgenden Änderungen am
<appSettings>
-Element vor:- Legen Sie
oauth_consumer_key
auf den Twitter-Consumerschlüssel (API-Schlüssel) fest. - Legen Sie
oauth_consumer_secret
auf das Twitter-Consumergeheimnis (API-Geheimnis) fest. - Legen Sie
oauth_token
auf das Twitter-Zugriffstoken fest. - Legen Sie
oauth_token_secret
auf das Twitter-Geheimnis für das Zugriffstoken fest. - Legen Sie
EventHubNameConnectionString
auf die Verbindungszeichenfolge fest. - Legen Sie
EventHubName
auf den Event Hub-Namen fest (d. h. auf den Wert des Entitätspfads).
- Legen Sie
Öffnen Sie die Befehlszeile, und navigieren Sie zu dem Verzeichnis, in dem sich die TwitterClientCore-App befindet. Verwenden Sie den Befehl
dotnet build
, um das Projekt zu erstellen. Verwenden Sie dann den Befehldotnet run
, um die App auszuführen. Die App sendet Tweets an Ihren Event Hub.
Erstellen eines Stream Analytics-Auftrags
Nun, da wir einen Datenstrom von Tweet-Ereignissen von X in Echtzeit haben, können wir einen Stream Analytics-Auftrag einrichten, um diese Ereignisse in Echtzeit zu analysieren.
Navigieren Sie im Azure-Portal zu Ihrer Ressourcengruppe, und wählen Sie + Hinzufügen aus. Suchen Sie dann nach Stream Analytics-Auftrag, und wählen Sie Erstellen aus.
Vergeben Sie einen Namen für den Auftrag
socialx-sa-job
, und geben Sie ein Abonnement, eine Ressourcengruppe und einen Speicherort an.Es empfiehlt sich, den Auftrag und den Event Hub in derselben Region zu platzieren, damit Sie von einer optimalen Leistung profitieren und Ihnen keine Kosten für die Übertragung von Daten zwischen Regionen entstehen.
Klicken Sie auf Erstellen. Navigieren Sie nach Abschluss der Bereitstellung zu Ihrem Auftrag.
Festlegen der Auftragseingabe
Wählen Sie in Ihrem Stream Analytics-Auftrag Eingaben im linken Menü unter Auftragstopologie aus.
Wählen Sie + Datenstromeingabe hinzufügen>Event Hub aus. Füllen Sie das Formular Neue Eingabe mit den folgenden Informationen aus:
Einstellung Empfohlener Wert Beschreibung Eingabealias TwitterStream Geben Sie einen Alias für die Eingabe ein. Subscription <Ihr Abonnement> Wählen Sie das gewünschte Azure-Abonnement aus. Event Hubs-Namespace asa-x-eventhub Event Hub-Name socialx-eh Wählen Sie Vorhandene verwenden aus. Wählen Sie dann den erstellten Event Hub aus. Typ der Ereigniskomprimierung GZip Der Datenkomprimierungstyp. Übernehmen Sie die übrigen Standardwerte, und wählen Sie Speichern aus.
Festlegen der Auftragsabfrage
Stream Analytics unterstützt ein einfaches, deklaratives Abfragemodell, das Transformationen beschreibt. Weitere Informationen zur Sprache finden Sie in der Azure Stream Analytics-Abfragesprachreferenz. Diese Schrittanleitung hilft Ihnen beim Erstellen und Testen mehrerer Abfragen über X-Daten.
Um die Anzahl der Erwähnungen verschiedener Themen zu vergleichen, können Sie mithilfe eines rollierenden Fensters alle fünf Sekunden die Anzahl der Erwähnungen jedes Themas abrufen.
Wählen Sie in Ihrer Auftragsübersicht oben rechts im Abfragefeld Abfrage bearbeiten aus. In Azure werden die Eingaben und Ausgaben aufgeführt, die für den Auftrag konfiguriert sind. Zudem können Sie eine Abfrage erstellen, um die Datenstromeingabe beim Senden an die Ausgabe zu transformieren.
Ändern Sie die Abfrage im Abfrage-Editor wie folgt:
SELECT * FROM TwitterStream
Ereignisdaten aus den Meldungen sollten im Fenster Eingabevorschau unterhalb Ihrer Abfrage angezeigt werden. Stellen Sie sicher, dass die Ansicht auf JSON- festgelegt ist. Wenn keine Daten angezeigt werden, stellen Sie sicher, dass Ihr Daten-Generator Ereignisse an Ihren Event Hub sendet und dass Sie Gzip als Komprimierungstyp für die Eingabe ausgewählt haben.
Wählen Sie Abfrage testen aus, und überprüfen Sie die Ergebnisse im Fenster Testergebnisse unterhalb Ihrer Abfrage.
Ändern Sie die Abfrage im Code-Editor in den folgenden Code, und wählen Sie dann Abfrage testen aus:
SELECT System.Timestamp as Time, text FROM TwitterStream WHERE text LIKE '%Azure%'
Diese Abfrage gibt alle Tweets zurück, die das Schlüsselwort Azure enthalten.
Erstellen einer Ausgabesenke
Sie haben nun einen Ereignisdatenstrom, eine Event Hub-Eingabe zum Erfassen von Ereignissen und eine Abfrage zur Durchführung einer Transformation über den Datenstrom definiert. Der letzte Schritt besteht darin, eine Ausgabesenke für den Auftrag zu definieren.
In dieser Schrittanleitung schreiben Sie die aggregierten Tweet-Ereignisse aus der Auftragsabfrage in Azure Blob Storage. Sie können die Ergebnisse je nach den Anforderungen der Anwendung auch mithilfe von Push an Azure SQL-Datenbank, Azure Table Storage, Event Hubs oder Power BI übertragen.
Festlegen der Auftragsausgabe
Wählen Sie im Abschnitt Auftragstopologie im linken Navigationsmenü Ausgaben aus.
Wählen Sie auf der Seite Ausgaben die Option + Hinzufügen und Blob Storage/Data Lake Storage Gen2 aus:
- Ausgabealias: Verwenden Sie den Namen
TwitterStream-Output
. - Importoptionen: Wählen Sie Speicher aus Ihren Abonnements auswählen aus.
- Speicherkonto: Wählen Sie dann Ihr Speicherkonto aus.
- Container: Wählen Sie Neu erstellen aus, und geben Sie
socialx
ein.
- Ausgabealias: Verwenden Sie den Namen
Wählen Sie Speichern aus.
Starten des Auftrags
Es werden eine Auftragseingabe, eine Abfrage und eine Ausgabe angegeben. Sie können nun den Stream Analytics-Auftrag starten.
Stellen Sie sicher, dass die TwitterClientCore-Anwendung ausgeführt wird.
Wählen Sie in der Auftragsübersicht Starten aus.
Wählen Sie auf der Seite Auftrag starten für Startzeit der Auftragsausgabe die Option Jetzt aus, und wählen Sie dann Starten aus.
Support
Weitere Unterstützung finden Sie auf der Frageseite von Microsoft Q&A (Fragen und Antworten) zu Azure Stream Analytics.