Analyse van sociale media met Azure Stream Analytics
In dit artikel leert u hoe u een oplossing voor sentimentanalyse voor sociale media bouwt door realtime Twitter-gebeurtenissen in te Azure Event Hubs. U schrijft een Azure Stream Analytics query om de gegevens te analyseren en de resultaten op te slaan voor later gebruik of om een Power BI-dashboard te maken om in realtime inzichten te bieden.
Hulpprogramma's voor analyse van sociale media helpen organisaties bij het begrijpen van trending onderwerpen. Trending onderwerpen zijn onderwerpen en partners die een groot aantal berichten op sociale media hebben. Sentimentanalyse, ook wel meninganalyse genoemd, maakt gebruik van hulpprogramma's voor analyse van sociale media om te bepalen wat een product of idee is.
Trendanalyse in realtime op Twitter is een goed voorbeeld van een analysehulpprogramma, omdat u met het hashtagabonnementsmodel kunt luisteren naar specifieke trefwoorden (hashtags) en sentimentanalyse van de feed kunt ontwikkelen.
Scenario: Sentimentanalyse van sociale media in realtime
Een bedrijf dat een nieuwsmediawebsite heeft, wil graag een voordeel behalen ten opzichte van zijn concurrenten door site-inhoud te gebruiken die direct relevant is voor de lezers. Het bedrijf gebruikt analyse van sociale media voor onderwerpen die relevant zijn voor lezers door realtime sentimentanalyse van Twitter-gegevens uit te voeren.
Om trending onderwerpen in realtime op Twitter te identificeren, heeft het bedrijf realtime analyses nodig over het tweetvolume en het sentiment voor belangrijke onderwerpen.
Vereisten
In deze handleiding gebruikt u een clienttoepassing die verbinding maakt met Twitter en zoekt naar tweets met bepaalde hashtags (die u kunt instellen). Als u de toepassing wilt uitvoeren en de tweets wilt analyseren met behulp van Azure Streaming Analytics, hebt u het volgende nodig:
Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan.
Een Twitter-account.
De TwitterClientCore-toepassing, die de Twitter-feed leest. Download TwitterClientCoreom deze toepassing te downloaden.
Installeer de .NET Core SLI versie 2.1.0.
Hieronder ziet u de oplossingsarchitectuur die u gaat implementeren.

Een Event Hub maken voor streaming-invoer
De voorbeeldtoepassing genereert gebeurtenissen en pusht deze naar een Azure Event Hub. Azure Event Hubs zijn de voorkeursmethode voor gebeurtenisingestie voor Stream Analytics. Zie de Azure Event Hubs voor meer informatie.
Een Event Hub-naamruimte en Event Hub maken
In deze sectie maakt u een Event Hub-naamruimte en voegt u een Event Hub toe aan die naamruimte. Event Hub-naamruimten worden gebruikt om gerelateerde Event Bus-exemplaren logisch te groepen.
Meld u aan bij Azure Portal selecteer Een resource maken. Dan. zoek naar Event Hubs en selecteer Maken.
Voer op de pagina Naamruimte maken een naam in voor de naamruimte. U kunt elke naam voor de naamruimte gebruiken, maar de naam moet geldig zijn voor een URL en moet uniek zijn binnen Azure.
Selecteer een prijscategorie en abonnement en maak of kies een resourcegroep. Kies vervolgens een locatie en selecteer Maken.
Wanneer de naamruimte is geïmplementeerd, gaat u naar uw resourcegroep en vindt u de event hub-naamruimte in uw lijst met Azure-resources.
Selecteer Event Hub in de + nieuwe naamruimte.
Noem de nieuwe Event Hub socialtwitter-eh. U kunt ook een andere naam gebruiken. Als u dit doet, noteer deze dan, want u hebt de naam later nodig. U hoeft geen andere opties in te stellen voor de Event Hub.
Selecteer Maken.
Toegang verlenen tot de Event Hub
Voordat een proces gegevens naar een Event Hub kan verzenden, heeft de Event Hub een beleid nodig dat toegang toestaat. Het toegangsbeleid genereert een verbindingsreeks die autorisatiegegevens bevat.
Selecteer in de navigatiebalk aan de linkerkant van uw Event Hubs-naamruimte de Event Hubs, die zich in de sectie Entiteiten bevindt. Selecteer vervolgens de Event Hub die u zojuist hebt gemaakt.
Selecteer in de navigatiebalk aan de linkerkant Beleid voor gedeelde toegang onder Instellingen.
Notitie
Er is een optie voor gedeeld toegangsbeleid onder voor de Event Hub-naamruimte en voor de Event Hub. Zorg ervoor dat u werkt in de context van uw Event Hub, niet in de algehele Event Hub-naamruimte.
Selecteer op de pagina toegangsbeleid de optie + Toevoegen. Voer vervolgens socialtwitter-access in als beleidsnaam en vink het selectievakje Beheren aan.
Selecteer Maken.
Nadat het beleid is geïmplementeerd, selecteert u het beleid in de lijst met beleidsregels voor gedeelde toegang.
Zoek het vak met de naam Verbindingsreeks primaire sleutel en selecteer de knop Kopiëren naast de connection string.
Plak de verbindingsreeks in een teksteditor. U hebt deze connection string nodig voor de volgende sectie nadat u enkele kleine wijzigingen hebt aan te maken.
De connection string ziet er als volgende uit:
Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=Gw2NFZw6r...FxKbXaC2op6a0ZsPkI=;EntityPath=socialtwitter-eh
U ziet dat connection string meerdere sleutel-waardeparen bevat, gescheiden door puntkomma's: Endpoint , SharedAccessKeyName , en SharedAccessKey EntityPath .
Notitie
Voor beveiliging zijn delen van de connection string in het voorbeeld verwijderd.
De Twitter-clienttoepassing configureren en starten
De clienttoepassing krijgt tweetgebeurtenissen rechtstreeks van Twitter. Om dit te doen, moet de app toestemming hebben om de Streaming-API's van Twitter aan te roepen. Als u deze machtiging wilt configureren, maakt u een toepassing in Twitter die unieke referenties genereert (zoals een OAuth-token). Vervolgens kunt u de clienttoepassing configureren voor het gebruik van deze referenties wanneer deze API-aanroepen doet.
Een Twitter-toepassing maken
Als u nog geen Twitter-toepassing hebt die u voor deze handleiding kunt gebruiken, kunt u er een maken. U moet al een Twitter-account hebben.
Notitie
Het exacte proces in Twitter voor het maken van een toepassing en het ophalen van de sleutels, geheimen en token kan veranderen. Als deze instructies niet overeenkomen met wat u ziet op de Twitter-site, raadpleegt u de Documentatie voor Twitter-ontwikkelaars.
Ga in een webbrowser naar Twitter voor ontwikkelaars,maak een ontwikkelaarsaccount en selecteer Een app maken. Mogelijk wordt er een bericht weergegeven met de mededeling dat u een Twitter-ontwikkelaarsaccount moet aanvragen. U kunt dit doen. Nadat uw toepassing is goedgekeurd, ziet u een bevestigingsmail. Het kan enkele dagen duren voordat de aanvraag voor een ontwikkelaarsaccount wordt goedgekeurd.

