Análise de redes sociais com o Azure Stream Analytics

Este artigo ensina como criar uma solução de análise de sentimento de mídia social trazendo eventos do Twitter em tempo real para os Hubs de Eventos do Azure e, em seguida, analisando-os usando o Stream Analytics. Você escreve uma consulta do Azure Stream Analytics para analisar os dados e armazenar resultados para uso posterior ou cria um painel do Power BI para fornecer informações em tempo real.

As ferramentas de análise de mídia social ajudam as organizações a entender os tópicos mais populares. Os trending topics são assuntos e atitudes que têm um alto volume de postagens nas redes sociais. A análise de sentimento, que também é chamada de mineração de opinião, usa ferramentas de análise de mídia social para determinar atitudes em relação a um produto ou ideia.

A análise de tendências do Twitter em tempo real é um ótimo exemplo de ferramenta de análise porque o modelo de assinatura de hashtag permite ouvir palavras-chave específicas (hashtags) e desenvolver a análise de sentimento do feed.

Cenário: Análise de sentimento nas redes sociais em tempo real

Uma empresa que tem um site de mídia de notícias está interessada em ganhar uma vantagem sobre seus concorrentes, apresentando conteúdo do site que é imediatamente relevante para seus leitores. A empresa usa a análise de mídia social em tópicos que são relevantes para os leitores, fazendo análise de sentimento em tempo real dos dados do Twitter.

Para identificar os trending topics em tempo real no Twitter, a empresa precisa de análises em tempo real sobre o volume de tweets e o sentimento dos principais tópicos.

Pré-requisitos

Neste guia de instruções, você usa um aplicativo cliente que se conecta ao Twitter e procura tweets que tenham determinadas hashtags (que você pode definir). A lista a seguir fornece pré-requisitos para executar o aplicativo e analisar os tweets usando o Azure Streaming Analytics.

Aqui está a arquitetura da solução que você vai implementar.

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

Criar um hub de eventos para entrada de streaming

O aplicativo de exemplo gera eventos e os envia por push para um hub de eventos. Os Hubs de Eventos do Azure são o método preferencial de ingestão de eventos para o Stream Analytics. Para obter mais informações, consulte a documentação dos Hubs de Eventos do Azure.

Criar um namespace e um hub de eventos de Hubs de Eventos

Siga as instruções de Guia de início rápido: crie um hub de eventos usando o portal do Azure para criar um namespace de Hubs de Eventos e um hub de eventos chamado socialtwitter-eh. Pode utilizar um nome diferente. Se o fizer, tome nota, porque precisa do nome mais tarde. Não é necessário definir outras opções para o hub de eventos.

Conceder acesso ao hub de eventos

Antes que um processo possa enviar dados para um hub de eventos, o hub de eventos precisa de uma política que permita o acesso. A política de acesso produz uma cadeia de ligação que inclui as informações de autorização.

  1. Na barra de navegação no lado esquerdo do namespace Hubs de Eventos, selecione Hubs de Eventos, que está localizado na seção Entidades. Em seguida, selecione o hub de eventos que você acabou de criar.

  2. Na barra de navegação do lado esquerdo, selecione Políticas de acesso compartilhado localizado em Configurações.

    Nota

    Há uma opção Políticas de acesso compartilhado em para o namespace e para o hub de eventos. Certifique-se de que está a trabalhar no contexto do seu hub de eventos, não no espaço de nomes.

  3. Na página Políticas de acesso compartilhado, selecione + Adicionar na barra de comandos. Em seguida, digite socialtwitter-access para o nome da política e marque a caixa de seleção Gerenciar.

  4. Selecione Criar.

  5. Depois que a política for implantada, selecione-a na lista de políticas de acesso compartilhado.

  6. Localize a caixa denominada Chave primária da cadeia de conexão e selecione o botão de cópia ao lado da cadeia de conexão.

  7. Cole a cadeia de ligação num editor de texto. Você precisa dessa cadeia de conexão para a próxima seção depois de fazer algumas pequenas edições.

A cadeia de conexão tem esta aparência:

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

Observe que a cadeia de conexão contém vários pares chave-valor, separados por ponto-e-vírgula: Endpoint, SharedAccessKeyName, SharedAccessKeye EntityPath.

