Análise de mídia social com o Azure Stream Analytics

Este artigo ensina como criar uma solução de análise de sentimento de mídias sociais trazendo os eventos em tempo real do Twitter para os Hubs de Eventos do Azure e analisando-os com o Stream Analytics. Você gravará uma consulta do Azure Stream Analytics para analisar os dados e ou armazenar os resultados para uso posterior ou criará um dashboard do Power BI para fornecer insights em tempo real.

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

A análise de tendência do Twitter em tempo real é um ótimo exemplo de uma ferramenta analítica, porque o modelo de assinatura com hashtag permite que você escute palavras-chave específicas (hashtags) e desenvolva a análise de sentimento no feed.

Cenário: Análise de sentimento de mídia social em tempo real

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

Para identificar os tópicos em destaque em tempo real no Twitter, a empresa precisa de análise em tempo real sobre o volume de tweets e de sentimento para os tópicos principais.

Pré-requisitos

Neste guia de instruções, você deve usar um aplicativo cliente que se conecta ao Twitter e procura tweets com determinados hashtags (que podem ser definidos). A lista a seguir fornece os pré-requisitos para executar o aplicativo e analisar os tweets usando o Azure Streaming Analytics.

Esta é a arquitetura da solução que você vai implementar.

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

Criação de um hub de eventos para entrada do streaming

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

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

Siga as instruções descritas em Guia de Início Rápido: Criar 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. Você pode usar um nome diferente. Se você fizer isso, anote-o, pois você precisará desse nome mais tarde. Você não precisa definir outras opções para o hub de eventos.

Conceder acesso para o 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 conexão que inclui informações de autorização.

  1. Na barra de navegação à esquerda do namespace dos Hubs de Eventos, selecione Hubs de Eventos, localizado na seção Entidades. Em seguida, selecione o hub de eventos que você acabou de criar.

  2. Na barra de navegação à esquerda, selecione a opção Políticas de acesso compartilhado localizada em Configurações.

    Observação

    Há uma opção Políticas de acesso compartilhado abaixo para o namespace e para o hub de eventos. Verifique se você está trabalhando no contexto do seu hub de eventos, não no namespace.

  3. Na página Políticas de acesso compartilhado, selecione + Adicionar na barra de comandos. Em seguida, insira 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 implementada, selecione a política na lista de políticas de acesso compartilhado.

  6. Localize a caixa rotulada Chave primária da cadeia de conexão e clique no botão de cópia próximo à cadeia de conexão.

  7. Cole a cadeia de conexão em um editor de texto. Você precisa dessa cadeia de conexão para a próxima seção, depois que fizer algumas pequenas modificaçõ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 de chave-valor, separados por ponto e vírgula: Endpoint, SharedAccessKeyName, SharedAccessKey, e EntityPath.

Observação

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

Configurar e iniciar o aplicativo de cliente do Twitter

O aplicativo cliente obtém 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, você pode criar um aplicativo no Twitter que gere as credenciais exclusivas (por exemplo, um token OAuth). Você pode configurar o aplicativo de cliente para usar essas credenciais ao fazer chamadas à API.

Criar um aplicativo do Twitter

Caso ainda não tenha um aplicativo do Twitter que possa usar para este guia de instruções, crie um. Você já deve ter uma conta do Twitter.

Observação

O processo exato no Twitter para criar um aplicativo e obter o token, as chaves e segredos 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, acesse Twitter para Desenvolvedores, crie uma conta de desenvolvedor e selecione Criar um aplicativo. Você poderá ver uma mensagem indicando que precisa solicitar uma conta de desenvolvedor do Twitter. Fique à vontade para fazer isso e, depois que seu aplicativo tiver sido aprovado, você verá um email de confirmação. Podem ser necessários vários dias para ser aprovado para uma conta de desenvolvedor.

    Screenshot shows the Create an app button.

  2. Na página Criar um aplicativo, forneça os detalhes para o novo aplicativo e selecione Criar seu aplicativo 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 de 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 do Token de Acesso e do Segredo do Token de Acesso.

    Salve os valores recuperados do aplicativo do Twitter. Você precisará desses valores mais tarde.