Voer op de pagina Create an application de gegevens voor de nieuwe app in en selecteer Create your Twitter application.

Selecteer op de toepassingspagina het tabblad Keys and Tokens en kopieer de waarden voor Consumer API Key en Consumer API Secret Key. Selecteer ook Create onder Access Token and Access Token Secret om de toegangstokens te genereren. Kopieer de waarden voor Access Token en Access Token Secret.
Sla de waarden op die u hebt opgehaald voor de Twitter-toepassing. U hebt de waarden later nodig.
Notitie
De sleutels en geheimen voor de Twitter-toepassing bieden toegang tot uw Twitter-account. Behandel deze informatie als gevoelig, net zoals u uw Twitter-wachtwoord gebruikt. Sluit deze informatie bijvoorbeeld niet in een toepassing in die u aan anderen geeft.
De clienttoepassing configureren
We hebben een clienttoepassing gemaakt die verbinding maakt met Twitter-gegevens met behulp van Streaming-API's van Twitter voor het verzamelen van tweetgebeurtenissen over een specifieke set onderwerpen.
Voordat de toepassing wordt uitgevoerd, zijn bepaalde gegevens van u vereist, zoals de Twitter-sleutels en de Event Hub-connection string.
Zorg ervoor dat u de toepassing TwitterClientCore hebt gedownload, zoals vermeld in de vereisten.
Gebruik een teksteditor om het App.config openen. Wijzig de volgende wijzigingen in het
<appSettings>-element:- Stel
oauth_consumer_keyin op de Twitter-consumentensleutel (API-sleutel). - Ingesteld
oauth_consumer_secretop het Twitter-consumentengeheim (API-geheime sleutel). - Stel
oauth_tokenin op het Twitter-toegang token. - Stel
oauth_token_secretin op het tokengeheim twitter-toegang. - Stel
EventHubNameConnectionStringin op connection string. - Stel
EventHubNamein op de naam van de Event Hub (dit is de waarde van het entiteitspad).
- Stel
Open de opdrachtregel en navigeer naar de map waarin uw TwitterClientCore-app zich bevindt. Gebruik de opdracht om
dotnet buildhet project te bouwen. Gebruik vervolgens de opdracht omdotnet runde app uit te voeren. De app verzendt Tweets naar uw Event Hub.
Een Stream Analytics-taak maken
Nu tweetgebeurtenissen in realtime worden gestreamd vanuit Twitter, kunt u een Stream Analytics instellen om deze gebeurtenissen in realtime te analyseren.
Navigeer Azure Portal de resourcegroep en selecteer + Toevoegen. Zoek vervolgens naar Stream Analytics taak en selecteer Maken.
Geef de taak
socialtwitter-sa-jobeen naam en geef een abonnement, resourcegroep en locatie op.Het is een goed idee om de taak en de Event Hub in dezelfde regio te plaatsen voor de beste prestaties en zodat u niet betaalt om gegevens over te dragen tussen regio's.
Selecteer Maken. Navigeer vervolgens naar uw taak wanneer de implementatie is voltooid.
De taakinvoer opgeven
Selecteer in Stream Analytics taak Invoer in het linkermenu onder Taaktopologie.
Selecteer + Stroominvoer toevoegen > Event Hub. Vul in het formulier Nieuw invoerformulier de volgende gegevens in:
Instelling Voorgestelde waarde Beschrijving Invoeralias TwitterStream Voer een alias in voor de invoer. Abonnement <Your subscription> Selecteer het Azure-abonnement dat u wilt gebruiken. Event hub-naamruimte asa-twitter-eventhub Naam van de Event Hub socialtwitter-eh Kies Bestaande gebruiken. Selecteer vervolgens de Event Hub die u hebt gemaakt. Gebeurteniscompressietype Gzip Het type gegevenscompressie. Laat de overige standaardwaarden staan en selecteer Opslaan.
De taakquery opgeven
Stream Analytics ondersteunt een eenvoudig, declaratief querymodel dat transformaties beschrijft. Raadpleeg Verwijzing voor Azure Stream Analytics-querytaal voor meer informatie over de taal. Deze handleiding helpt u bij het maken en testen van verschillende query's op Twitter-gegevens.
Als u het aantal vermeldingen tussen onderwerpen wilt vergelijken, kunt u een tumblingvenster gebruiken om elke vijf seconden het aantal vermeldingen per onderwerp op te halen.
Selecteer in uw taak Overzicht de optie Query bewerken rechtsboven in het vak Query. In Azure worden de invoer en uitvoer vermeld die voor de taak zijn geconfigureerd en kunt u een query maken om de invoerstroom te transformeren terwijl deze naar de uitvoer wordt verzonden.
Wijzig de query in de queryeditor in het volgende:
SELECT * FROM TwitterStreamGebeurtenisgegevens uit de berichten moeten worden weergegeven in het venster Voorbeeld van invoer onder uw query. Zorg ervoor dat de Weergave is ingesteld op JSON. Als u geen gegevens ziet, controleert u of uw gegevensgenerator gebeurtenissen naar uw Event Hub stuurt en dat u GZip hebt geselecteerd als het compressietype voor de invoer.
Selecteer Query testen en bekijk de resultaten in het venster Testresultaten onder uw query.
Wijzig de query in de code-editor in het volgende en selecteer Query testen:
SELECT System.Timestamp as Time, text FROM TwitterStream WHERE text LIKE '%Azure%'Deze query retourneert alle tweets die het trefwoord Azure bevatten.
Een uitvoer-sink maken
U hebt nu een gebeurtenisstroom gedefinieerd, een Event Hub-invoer voor het opnemen van gebeurtenissen en een query voor het uitvoeren van een transformatie over de stroom. De laatste stap is het definiëren van een uitvoer-sink voor de taak.
In deze handleiding schrijft u de geaggregeerde tweetgebeurtenissen van de taakquery naar Azure Blob Storage. U kunt uw resultaten ook pushen naar Azure SQL Database, Azure Table Storage, Event Hubs of Power BI, afhankelijk van de behoeften van uw toepassing.
De taakuitvoer opgeven
Selecteer onder de sectie Taaktopologie in het linkernavigatiemenu de optie Uitvoer.
Klik op de pagina Uitvoer op Toevoegen + en Blob Storage/Data Lake Storage Gen2:
- Uitvoeralias: gebruik de naam
TwitterStream-Output. - Importopties: selecteer Opslag selecteren in uw abonnementen.
- Storage account . Selecteer uw opslagaccount.
- Container. Selecteer Nieuwe maken en voer
socialtwitterin.
- Uitvoeralias: gebruik de naam
Selecteer Opslaan.
Taak starten
Er worden een taakinvoer, -query en -uitvoer opgegeven. U bent klaar om de taak Stream Analytics starten.
Zorg ervoor dat de TwitterClientCore-toepassing wordt uitgevoerd.
Selecteer Start in het taakoverzicht.
Selecteer op de pagina Taak starten voor Begintijd taakuitvoer de optie Nu en selecteer vervolgens Starten.
Ondersteuning krijgen
Probeer onze Microsoft Q&A question page for Azure Stream Analytics (Microsoft Q&)voor meer Azure Stream Analytics.