Analys av sociala medier med Azure Stream Analytics

Den här självstudien visar hur du skapar en lösning för attitydanalys på sociala medier genom att föra in X-händelser i realtid (tidigare Twitter) 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é.

Trendanalys i realtid X ä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 för attitydanalys i realtid på sociala medier

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 X-data.

För att identifiera trendiga ämnen i realtid på X behöver företaget realtidsanalys om tweetvolymen och sentimentet för viktiga ämnen.

Förutsättningar

I den här självstudien använder du ett klientprogram som ansluter till X 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.

Här är lösningsarkitekturen som du ska implementera.

Diagram som visar de tjänster och program som används för att skapa analyslösningen för sociala medier.

Skapa en händelsehubb för strömmande indata

Exempelprogrammet genererar händelser och skickar dem till ett händelsenav. 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 Azure Portal för att skapa ett Event Hubs-namnområde och en händelsehubb med namnet socialx-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.

  1. 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.

  2. I navigeringsfältet till vänster väljer du Principer för delad åtkomst under Inställningar.

    Kommentar

    Det finns ett alternativ för principer för delad åtkomst för namnområdet och för händelsehubben. Se till att du arbetar i kontexten för händelsehubben, inte namnområdet.

  3. På sidan Principer för delad åtkomst väljer du + Lägg till i kommandofältet. Ange sedan socialx-access som Principnamn och markera kryssrutan Hantera.

  4. Välj Skapa.

  5. När principen har distribuerats väljer du principen i listan över principer för delad åtkomst.

  6. Leta upp rutan med etiketten Primärnyckel för anslutningssträng och välj kopieringsknappen bredvid anslutningssträng.

  7. 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=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh

Observera att anslutningssträng innehåller flera nyckel/värde-par, avgränsade med semikolon: Endpoint, SharedAccessKeyName, SharedAccessKeyoch EntityPath.

Kommentar

För säkerhet har delar av anslutningssträng i exemplet tagits bort.

Konfigurera och starta X-klientprogrammet

Klientprogrammet hämtar tweethändelser direkt från X. 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 X, 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 X-program

Om du inte redan har ett X-program som du kan använda för den här självstudien kan du skapa ett. Du måste redan ha ett X-konto.

Kommentar

Den exakta processen i X för att skapa ett program och hämta nycklar, hemligheter och token kan ändras. Om de här anvisningarna inte matchar det du ser på X-webbplatsen kan du läsa X-utvecklardokumentationen.

  1. Från en webbläsare går du till X-utvecklare, skapar ett utvecklarkonto och väljer Skapa en app. Du kan se ett meddelande om att du måste ansöka om ett X-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.

    Skärmbild av X-utvecklarportalen med knappen Skapa en app.

  2. På sidan Skapa ett program anger du information om den nya appen. Välj sedan Create your Twitter application (Skapa ditt Twitter-program).

    Skärmbild av fönstret Appinformation där du anger värden för det nya programmet.

  3. 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 X-programmet. Du behöver värdena senare.

Kommentar

Nycklarna och hemligheterna för X-programmet ger åtkomst till ditt X-konto. Behandla den här informationen som känslig, på samma sätt som du gör med ditt X-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 X-data med hjälp av Twitter Streaming-API:er för att samla in tweethändelser om en specifik uppsättning ämnen.

Innan applikationen körs behöver den viss information från dig, till exempel Twitter-nycklar och anslutningssträngen till händelsehubben.

  1. Kontrollera att du har laddat ned Programmet TwitterClientCore enligt kraven.

  2. 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).
  3. Ö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 kommandot dotnet 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 X kan du konfigurera ett Stream Analytics-jobb för att analysera dessa händelser i realtid.

  1. I Azure Portal navigerar du till resursgruppen och väljer + Lägg till. Sök sedan efter Stream Analytics-jobb och välj Skapa.

  2. Namnge jobbet socialx-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.

  3. Välj Skapa. Navigera sedan till jobbet när distributionen är klar.

Ange jobbindata

  1. I Stream Analytics-jobbet väljer du Indata på den vänstra menyn under Jobbtopologi.

  2. 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
    Alias för inmatning TwitterStream Ange ett alias för indata.
    Prenumeration <Din prenumeration> Välj den Azure-prenumeration som du vill använda.
    Event Hubs namnrymd asa-x-eventhub
    Namn på händelsehubb socialx-eh Välj Använd befintlig. Välj sedan den händelsehubb som du skapade.
    Komprimeringstyp för händelser Gzip Typen av datakomprimering.

    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 skriva och testa flera frågor mot X-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.

  1. 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.

  2. Ändra frågan i frågeredigeraren till följande:

    SELECT *
    FROM TwitterStream
    
  3. händelsedata från meddelandena ska visas i fönstret Förhandsgranskning av indata under frågan. 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.

  4. Välj Testa fråga och lägg märke till resultaten i fönstret Testresultat under din fråga.

  5. Ä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%'
    
  6. 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 Event Hub-indata för att mata in händelser och en fråga för att utföra en omvandling av strömmen. Det sista steget är att definiera en utdatamottagare för jobbet.

I den här självstudien 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

  1. Under avsnittet Jobbtopologi på den vänstra navigeringsmenyn väljer du Utdata.

  2. 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 socialx.
  3. Välj Spara.

Starta jobbet

Indata för ett jobb, en fråga och utdata anges. Du är redo att starta Stream Analytics-jobbet.

  1. Kontrollera att Programmet TwitterClientCore körs.

  2. I jobböversikten väljer du Start.

  3. På sidan Starta jobb väljer du Nu för Starttid för jobbdata och väljer sedan Start.

Få support för Azure Stream Analytics

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