Observação

As chaves e segredos do aplicativo Twitter fornecem acesso à sua conta do Twitter. Trate essas informações como confidenciais, o mesmo faça com sua senha do Twitter. Por exemplo, não insira essas informações em um aplicativo que você forneça a outras pessoas.

Configurar o aplicativo do cliente

Nós criamos um aplicativo de cliente que se conecta aos dados do Twitter por meio das APIs de Streaming do Twitter para coletar eventos de Tweets sobre um conjunto específico de tópicos.

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

  1. Verifique se você baixou o aplicativo TwitterClientCore, conforme listado nos pré-requisitos.

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

    • Defina oauth_consumer_key como a Chave do Consumidor do Twitter (chave de API).
    • Defina oauth_consumer_secret como o Segredo do Consumidor do Twitter (chave secreta de 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 a cadeia de conexão.
    • Defina EventHubName como o nome do hub de eventos (ou seja, 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 compilar o projeto. Em seguida, use o comando dotnet run para executar o aplicativo. O aplicativo envia tweets para os Hubs de Eventos.

Criar um trabalho de Stream Analytics

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

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

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

    É aconselhável colocar o trabalho e o hub de eventos na mesma região para melhor desempenho e para que não seja necessário pagar para transferir dados entre regiões.

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

Especificar a entrada de trabalho

  1. No trabalho do Stream Analytics, selecione Entradas no menu Topologia do Trabalho à esquerda.

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

    Configuração Valor sugerido Descrição
    Alias de entrada TwitterStream Especifique um alias para a entrada.
    Subscription <Sua assinatura> Selecione a assinatura do Azure que você deseja usar.
    Namespace do Hubs de Eventos asa-Twitter-eventhub
    Nome do Hub de Eventos socialtwitter-eh Escolha Usar existente. Em seguida, selecione o hub de eventos criado.
    Tipo de compactação do 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 dá suporte a um modelo de consulta simples e declarativo que descreve as transformações. Para saber mais sobre a linguagem, consulte a Referência de linguagem de consulta do Stream Analytics do Azure. 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 em Cascata para obter a contagem de menções por tópico a cada cinco segundos.

  1. Na Visão geral do trabalho, selecione Editar consulta perto da parte superior direita da caixa de Consulta. O Azure lista as entradas e saídas que são configuradas para o trabalho e permite que você crie uma consulta que permite transformar o fluxo de entrada conforme ele é enviado para a saída.

  2. Altere a consulta no editor de código para a seguinte:

    SELECT *
    FROM TwitterStream
    
  3. Os dados de eventos das mensagens devem aparecer na janela Visualização de entrada abaixo da consulta. Verifique Exibição está definido como JSON. Caso não veja 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

Você acabou de definir um fluxo de eventos, uma entrada de hub de eventos para a ingestão de 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ê gravou os eventos de tweets agregados de nossa consulta de trabalho para o armazenamento de Blobs do Azure. Você também pode enviar por push os resultados para um Banco de Dados SQL do Azure, um armazenamento de Tabelas do Azure, para Hubs de Eventos ou Power BI, dependendo das suas necessidades de aplicativo.

Especificar a saída de trabalho

  1. Na seção Topologia do Trabalho no menu de navegação à esquerda, selecione Saídas.

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

    • Alias de saída: Use o nome TwitterStream-Output.
    • Opções de importação: Selecione a opção Selecionar armazenamento nas suas assinaturas.
    • Conta de armazenamento. Selecione sua conta de armazenamento.
    • Contêiner. Selecione Criar novo e insira socialtwitter.
  3. Clique em Salvar.

Iniciar o trabalho

Uma entrada de trabalho, uma consulta e uma saída 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 de trabalho, selecione Agora e, em seguida, selecione Iniciar.

Obtenha suporte

Para obter mais assistência, confira nossa página de Perguntas e respostas do Microsoft do Azure Stream Analytics.

Próximas etapas