Análisis de redes sociales mediante Azure Stream Analytics
En este artículo se enseña a crear una solución de análisis de sentimiento para análisis de redes sociales, para lo cual se ponen eventos de X en tiempo real en Azure Event Hubs y, a continuación, se analizan mediante Stream Analytics. Escriba una consulta de Azure Stream Analytics para analizar los datos y almacenar los resultados para usarlos más tarde, o bien cree un panel de Power BI para ofrecer información en tiempo real.
Las herramientas de análisis de las redes sociales ayudan a las organizaciones a comprender temas populares. Los temas populares son cuestiones y actitudes que tienen un gran volumen de entradas en las redes sociales. Por su parte, los análisis de sentimiento, denominados también minería de opinión, usan las herramientas de análisis de las redes sociales para determinar las actitudes hacia un producto o una idea.
El análisis de tendencias de X en tiempo real es un buen ejemplo de herramienta de análisis, porque el modelo de suscripción por hashtags permite escuchar palabras clave específicas (hashtags) y desarrollar el análisis de sentimiento de la fuente.
Escenario: Análisis de sentimiento de redes sociales en tiempo real
Una empresa que tiene un sitio web de medios de comunicación está interesada en obtener una ventaja sobre sus competidores ofreciendo contenido del sitio que sea inmediatamente relevante para sus lectores. La empresa usa el análisis de las redes sociales en temas relevantes para sus lectores mediante la elaboración del análisis de sentimiento en tiempo real de los datos de X.
Para identificar los temas populares en tiempo real en X, la empresa necesita el análisis en tiempo real del volumen de tweets y la opinión sobre los temas clave.
Requisitos previos
En esta guía paso a paso va a utilizar una aplicación cliente que se conecta a X y busca tweets con ciertos hashtags (que se pueden establecer). En la lista siguiente se proporcionan los requisitos previos para ejecutar la aplicación y analizar los tweets mediante Azure Streaming Analytics.
Si no tiene una suscripción a Azure, cree una cuenta gratuita.
Una cuenta de X.
La aplicación TwitterClientCore, que lee la fuente de X. Para obtener esta aplicación, descargue TwitterClientCore.
Instale la CLI de .NET Core versión 2.1.0.
Esta es la arquitectura de la solución que va a implementar.
Creación de un centro de eventos para la entrada de streaming
La aplicación de ejemplo genera eventos y los inserta en un centro de eventos de Azure. Azure Event Hubs es el método preferido de ingesta de eventos para Stream Analytics. Para más información, consulte la documentación de Azure Event Hubs.
Creación de un espacio de nombres Centros de eventos y un centro de eventos
Siga las instrucciones de Inicio rápido: Creación de un centro de eventos mediante Azure Portal para crear un espacio de nombres de Event Hubs y un centro de eventos denominado socialx-eh. Puede usar otro nombre. Si lo hace, tome nota de él, porque más adelante se necesita el nombre. No es preciso establecer otras opciones del centro de eventos.
Concesión de acceso al centro de eventos
Para que un proceso pueda enviar datos a un centro de eventos, este necesita una directiva que permita el acceso. La directiva de acceso genera una cadena de conexión que incluye la información de autorización.
En la barra de navegación del lado izquierdo del espacio de nombres de Event Hubs, seleccione Event Hubs, que se encuentra en la sección Entidades. Luego, seleccione el centro de eventos que acaba de crear.
En la barra de navegación de la izquierda, seleccione Directivas de acceso compartido, que se encuentra en Configuración.
Nota
Hay una opción Directivas de acceso compartido para el espacio de nombres y el centro de eventos. Asegúrese de que usa el contexto de su centro de eventos, no el espacio de nombres.
En la página Directivas de acceso compartido, seleccione + Agregar en la barra de comandos. Luego, escriba socialx-access en Nombre de directiva y active la casilla Administrar.
Seleccione Crear.
Una vez que se haya implementado la directiva, selecciónela en la lista de directivas de acceso compartido.
Busque el cuadro Cadena de conexión: clave principal y haga clic en el botón para copiar que se encuentra junto a la cadena de conexión.
Pegue la cadena de conexión en un editor de texto. Esta cadena de conexión se necesita en la siguiente sección, después de hacer algunas modificaciones pequeñas.
La cadena de conexión tiene el siguiente aspecto:
Endpoint=sb://EVENTHUBS-NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=socialx-access;SharedAccessKey=XXXXXXXXXXXXXXX;EntityPath=socialx-eh
Observe que la cadena de conexión contiene varios pares clave-valor, separados por punto y coma: Endpoint
, SharedAccessKeyName
, SharedAccessKey
y EntityPath
.
Nota
Por seguridad, se han quitado partes de la cadena de conexión del ejemplo.
Configuración e inicio de la aplicación cliente de X
La aplicación cliente obtiene eventos de tweet directamente desde X. Para ello, necesita permiso para llamar a las API de Streaming de Twitter. Para configurar ese permiso, debe crear una aplicación de X, que genera credenciales exclusivas (por ejemplo, un token de OAuth). Luego puede configurar la aplicación cliente para que use estas credenciales cuando realiza llamadas de API.
Crear una aplicación de X
Si no dispone de una aplicación de X que pueda usar para esta guía paso a paso, puede crear una. Ya debe tener una cuenta de X.
Nota:
Puede que el proceso exacto en X para crear una aplicación y obtener claves, secretos y tokens cambie. Si estas instrucciones no coinciden con lo que se ve en el sitio de X, consulte la documentación para desarrolladores de X.
En un explorador web, vaya a X Developers, cree una cuenta de desarrollador y seleccione Crear una aplicación. Es posible que vea un mensaje en el que se le indique que ha de solicitar una cuenta de desarrollador de X. Hágalo y, cuando se haya aprobado la solicitud, verá un correo electrónico de confirmación. Tenga en cuenta que una cuenta de desarrollador puede tardar varios días en aprobarse.
En la página Create an application (Crear una aplicación), proporcione los detalles de la nueva aplicación y luego seleccione Create your Twitter application (Crear su aplicación de Twitter).
En la página de la aplicación, seleccione la pestaña Keys and Tokens (Claves y tokens de acceso) y copie los valores de Consumer API Key (Clave de API de consumidor) y Consumer API Secret Key (Clave secreta de API de consumidor). Además, seleccione Create (Crear) en Access Token and Access Token Secret (Token de acceso y secreto de token de acceso) para generar los tokens de acceso. Copie los valores de Access Token (Token de acceso) y Access Token Secret (Secreto del token de acceso).
Guarde los valores que ha recuperado de la aplicación de X. Los necesitará más adelante.
Nota:
Las claves y los secretos de la aplicación de X proporcionan acceso a su cuenta de X. Considere esta información como confidencial, al igual que la contraseña de X. Por ejemplo, no inserte esta información en una aplicación que proporcione a otros usuarios.
Configuración de la aplicación cliente
Hemos creado una aplicación cliente que se conecta a los datos de X mediante las API de streaming de Twitter para recopilar eventos de tweets sobre un conjunto de temas específicos.
Antes de que se ejecute la aplicación, requiere cierta información del usuario, como las claves de Twitter y la cadena de conexión del centro de eventos.
Asegúrese de que ha descargado la aplicación TwitterClientCore, tal y como se muestra en los requisitos previos.
Use un editor de texto para abrir el archivo App.config. Realice los siguientes cambios en el elemento
<appSettings>
:- Establezca
oauth_consumer_key
en la clave de consumidor de Twitter (clave de API). - Establezca
oauth_consumer_secret
en el secreto de consumidor de Twitter (clave de secreto de API). - Establezca
oauth_token
en el token de acceso de Twitter. - Establezca
oauth_token_secret
en el secreto del token de acceso de Twitter. - Establezca
EventHubNameConnectionString
en la cadena de conexión. - Establezca
EventHubName
en el nombre del centro de eventos (es decir, el valor de la ruta de acceso de la entidad).
- Establezca
Abra la línea de comandos y vaya al directorio en el que se encuentre la aplicación TwitterClientCore. Use el comando
dotnet build
para compilar el proyecto. Luego, use el comandodotnet run
para ejecutar la aplicación. Esta envía tweets a su centro de eventos.
Creación de un trabajo de Stream Analytics
Ahora que los eventos Tweet se transmiten en tiempo real desde X, se puede configurar un trabajo de Stream Analytics para analizar estos eventos en tiempo real.
En Azure Portal, vaya a su grupo de recursos y seleccione + Agregar. Luego, busque Trabajo de Stream Analytics y seleccione Crear.
Asigne al trabajo el nombre
socialx-sa-job
y especifique una suscripción, un grupo de recursos y una ubicación.Es conveniente colocar el trabajo y el centro de eventos en la misma región para obtener el mejor rendimiento y no pagar por transferir datos de una región a otra.
Seleccione Crear. Luego, vaya al trabajo cuando finalice la implementación.
Especificación de la entrada del trabajo
En el trabajo de Stream Analytics, seleccione Entradas en el menú izquierdo, en Topología de trabajo.
Seleccione + Agregar entrada de flujo>Centro de eventos. Rellene el formulario Nueva entrada con la siguiente información:
Configuración Valor sugerido Descripción Alias de entrada TwitterStream Escriba un alias para la entrada. Suscripción <Su suscripción> Seleccione la suscripción de Azure que quiera usar. Espacio de nombres de Event Hubs asa-x-eventhub Nombre del centro de eventos socialx-eh Elija Usar existente. Luego, seleccione el centro de eventos que ha creado. Tipo de compresión de eventos Gzip El tipo de compresión de datos. Deje los restantes valores predeterminados y seleccione Guardar.
Especificación de la consulta del trabajo
Stream Analytics admite un modelo de consulta declarativa simple que describe las transformaciones. Para más información sobre el lenguaje, consulte la Referencia de lenguaje de consulta de Azure Stream Analytics. Esta guía paso a paso le ayudará a crear y probar varias consultas sobre datos de X.
Para comparar el número de menciones entre temas, se usa una ventana de saltos de tamaño constante para obtener el recuento de menciones por tema cada cinco segundos.
En la Información general del trabajo, seleccione Editar consulta, cerca de la parte superior derecha del cuadro Consulta. Azure enumera las entradas y salidas que están configuradas para el trabajo, y permite crear una consulta para transformar el flujo de entrada a medida que se envía a la salida.
En el editor de código, cambie la consulta por lo siguiente:
SELECT * FROM TwitterStream
Los datos de eventos de los mensajes deberían aparecer en la ventana Vista previa de entrada, debajo de la consulta. Asegúrese de que en Vista se ha seleccionado JSON. Si no ve datos, asegúrese de que el generador de datos está enviando eventos al centro de eventos y que ha seleccionado GZip como tipo de compresión para la entrada.
Seleccione Consulta de prueba y fíjese en los resultados que aparecen en la ventana Resultados de prueba, que está debajo de la consulta.
En el editor de código, cambie la consulta por la siguiente y seleccione Consulta de prueba:
SELECT System.Timestamp as Time, text FROM TwitterStream WHERE text LIKE '%Azure%'
Esta consulta devuelve todos los tweets que incluyen la palabra clave Azure.
Creación de un receptor de salida
Se ha definido un flujo de eventos, una entrada de centro de eventos para la ingesta de eventos y una consulta para realizar una transformación en el flujo de datos. El último paso consiste en definir un receptor de salida para el trabajo.
En esta guía paso a paso va a escribir los eventos Tweet agregados de nuestra consulta de trabajo en Azure Blob Storage. También puede insertar los resultados en Azure SQL Database, Azure Table Storage, Event Hubs o Power BI, según las necesidades específicas de su aplicación.
Especificación de la salida del trabajo
En la sección Topología de trabajo del menú de navegación de la izquierda, seleccione Salidas.
En la página Salidas, haga clic en +Agregar y Blob Storage/Data Lake Storage Gen2:
- Alias de salida: Use el nombre
TwitterStream-Output
. - Opciones de importación: Seleccione Seleccionar almacenamiento de las suscripciones.
- Cuenta de almacenamiento. Seleccione la cuenta de almacenamiento.
- Contenedor. Seleccione Crear nuevo y escriba
socialx
.
- Alias de salida: Use el nombre
Seleccione Guardar.
Inicio del trabajo
Se especifican una entrada de trabajo, la consulta y la salida. Está listo para iniciar el trabajo de Stream Analytics.
Asegúrese de que se está ejecutando la aplicación TwitterClientCore.
En la información general del trabajo, seleccione Iniciar.
En la página Iniciar trabajo, en Hora de inicio de la salida del trabajo, seleccione Ahora y, después, Iniciar.
Obtención de soporte técnico
Para más ayuda, pruebe nuestra página de preguntas y respuestas de Microsoft sobre Azure Stream Analytics.