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 X 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 X 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 X.
Para identificar os tópicos em destaque em tempo real no X, 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 X 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.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita.
Uma conta do X.
O aplicativo TwitterClientCore, que lê o feed do X. Para obter esse aplicativo, baixe o TwitterClientCore.
Instale a versão 2.1.0 da CLI do .NET Core.
Esta é a arquitetura da solução que você vai implementar.
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 socialx-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.
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.
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.
Na página Políticas de acesso compartilhado, selecione + Adicionar na barra de comandos. Em seguida, insira socialx-access para o Nome da política e marque a caixa de seleção Gerenciar.
Selecione Criar.
Depois que a política for implementada, selecione a política na lista de políticas de acesso compartilhado.
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.
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=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-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 X
O aplicativo cliente obtém eventos de tweet diretamente de X. 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 X 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 X
Caso ainda não tenha um aplicativo do X que possa usar para este guia de instruções, crie um. Você já deve ter uma conta do X.
Observação
O processo exato no X 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 X, consulte a documentação do desenvolvedor do X.
Em um navegador da Web, acesse X 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 X. 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.
Na página Criar um aplicativo, forneça os detalhes para o novo aplicativo e selecione Criar seu aplicativo 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 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 X. Você precisará desses valores mais tarde.
Observação
As chaves e segredos do aplicativo X fornecem acesso à sua conta X. Trate essas informações como confidenciais, o mesmo faça com sua senha do X. 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 X 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.
Verifique se você baixou o aplicativo TwitterClientCore, conforme listado nos pré-requisitos.
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).
- Defina
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 comandodotnet 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 X, você pode configurar um trabalho de Stream Analytics para analisar esses eventos em tempo real.
No portal do Azure, navegue até o grupo de recursos e selecione + Adicionar. Em seguida, procure Trabalho do Stream Analytics e selecione Criar.
Selecione o trabalho
socialx-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.
Selecione Criar. Em seguida, navegue até o seu trabalho quando a implantação for concluída.
Especificar a entrada de trabalho
No trabalho do Stream Analytics, selecione Entradas no menu Topologia do Trabalho à esquerda.
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-x-eventhub Nome do Hub de Eventos socialx-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 X.
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.
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.
Altere a consulta no editor de código para a seguinte:
SELECT * FROM TwitterStream
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.
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
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
Na seção Topologia do Trabalho no menu de navegação à esquerda, selecione Saídas.
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
socialx
.
- Alias de saída: Use o nome
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.
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 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.