Nota

Por segurança, partes da cadeia de conexão no exemplo foram removidas.

Configurar e iniciar o aplicativo cliente do Twitter

O aplicativo cliente recebe eventos de tweet diretamente do Twitter. Para fazer isso, ele precisa de permissão para chamar as APIs de streaming do Twitter. Para configurar essa permissão, crie um aplicativo no Twitter, que gera credenciais exclusivas (como um token OAuth). Em seguida, você pode configurar o aplicativo cliente para usar essas credenciais quando ele faz chamadas de API.

Criar uma aplicação do Twitter

Se você ainda não tem um aplicativo do Twitter que possa usar para este guia de instruções, você pode criar um. Você já deve ter uma conta no Twitter.

Nota

O processo exato no Twitter para criar um aplicativo e obter as chaves, segredos e token pode mudar. Se essas instruções não corresponderem ao que você vê no site do Twitter, consulte a documentação do desenvolvedor do Twitter.

  1. Em um navegador da Web, vá para Twitter For Developers, crie uma conta de desenvolvedor e selecione Criar um aplicativo. Você pode ver uma mensagem dizendo que precisa se inscrever para uma conta de desenvolvedor do Twitter. Sinta-se à vontade para o fazer e, após a aprovação da sua candidatura, deverá receber um e-mail de confirmação. Pode levar vários dias para ser aprovado para uma conta de desenvolvedor.

    Screenshot shows the Create an app button.

  2. Na página Criar uma aplicação, forneça os detalhes da nova aplicação e, em seguida, selecione Criar a sua aplicação do Twitter.

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

  3. Na página do aplicativo, selecione a guia Chaves e Tokens e copie os valores de Chave de API do Consumidor e Chave Secreta da API do Consumidor. Além disso, selecione Criar em Token de acesso e Segredo do token de acesso para gerar os tokens de acesso. Copie os valores de Token de Acesso e Segredo de Token de Acesso.

    Guarde os valores que obteve da aplicação do Twitter. Você precisa dos valores mais tarde.

Nota

As chaves e segredos para o aplicativo Twitter fornecem acesso à sua conta do Twitter. Trate essas informações como confidenciais, da mesma forma que você trata sua senha do Twitter. Por exemplo, não incorpore essas informações em um aplicativo que você fornece a outras pessoas.

Configurar o aplicativo cliente

Criamos um aplicativo cliente que se conecta aos dados do Twitter usando as APIs de streaming do Twitter para coletar eventos de tweet sobre um conjunto específico de tópicos.

Antes de executar o aplicativo, ele requer determinadas informações suas, como as chaves do Twitter e a cadeia de conexão do hub de eventos.

  1. Certifique-se de ter baixado o aplicativo TwitterClientCore , conforme listado nos pré-requisitos.

  2. Use um editor de texto para abrir o arquivo App.config . Faça as seguintes alterações no <appSettings> elemento:

    • Defina oauth_consumer_key como a chave do consumidor do Twitter (chave da API).
    • Defina oauth_consumer_secret como o Segredo do Consumidor do Twitter (chave secreta da API).
    • Defina oauth_token como o token de acesso do Twitter.
    • Defina oauth_token_secret como o segredo do token de acesso do Twitter.
    • Defina EventHubNameConnectionString como a cadeia de conexão.
    • Defina EventHubName como o nome do hub de eventos (que é o valor do caminho da entidade).
  3. Abra a linha de comando e navegue até o diretório onde seu aplicativo TwitterClientCore está localizado. Use o comando dotnet build para criar o projeto. Em seguida, use o comando dotnet run para executar o aplicativo. O aplicativo envia Tweets para seus Hubs de Eventos.

Criar uma tarefa do Stream Analytics

Agora que os eventos do tweet estão sendo transmitidos em tempo real do Twitter, você pode configurar um trabalho do Stream Analytics para analisar esses eventos em tempo real.

  1. No portal do Azure, navegue até seu grupo de recursos e selecione + Adicionar. Em seguida, procure por trabalho do Stream Analytics e selecione Criar.

  2. Nomeie o trabalho socialtwitter-sa-job e especifique uma assinatura, grupo de recursos e local.

    É uma boa ideia colocar o trabalho e o hub de eventos na mesma região para obter o melhor desempenho e para que você não pague para transferir dados entre regiões.

  3. Selecione Criar. Em seguida, navegue até o trabalho quando a implantação for concluída.

