Dela via


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.

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

A diagram showing different pieces of services and applications used to build the solution.

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.

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

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

  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 Anslut ionssträngen primary-key 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=socialtwitter-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialtwitter-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 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.

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

    Screenshot shows the Create an app button.

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

    Screenshot shows the App details pane where you can enter values for your app.

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

  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 Twitter kan du konfigurera ett Stream Analytics-jobb för att analysera dessa händelser i realtid.

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

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

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

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

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

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

Starta jobbet

Ett jobbindata, en fråga och utdata har angetts. 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 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