Analys av sociala medier med Azure Stream Analytics

Den här artikeln lär dig hur du skapar en attitydanalyslösning för sociala medier genom att föra in Twitter-händelser i realtid i Azure Event Hubs. Du skriver en Azure Stream Analytics-fråga för att analysera data och lagra resultaten 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 även kallas för yttrandeutvinning, använder analysverktyg för sociala medier för att fastställa attityder mot 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 i sociala medier i realtid

Ett företag som har en webbplats för nyhetsmedier är intresserade av att få en fördel jämfört med sina konkurrenter genom att presentera webbplatsinnehåll som är omedelbart relevant för läsarna. 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 kunna identifiera populära ämnen i realtid på Twitter behöver företaget analyser i realtid om tweetvolymen och sentiment för viktiga ämnen.

Förutsättningar

I den här guiden använder du ett klientprogram som ansluter till Twitter och söker efter tweets som har vissa hashtaggar (som du kan ange). Om du vill köra programmet och analysera tweets med Azure Streaming Analytics måste du ha följande:

Nedan visas den lösningsarkitektur som du kommer att implementera.

Ett diagram som visar olika delar av tjänster och program som används för att skapa lösningen.

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

Exempelprogrammet genererar händelser och push-lar dem till en Azure-händelsehubb. Azure Event Hubs är den bästa metoden för händelseinmatning för Stream Analytics. Mer information finns i dokumentationen Azure Event Hubs.

Skapa ett namnområde för en händelsehubb och en händelsehubb

I det här avsnittet skapar du ett namnområde för händelsehubben och lägger till en händelsehubb i det namnområdet. Namnrymder för händelsehubben används för att logiskt gruppera relaterade händelsebussinstanser.

  1. Logga in på Azure Portal och välj Skapa en resurs. Sedan. sök efter Event Hubs och välj Skapa.

  2. På sidan Skapa namnområde anger du ett namn för namnområdet. Du kan använda val annat namn för namnområdet, men namnet måste vara giltigt för en URL och det måste vara unikt i Azure.

  3. Välj en prisnivå och prenumeration och skapa eller välj en resursgrupp. Välj sedan en plats och välj Skapa.

  4. När namnområdet har distribuerats navigerar du till resursgruppen och hittar händelsehubbens namnområde i listan över Azure-resurser.

  5. Från det nya namnområdet väljer du +   Händelsehubb.

  6. Ge den nya händelsehubben namnet socialtwitter-ye. Du kan använda ett annat namn. Om du gör det ska du anteckna det, eftersom du behöver namnet senare. Du behöver inte ange några andra alternativ för händelsehubben.

  7. Välj Skapa.

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.

    Anteckning

    Det finns ett alternativ för principer för delad åtkomst under för händelsehubbens namnområde och för händelsehubben. Kontrollera att du arbetar i händelsehubbens kontext, inte den övergripande namnrymden för händelsehubben.

  3. På sidan åtkomstprincip väljer du + Lägg till. 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 Anslutningssträng primärnyckel och välj kopieringsknappen bredvid anslutningssträngen.

  7. Klistra in anslutningssträngen i en textredigerare. Du behöver den här anslutningssträngen för nästa avsnitt när du har gjort några små ändringar.

Anslutningssträngen ser ut så här:

Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialtwitter-access;SharedAccessKey=Gw2NFZw6r...FxKbXaC2op6a0ZsPkI=;EntityPath=socialtwitter-eh

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

Anteckning

Av säkerhetsskäl har delar av anslutningssträngen 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:er för Twitter Streaming. Om du vill 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 guiden kan du skapa ett. Du måste redan ha ett Twitter-konto.

Anteckning

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

  1. Gå till Twitter för utvecklare ien webbläsare, skapa ett utvecklarkonto och välj Skapa en app. Du kan se ett meddelande om att du behöver 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.

    Skärmbild som visar 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 som visar fönstret Appinformation där du kan ange värden för din 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.

Anteckning

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 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, t.ex. Twitter-nycklarna och händelsehubbens anslutningssträng.

  1. Kontrollera att du har laddat ned TwitterClientCore-programmet enligt kraven.

  2. Använd en textredigerare för att öppna App.config fil. Gör följande ändringar i <appSettings> elementet :

    • Ange oauth_consumer_key till Twitter-konsumentnyckel (API-nyckel).
    • Ange oauth_consumer_secret till Twitter-konsumenthemlighet (API-hemlig nyckel).
    • Ange oauth_token till Twitter-åtkomsttoken.
    • Ange oauth_token_secret till hemligheten för Twitter-åtkomsttoken.
    • Ange EventHubNameConnectionString till anslutningssträngen.
    • Ange EventHubName till händelsehubbens namn (det vill säga 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 din händelsehubb.

Skapa ett Stream Analytics-jobb

Nu när tweethändelser strömmas i realtid från Twitter kan du konfigurera ett Stream Analytics att analysera dessa händelser i realtid.

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

  2. Namnge jobbet och socialtwitter-sa-job 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. Gå sedan till jobbet när distributionen är klar.

Ange jobbindata

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

  2. Välj +   Lägg till händelsehubb för > strömindata. 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 <Your subscription> Välj den Azure-prenumeration som du vill använda.
    Namnområde för händelsehubb asa-twitter-eventhub
    Namn på händelsehubb socialtwitter-ye Välj Använd befintlig. Välj sedan den händelsehubb som du skapade.
    Händelsekomprimeringstyp Gzip Datakomprimeringstyp.

    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 omvandlingar. Mer information om språket finns i Azure Stream Analytics Query Language Reference. 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 efter ämne var femte sekund.

  1. I jobböversikten väljer du Redigera fråga längst upp till höger i rutan Fråga. Azure visar 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 bör visas i fönstret Förhandsgranskning av indata under din fråga. Kontrollera att Visa är inställt på JSON. Om du inte ser några data ser du till att datageneratorn skickar händelser till din händelsehubb 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 frågan.

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

Nu har du definierat en händelseström, en händelsehubbindata för att mata in händelser och en fråga för att utföra en transformering över dataströmmen. Det sista steget är att definiera en utdata mottagare 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 resultaten 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 klickar du på +   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.
    • Storage konto. Välj ditt lagringskonto.
    • Container. Välj Skapa ny och ange socialtwitter .
  3. Välj Spara.

Starta jobbet

Jobbindata, frågor och utdata anges. Du är redo att starta Stream Analytics jobb.

  1. Kontrollera att TwitterClientCore-programmet körs.

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

  3. På sidan Starta jobb går du till Starttid för jobbutdata och väljer Nu och sedan Starta.

Få support

Om du vill ha mer hjälp kan du prova vår Microsoft Q&A-frågesida för att Azure Stream Analytics.

Nästa steg