Analys av sociala medier med Azure Stream Analytics
Den här artikeln lär dig hur du skapar en lösning för attitydanalys på sociala medier genom att föra in Twitter-händelser i realtid i Azure Event Hubs och sedan analysera dem med Stream Analytics. Du skriver en Azure Stream Analytics-fråga för att analysera data och lagra resultat för senare användning eller skapa en Power BI-instrumentpanel för att ge insikter i realtid.
Analysverktyg för sociala medier hjälper organisationer att förstå populära ämnen. Populära ämnen är ämnen och attityder som har en stor mängd inlägg på sociala medier. Attitydanalys, som också kallas åsiktsutvinning, använder verktyg för analys av sociala medier för att fastställa attityder till en produkt eller idé.
Twitter-trendanalys i realtid är ett bra exempel på ett analysverktyg eftersom hashtaggprenumerationsmodellen gör att du kan lyssna på specifika nyckelord (hashtaggar) och utveckla attitydanalys av flödet.
Scenario: Attitydanalys för sociala medier i realtid
Ett företag som har en nyhetsmediewebbplats är intresserad av att få en fördel jämfört med sina konkurrenter genom att presentera webbplatsinnehåll som är omedelbart relevant för sina läsare. Företaget använder analys av sociala medier i ämnen som är relevanta för läsarna genom att göra attitydanalys i realtid av Twitter-data.
För att identifiera trendiga ämnen i realtid på Twitter behöver företaget realtidsanalys om tweetvolymen och sentimentet för viktiga ämnen.
Förutsättningar
I den här instruktionsguiden använder du ett klientprogram som ansluter till Twitter och letar efter tweets som har vissa hashtaggar (som du kan ange). I följande lista finns förutsättningar för att köra programmet och analysera tweets med Azure Streaming Analytics.
Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
Ett Twitter-konto .
TwitterClientCore-programmet, som läser Twitter-flödet. Hämta det här programmet genom att ladda ned TwitterClientCore.
Installera .NET Core CLI version 2.1.0.
Här är lösningsarkitekturen som du ska implementera.
Skapa en händelsehubb för strömmande indata
Exempelprogrammet genererar händelser och push-överför dem till en händelsehubb. Azure Event Hubs är den föredragna metoden för händelseinmatning för Stream Analytics. Mer information finns i dokumentationen om Azure Event Hubs.
Skapa ett Event Hubs-namnområde och en händelsehubb
Följ anvisningarna från Snabbstart: Skapa en händelsehubb med Hjälp av Azure-portalen för att skapa ett Event Hubs-namnområde och en händelsehubb med namnet socialtwitter-eh. Du kan använda ett annat namn. Om du gör det antecknar du det eftersom du behöver namnet senare. Du behöver inte ange några andra alternativ för händelsehubben.
Bevilja åtkomst till händelsehubben
Innan en process kan skicka data till en händelsehubb behöver händelsehubben en princip som tillåter åtkomst. Åtkomstprincipen producerar en anslutningssträng som inkluderar auktoriseringsinformation.
I navigeringsfältet till vänster i Event Hubs-namnområdet väljer du Event Hubs, som finns i avsnittet Entiteter. Välj sedan den händelsehubb som du nyss skapade.
I navigeringsfältet till vänster väljer du Principer för delad åtkomst som finns under Inställningar.
Kommentar
Det finns ett alternativ för principer för delad åtkomst under för namnområdet och för händelsehubben. Kontrollera att du arbetar i kontexten för din händelsehubb, inte i namnområdet.
På sidan Principer för delad åtkomst väljer du + Lägg till i kommandofältet. Ange sedan socialtwitter-access som principnamn och markera kryssrutan Hantera .
Välj Skapa.
När principen har distribuerats väljer du principen i listan över principer för delad åtkomst.
Leta upp rutan med etiketten Anslut ionssträngen primary-key och välj kopieringsknappen bredvid anslutningssträng.
Klistra in anslutningssträngen i en textredigerare. Du behöver den här anslutningssträng för nästa avsnitt när du har redigerat några små ändringar.
Anslutningssträng ser ut så här:
Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialtwitter-eh
Observera att anslutningssträng innehåller flera nyckel/värde-par, avgränsade med semikolon: Endpoint
, SharedAccessKeyName
, SharedAccessKey
och EntityPath
.
Kommentar
För säkerhet har delar av anslutningssträng i exemplet tagits bort.
Konfigurera och starta Twitter-klientprogrammet
Klientprogrammet hämtar tweethändelser direkt från Twitter. För att kunna göra det måste den ha behörighet att anropa Api:erna för Twitter-strömning. För att konfigurera den behörigheten skapar du ett program i Twitter, som genererar unika autentiseringsuppgifter (till exempel en OAuth-token). Du kan sedan konfigurera klientprogrammet så att det använder dessa autentiseringsuppgifter när det gör API-anrop.
Skapa ett Twitter-program
Om du inte redan har ett Twitter-program som du kan använda för den här instruktionsguiden kan du skapa ett. Du måste redan ha ett Twitter-konto.
Kommentar
Den exakta processen i Twitter för att skapa ett program och hämta nycklar, hemligheter och token kan ändras. Om dessa instruktioner inte matchar det du ser på Twitter-webbplatsen kan du läsa dokumentationen för Twitter-utvecklare.
Från en webbläsare går du till Twitter för utvecklare, skapar ett utvecklarkonto och väljer Skapa en app. Du kan se ett meddelande om att du måste ansöka om ett Twitter-utvecklarkonto. Det kan du göra, och när ditt program har godkänts bör du se ett e-postmeddelande med bekräftelse. Det kan ta flera dagar att godkännas för ett utvecklarkonto.
På sidan Skapa ett program anger du information om den nya appen. Välj sedan Create your Twitter application (Skapa ditt Twitter-program).
På programsidan väljer du fliken Nycklar och token och kopierar värdena för Konsument-API-nyckel och Hemlig nyckel för konsument-API. Välj också Skapa under Åtkomsttoken och Åtkomsttokenhemlighet för att generera åtkomsttoken. Kopiera värdena för åtkomsttoken och åtkomsttokenhemligheten.
Spara de värden som du hämtade för Twitter-programmet. Du behöver värdena senare.
Kommentar
Nycklarna och hemligheterna för Twitter-programmet ger åtkomst till ditt Twitter-konto. Behandla den här informationen som känslig, på samma sätt som du gör med ditt Twitter-lösenord. Bädda till exempel inte in den här informationen i ett program som du ger till andra.
Konfigurera klientprogrammet
Vi har skapat ett klientprogram som ansluter till Twitter-data med hjälp av Twitter Streaming-API:er för att samla in tweethändelser om en specifik uppsättning ämnen.
Innan programmet körs kräver det viss information från dig, till exempel Twitter-nycklarna och händelsehubben anslutningssträng.
Kontrollera att du har laddat ned Programmet TwitterClientCore enligt kraven.
Använd en textredigerare för att öppna filen App.config . Gör följande ändringar i elementet
<appSettings>
:- Ange
oauth_consumer_key
till Twitter Consumer Key (API-nyckel). - Ange
oauth_consumer_secret
till Twitter Consumer Secret (API-hemlighetsnyckel). - Ange
oauth_token
till Twitter Access-token. - Ange
oauth_token_secret
till Twitter Access-tokenhemligheten. - Ange
EventHubNameConnectionString
till anslutningssträng. - Ange
EventHubName
till händelsehubbens namn (det är värdet för entitetssökvägen).
- Ange
Öppna kommandoraden och navigera till katalogen där din TwitterClientCore-app finns. Använd kommandot
dotnet build
för att skapa projektet. Använd sedan kommandotdotnet run
för att köra appen. Appen skickar Tweets till dina händelsehubbar.
Skapa ett Stream Analytics-jobb
Nu när tweethändelser strömmas i realtid från Twitter kan du konfigurera ett Stream Analytics-jobb för att analysera dessa händelser i realtid.
I Azure-portalen går du till resursgruppen och väljer + Lägg till. Sök sedan efter Stream Analytics-jobb och välj Skapa.
Namnge jobbet
socialtwitter-sa-job
och ange en prenumeration, resursgrupp och plats.Det är en bra idé att placera jobbet och händelsehubben i samma region för bästa prestanda och så att du inte betalar för att överföra data mellan regioner.
Välj Skapa. Navigera sedan till jobbet när distributionen är klar.
Ange jobbindata
I Stream Analytics-jobbet väljer du Indata på den vänstra menyn under Jobbtopologi.
Välj + Lägg till händelsehubb för strömmande indata>. Fyll i formuläret Ny indata med följande information:
Inställning Föreslaget värde Beskrivning Inmatat alias TwitterStream Ange ett alias för indata. Prenumeration <Din prenumeration> Välj den Azure-prenumeration som du vill använda. Event Hubs namnrymd asa-twitter-eventhub Namn på händelsehubb socialtwitter-eh Välj Använd befintlig. Välj sedan den händelsehubb som du skapade. Komprimeringstyp för händelser Gzip Datakomprimeringstypen. Lämna de återstående standardvärdena och välj Spara.
Ange jobbfrågan
Stream Analytics stöder en enkel, deklarativ frågemodell som beskriver transformeringar. Mer information om språket finns i frågespråksreferensen för Azure Stream Analytics. Den här guiden hjälper dig att skapa och testa flera frågor via Twitter-data.
Om du vill jämföra antalet omnämnanden mellan ämnen kan du använda ett rullande fönster för att få antalet omnämnanden per ämne var femte sekund.
I jobbet Översikt väljer du Redigera fråga längst upp till höger i rutan Fråga. Azure listar de indata och utdata som har konfigurerats för jobbet och låter dig skapa en fråga för att transformera indataströmmen när den skickas till utdata.
Ändra frågan i frågeredigeraren till följande:
SELECT * FROM TwitterStream
Händelsedata från meddelandena ska visas i fönstret Förhandsgranskning av indata under din fråga. Kontrollera att vyn är inställd på JSON. Om du inte ser några data kontrollerar du att datageneratorn skickar händelser till händelsehubben och att du har valt Gzip som komprimeringstyp för indata.
Välj Testa fråga och lägg märke till resultaten i fönstret Testresultat under din fråga.
Ändra frågan i kodredigeraren till följande och välj Testa fråga:
SELECT System.Timestamp as Time, text FROM TwitterStream WHERE text LIKE '%Azure%'
Den här frågan returnerar alla tweets som innehåller nyckelordet Azure.
Skapa en utdatamottagare
Nu har du definierat en händelseström, en händelsehubbindata för inmatning av händelser och en fråga för att utföra en transformering över strömmen. Det sista steget är att definiera en utdatamottagare för jobbet.
I den här guiden skriver du de aggregerade tweethändelserna från jobbfrågan till Azure Blob Storage. Du kan också skicka dina resultat till Azure SQL Database, Azure Table Storage, Event Hubs eller Power BI, beroende på dina programbehov.
Ange jobbutdata
Under avsnittet Jobbtopologi på den vänstra navigeringsmenyn väljer du Utdata.
På sidan Utdata väljer du + Lägg till och Blob Storage/Data Lake Storage Gen2:
- Utdataalias: Använd namnet
TwitterStream-Output
. - Importalternativ: Välj Välj lagring från dina prenumerationer.
- Lagringskonto. Välj ditt lagringskonto.
- Container. Välj Skapa ny och ange
socialtwitter
.
- Utdataalias: Använd namnet
Välj Spara.
Starta jobbet
Ett jobbindata, en fråga och utdata har angetts. Du är redo att starta Stream Analytics-jobbet.
Kontrollera att Programmet TwitterClientCore körs.
I jobböversikten väljer du Start.
På sidan Starta jobb för Starttid för Jobbutdata väljer du Nu och sedan Start.
Få support
Om du vill ha mer hjälp kan du prova vår frågesida för Microsoft Q&A för Azure Stream Analytics.
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för