Especificar a entrada de trabalho

  1. No trabalho do Stream Analytics, selecione Entradas no menu esquerdo em Topologia do trabalho.

  2. Selecione + Adicionar fluxo de entrada>Hub de Eventos. Preencha o novo formulário de entrada com as seguintes informações:

    Definição Valor sugerido Descrição
    Alias de entrada TwitterStream Insira um alias para a entrada.
    Subscrição <a sua subscrição> Selecione a subscrição do Azure que pretende utilizar.
    Espaço de nomes dos Event Hubs asa-twitter-eventhub
    Nome do hub de eventos socialtwitter-eh Escolha Usar existente. Em seguida, selecione o hub de eventos que você criou.
    Tipo de compressão de evento Gzip O tipo de compactação de dados.

    Deixe os valores padrão restantes e selecione Salvar.

Especificar a consulta de trabalho

O Stream Analytics suporta um modelo de consulta simples e declarativo que descreve transformações. Para saber mais sobre o idioma, consulte a Referência de linguagem de consulta do Azure Stream Analytics. Este guia de instruções ajuda você a criar e testar várias consultas sobre dados do Twitter.

Para comparar o número de menções entre tópicos, você pode usar uma janela Tumbling para obter a contagem de menções por tópico a cada cinco segundos.

  1. Na visão geral do trabalho, selecione Editar consulta no canto superior direito da caixa Consulta. O Azure lista as entradas e saídas configuradas para o trabalho e permite criar uma consulta para transformar o fluxo de entrada à medida que é enviado para a saída.

  2. Altere a consulta no editor de consultas para o seguinte:

    SELECT *
    FROM TwitterStream
    
  3. Os dados de eventos das mensagens devem aparecer na janela de visualização de entrada abaixo da consulta. Verifique se View está definido como JSON. Se você não vir nenhum dado, verifique se o gerador de dados está enviando eventos para o hub de eventos e se você selecionou Gzip como o tipo de compactação para a entrada.

  4. Selecione Testar consulta e observe os resultados na janela Resultados do teste abaixo da consulta.

  5. Altere a consulta no editor de códigos para o seguinte e selecione Testar consulta:

    SELECT System.Timestamp as Time, text
    FROM TwitterStream
    WHERE text LIKE '%Azure%'
    
  6. Essa consulta retorna todos os tweets que incluem a palavra-chave Azure.

Criar um coletor de saída

Agora você definiu um fluxo de eventos, uma entrada de hub de eventos para ingerir eventos e uma consulta para executar uma transformação no fluxo. A última etapa é definir um coletor de saída para o trabalho.

Neste guia de instruções, você escreve os eventos de tweet agregados da consulta de trabalho no armazenamento de Blob do Azure. Você também pode enviar seus resultados por push para o Banco de Dados SQL do Azure, armazenamento de Tabela do Azure, Hubs de Eventos ou Power BI, dependendo das necessidades do seu aplicativo.

Especificar a saída do trabalho

  1. Na seção Topologia de trabalho no menu de navegação esquerdo, selecione Saídas.

  2. Na página Saídas, selecione + Adicionar e armazenamento de Blob/Data Lake Storage Gen2:

    • Alias de saída: use o nome TwitterStream-Output.
    • Opções de importação: selecione Selecionar armazenamento nas suas subscrições.
    • Conta de armazenamento. Selecione a sua conta de armazenamento.
    • Contentor. Selecione Criar novo e digite socialtwitter.
  3. Selecione Guardar.

Iniciar a tarefa

Uma entrada, consulta e saída de trabalho são especificadas. Você está pronto para iniciar o trabalho do Stream Analytics.

  1. Verifique se o aplicativo TwitterClientCore está em execução.

  2. Na visão geral do trabalho, selecione Iniciar.

  3. Na página Iniciar trabalho, para Hora de início da saída do trabalho, selecione Agora e, em seguida, selecione Iniciar.

Obter suporte

Para obter mais assistência, experimente a nossa página de perguntas e respostas da Microsoft para o Azure Stream Analytics.

Próximos passos