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 X 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ência X 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 de dados X.
Para identificar os trending topics em tempo real no X, 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 X 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.
Se não tiver uma subscrição do Azure, crie uma conta gratuita.
Uma conta X .
O aplicativo TwitterClientCore, que lê o feed X. Para obter este aplicativo, baixe TwitterClientCore.
Instale a CLI do .NET Core versão 2.1.0.
Aqui está a arquitetura da solução que você vai implementar.
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 do 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 socialx-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.
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.
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.
Na página Políticas de acesso compartilhado, selecione + Adicionar na barra de comandos. Em seguida, digite socialx-access para o nome da política e marque a caixa de seleção Gerenciar.
Selecione Criar.
Depois que a política for implantada, selecione-a na lista de políticas de acesso compartilhado.
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.
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=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh
Observe que a cadeia de conexão contém vários pares chave-valor, separados por ponto-e-vírgula: Endpoint
, SharedAccessKeyName
, SharedAccessKey
e EntityPath
.
Nota
Por segurança, partes da cadeia de conexão no exemplo foram removidas.
Configurar e iniciar o aplicativo cliente X
O aplicativo cliente recebe eventos de tweet diretamente do X. 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 X, 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 um aplicativo X
Se você ainda não tiver um aplicativo X que possa usar para este guia de instruções, poderá criar um. Você já deve ter uma conta X.
Nota
O processo exato no X para criar um aplicativo e obter as chaves, segredos e token pode mudar. Se estas instruções não corresponderem ao que você vê no site X, consulte a documentação do desenvolvedor X.
Em um navegador da Web, vá para X Developers, crie uma conta de desenvolvedor e selecione Criar um aplicativo. Poderá ver uma mensagem a indicar que precisa de se candidatar a uma conta de programador X. 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.
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.
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.
Salve os valores recuperados para o aplicativo X. Você precisa dos valores mais tarde.
Nota
As chaves e segredos para o aplicativo X fornecem acesso à sua conta X. Trate essas informações como confidenciais, da mesma forma que você trata sua senha X. 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 a dados X usando 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.
Certifique-se de ter baixado o aplicativo TwitterClientCore , conforme listado nos pré-requisitos.
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).
- Defina
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 comandodotnet run
para executar o aplicativo. O aplicativo envia Tweets para seus Hubs de Eventos.
Criar uma tarefa do Stream Analytics
Agora que os eventos de tweet estão sendo transmitidos em tempo real a partir do X, você pode configurar um trabalho do Stream Analytics para analisar esses eventos em tempo real.
No portal do Azure, navegue até seu grupo de recursos e selecione + Adicionar. Em seguida, procure por trabalho do Stream Analytics e selecione Criar.
Nomeie o trabalho
socialx-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.
Selecione Criar. Em seguida, navegue até o trabalho quando a implantação for concluída.
Especificar a entrada de trabalho
No trabalho do Stream Analytics, selecione Entradas no menu esquerdo em Topologia do trabalho.
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-x-eventhub Nome do hub de eventos socialx-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 X.
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.
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.
Altere a consulta no editor de consultas para o seguinte:
SELECT * FROM TwitterStream
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.
Selecione Testar consulta e observe os resultados na janela Resultados do teste abaixo da consulta.
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%'
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
Na seção Topologia de trabalho no menu de navegação esquerdo, selecione Saídas.
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
socialx
.
- Alias de saída: use o nome
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.
Verifique se o aplicativo TwitterClientCore está em execução.
Na visão geral do trabalho, selecione Iniciar.
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.