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 X-gebeurtenissen in Azure Event Hubs te brengen en deze vervolgens te analyseren met Stream Analytics. U schrijft een Azure Stream Analytics-query om de gegevens te analyseren en resultaten op te slaan voor later gebruik of om een Power BI-dashboard te maken om in realtime inzicht te krijgen.
Hulpprogramma's voor sociale media-analyses helpen organisaties inzicht te hebben in trending onderwerpen. Trending onderwerpen zijn onderwerpen en houdingen met een groot aantal berichten op sociale media. Sentimentanalyse, ook wel meninganalyse genoemd, maakt gebruik van hulpprogramma's voor sociale media-analyses om de houding van een product of idee te bepalen.
Realtime X-trendanalyse is een goed voorbeeld van een analysehulpprogramma omdat u met het hashtag-abonnementsmodel naar specifieke trefwoorden (hashtags) kunt luisteren en sentimentanalyse van de feed kunt ontwikkelen.
Scenario: Sentimentanalyse van sociale media in realtime
Een bedrijf met een nieuwsmediawebsite is geïnteresseerd in het verkrijgen van een voordeel ten opzichte van zijn concurrenten door site-inhoud te bevatten die direct relevant is voor de lezers. Het bedrijf maakt gebruik van analyse van sociale media over onderwerpen die relevant zijn voor lezers door realtime sentimentanalyse van X-gegevens uit te voeren.
Om trending onderwerpen in realtime op X te identificeren, heeft het bedrijf realtime analyses nodig over het tweetvolume en sentiment voor belangrijke onderwerpen.
Vereisten
In deze handleiding gebruikt u een clienttoepassing die verbinding maakt met X en zoekt u naar tweets met bepaalde hashtags (die u kunt instellen). De volgende lijst bevat vereisten voor het uitvoeren van de toepassing en het analyseren van de tweets met behulp van Azure Streaming Analytics.
Als u nog geen Azure-abonnement hebt, maakt u een gratis account.
Een X-account .
De TwitterClientCore-toepassing, die de X-feed leest. Download TwitterClientCore om deze toepassing te downloaden.
Installeer de .NET Core CLI versie 2.1.0.
Hier volgt de oplossingsarchitectuur die u gaat implementeren.
Een Event Hub maken voor streaming-invoer
De voorbeeldtoepassing genereert gebeurtenissen en pusht deze naar een Event Hub. Azure Event Hubs is de voorkeursmethode voor gebeurtenisopname voor Stream Analytics. Zie de documentatie van Azure Event Hubs voor meer informatie.
Een Event Hubs-naamruimte en Event Hub maken
Volg de instructies uit de quickstart: Een Event Hub maken met behulp van Azure Portal om een Event Hubs-naamruimte en een Event Hub met de naam socialx-eh te maken. U kunt ook een andere naam gebruiken. Als u dit doet, noteert u deze, omdat u de naam later nodig hebt. U hoeft geen andere opties in te stellen voor de Event Hub.
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 Event Hubs in de navigatiebalk aan de linkerkant van uw Event Hubs-naamruimte. Deze bevindt zich in de sectie Entiteiten . 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 naamruimte en voor de Event Hub. Zorg ervoor dat u in de context van uw Event Hub werkt, niet de naamruimte.
Selecteer + Toevoegen op de opdrachtbalk op de pagina Beleid voor gedeelde toegang. Voer vervolgens socialx-access in voor de beleidsnaam en schakel het selectievakje Beheren in.
Selecteer Maken.
Nadat het beleid is geïmplementeerd, selecteert u het beleid in de lijst met beleid voor gedeelde toegang.
Zoek het vak met de primaire sleutel van de verbindingsreeks en selecteer de kopieerknop naast de verbindingsreeks.
Plak de verbindingsreeks in een teksteditor. U hebt deze verbindingsreeks nodig voor de volgende sectie nadat u enkele kleine wijzigingen hebt uitgevoerd.
De verbindingsreeks ziet er als volgt uit:
Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh
U ziet dat de verbindingsreeks meerdere sleutel-waardeparen bevat, gescheiden door puntkomma's: Endpoint
, SharedAccessKeyName
, SharedAccessKey
en EntityPath
.
Notitie
Voor beveiliging zijn delen van de verbindingsreeks in het voorbeeld verwijderd.
De X-clienttoepassing configureren en starten
De clienttoepassing haalt tweet-gebeurtenissen rechtstreeks vanuit X op. Hiervoor is toestemming nodig om de Twitter Streaming-API's aan te roepen. Als u deze machtiging wilt configureren, maakt u een toepassing in X, waarmee unieke referenties worden gegenereerd (zoals een OAuth-token). Vervolgens kunt u de clienttoepassing zo configureren dat deze referenties worden gebruikt wanneer er API-aanroepen worden uitgevoerd.
Een X-toepassing maken
Als u nog geen X-toepassing hebt die u voor deze handleiding kunt gebruiken, kunt u er een maken. U moet al een X-account hebben.
Notitie
Het exacte proces in X 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 op de X-site ziet, raadpleegt u de X-documentatie voor ontwikkelaars.
Ga in een webbrowser naar X-ontwikkelaars, maak een ontwikkelaarsaccount en selecteer Een app maken. Mogelijk ziet u een bericht waarin staat dat u een X-ontwikkelaarsaccount moet aanvragen. U kunt dit doen en nadat uw aanvraag 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 X-toepassing. U hebt de waarden later nodig.
Notitie
De sleutels en geheimen voor de X-toepassing bieden toegang tot uw X-account. Behandel deze informatie als gevoelig, hetzelfde als uw X-wachtwoord. Sluit deze informatie bijvoorbeeld niet in in een toepassing die u aan anderen geeft.
De clienttoepassing configureren
We hebben een clienttoepassing gemaakt die verbinding maakt met X-gegevens met behulp van Twitter Streaming-API's om tweet-gebeurtenissen over een specifieke set onderwerpen te verzamelen.
Voordat de toepassing wordt uitgevoerd, is bepaalde informatie van u vereist, zoals de Twitter-sleutels en de Event Hub verbindingsreeks.
Zorg ervoor dat u de TwitterClientCore-toepassing hebt gedownload, zoals vermeld in de vereisten.
Gebruik een teksteditor om het App.config-bestand te openen . Breng de volgende wijzigingen aan in het
<appSettings>
element:- Ingesteld
oauth_consumer_key
op de Twitter Consumer Key (API-sleutel). - Ingesteld
oauth_consumer_secret
op het Twitter Consumer Secret (API secret key). - Ingesteld
oauth_token
op het Twitter Access-token. - Ingesteld
oauth_token_secret
op het Twitter Access-tokengeheim. - Ingesteld
EventHubNameConnectionString
op de verbindingsreeks. - Ingesteld
EventHubName
op de event hub-naam (dat is de waarde van het entiteitspad).
- Ingesteld
Open de opdrachtregel en navigeer naar de map waar uw TwitterClientCore-app zich bevindt. Gebruik de opdracht
dotnet build
om het project te bouwen. Gebruik vervolgens de opdrachtdotnet run
om de app uit te voeren. De app verzendt tweets naar uw Event Hubs.
Een Stream Analytics-taak maken
Nu tweet-gebeurtenissen in realtime worden gestreamd vanaf X, kunt u een Stream Analytics-taak instellen om deze gebeurtenissen in realtime te analyseren.
Navigeer in Azure Portal naar uw resourcegroep en selecteer + Toevoegen. Zoek vervolgens naar de Stream Analytics-taak en selecteer Maken.
Geef de taak
socialx-sa-job
een 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.
Geef de taakinvoer op
Selecteer invoer in uw Stream Analytics-taak in het linkermenu onder Taaktopologie.
Selecteer + Stream-invoer>toevoegen Event Hub. Vul het nieuwe invoerformulier in met de volgende informatie:
Instelling Voorgestelde waarde Beschrijving Invoeralias TwitterStream Voer een alias in voor de invoer. Abonnement <Uw abonnement> Selecteer het Azure-abonnement dat u wilt gebruiken. Event Hubs-naamruimte asa-x-eventhub Event hub-naam socialx-eh Kies Bestaande gebruiken. Selecteer vervolgens de Event Hub die u hebt gemaakt. Gebeurteniscompressietype Gzip Het gegevenscompressietype. Laat de resterende 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 ontwerpen en testen van verschillende query's via X-gegevens.
Als u het aantal vermeldingen tussen onderwerpen wilt vergelijken, kunt u een Tumblingvenster gebruiken om het aantal vermeldingen per onderwerp om de vijf seconden op te halen.
Selecteer in uw taakoverzicht de optie Query bewerken rechtsboven in het vak Query. In Azure worden de invoer- en uitvoergegevens vermeld die zijn geconfigureerd voor de taak en kunt u een query maken om de invoerstroom te transformeren terwijl deze naar de uitvoer wordt verzonden.
Wijzig de query in de query-editor in het volgende:
SELECT * FROM TwitterStream
Gebeurtenisgegevens uit de berichten moeten worden weergegeven in het voorbeeldvenster 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 verzendt en of u Gzip hebt geselecteerd als het compressietype voor de invoer.
Selecteer Testquery en let op de resultaten in het venster Testresultaten onder uw query.
Wijzig de query in de code-editor in het volgende en selecteer Testquery:
SELECT System.Timestamp as Time, text FROM TwitterStream WHERE text LIKE '%Azure%'
Deze query retourneert alle tweets die het trefwoord Azure bevatten.
Een uitvoersink 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 via de stream. De laatste stap is het definiëren van een uitvoersink voor de taak.
In deze handleiding schrijft u de samengevoegde 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 uw toepassingsbehoeften.
De taakuitvoer opgeven
Selecteer Uitvoer in de sectie Taaktopologie in het linkernavigatiemenu.
Selecteer + Toevoegen en Blob Storage/Data Lake Storage Gen2 op de pagina Uitvoer:
- Uitvoeralias: Gebruik de naam
TwitterStream-Output
. - Importopties: Selecteer opslag in uw abonnementen.
- Opslagaccount. Selecteer uw opslagaccount.
- Container. Selecteer Nieuwe maken en voer in
socialx
.
- Uitvoeralias: Gebruik de naam
Selecteer Opslaan.
Taak starten
Er wordt een taakinvoer, query en uitvoer opgegeven. U bent klaar om de Stream Analytics-taak te starten.
Zorg ervoor dat de TwitterClientCore-toepassing wordt uitgevoerd.
Selecteer Start in het taakoverzicht.
Selecteer Nu op de pagina Taak starten voor de begintijd van de taakuitvoer en selecteer Vervolgens Start.
Ondersteuning krijgen
Probeer onze microsoft Q&A-vragenpagina voor Azure Stream Analytics voor meer hulp.