OpenWebinars

Cloud Computing

Azure Event Hubs: Qué es y características

Con el Big Data han surgido todo tipo de herramientas y plataformas, como Azure Event Hubs, de la que contamos qué es y sus características en este post.

Carol Cupas

Carol Cupas

Lectura 8 minutos

Publicado el 22 de abril de 2022

Compartir

El uso de plataformas de Big Data lo podemos ver a diario cuando una persona utiliza de forma recurrente diferentes aplicaciones digitales, ya sea para solicitar ayuda a un asistente virtual para controlar un dispositivo inteligente, buscar una dirección en un GPS, consultar el clima, etc. Del mismo modo, miles de otros usuarios también se encuentran interactuando simultáneamente con las mismas plataformas tecnológicas que gestionan estas aplicaciones.

Para poder administrar y procesar las peticiones de todos los usuarios, en primer lugar, las plataformas deben saber cuándo reciben una petición, es decir que han de permanecer activamente a la espera de que ocurra una petición o evento nuevo. Se puede considerar un evento como un pequeño paquete de datos (no superior a 1 MB) que contiene una petición. Las plataformas que gestionan los flujos de eventos se le conocen como plataformas de streaming (transmisión) de datos.

Qué es Azure Event Hubs

Azure Event Hubs (Centro de eventos) es una plataforma de streaming disponible en la nube de Microsoft como un servicio gestionado (PaaS, Plataforma como servicio) para la captura de grandes flujos de eventos por segundo de forma escalable. Actúa como un agente de carga de eventos que se ubica entre los sistemas publicadores de eventos (aplicaciones o dispositivos) y los sistemas consumidores de eventos para separar los flujos de eventos de entrada de los flujos de eventos de salida.

Se conecta a Azure Data Explorer y Azure Stream Analytics para analizar los eventos en tiempo real con una alta fiabilidad y baja latencia mediante diferentes protocolos como HTTPS, AMQP 1.0 o Apache Kafka 1.0 en adelante.

Azure Event Hubs conserva los eventos en un búfer interno durante un período de retención configurable, y una vez que alcanzado el tiempo establecido, los eventos se eliminarán automáticamente para evitar que el búfer temporal se llene con grandes volúmenes de datos históricos.

Debido a que Azure Event Hubs no es el servicio apropiado para retener datos a largo plazo, se conecta a otras plataformas de Microsoft como Azure Data Lake Storage o Azure Blob Storage para almacenarlos habilitando el servicio Event Hubs Capture en el Azure Portal. Antes de realizar las capturas, se deben especificar el rango de tiempo y el tamaño mínimo de los datos capturados.

Event Hubs Capture guardará los datos en formato de Apache Avro el cual es popular en ecosistemas de Hadoop, en Azure Data Factory, y en Stream Analytics. Los datos se pueden transformar y analizar posteriormente con plataformas analíticas como Azure Synapse Analytics.

Microsoft dispone de cuatro planes de precios para contratar el servicio Azure Event Hub que son Básico, Estándar, Premium y Dedicado. Cada plan incluye todas o algunas de las siguientes opciones:

  • Capacidad de procesamiento, costo por unidad de procesamiento por hora
  • Eventos de entrada, costo por carga de 1 millar de eventos
  • Capture, costo por servicio mensual del servicio
  • Apache Kafka, incluido a partir del plan Estándar
  • Registro de esquema, incluido a partir del plan Estándar
  • Periodo de Conservación (Retención), De 1 a 90 días
  • Espacio de almacenamiento interno de eventos conservados, De 84 GB a 10 TB
  • Retención ampliada, costo por GB excedente del almacenamiento incluido en el plan

Una diferencia a resaltar entre los planes de Event Hubs Premium y Event Hubs Dedicado es que la implementación PaaS de Event Hubs Premium es multi-tenant (multiinquilino), mientras que la de Event Hubs Dedicado es exclusiva de un único inquilino y cuenta con un acuerdo de nivel de servicio (SLA) garantizado de un 99,99%. Adicional, Event Hubs Dedicado ofrece una latencia inferior a un segundo y todas las características del plan Premium como:

  • Mínima interferencia
  • Retención ampliada
  • Claves administradas por el cliente
  • Escalado vertical de particiones dinámicas
  • Nivel de rendimiento superior (velocidad de transmisión)

Azure Event Hubs puede escalar vertical de manera automática cuando el tráfico de eventos sobrepasa el límite mínimo elegido. Esto es posible gracias a que cuenta con la característica Auto-Inflate para aumentar automáticamente y poco a poco el número de unidades de procesamiento hasta el límite máximo conforme sea necesario. Esta característica se puede habilitar o deshabilitar mediante el Azure Portal para un espacio de nombres de nivel estándar. Lo anterior, es una ventaja para prevenir los errores de ServerBusy en los casos donde:

  1. El volumen de flujo de datos de entrada es superior a las unidades de procesamiento predefinidas o
  2. El volumen de consumo de salida de datos es superior a las unidades de procesamiento predefinidas

Cuándo utilizar Azure Event Hubs

La adopción de plataformas de Big Data en entornos cloud es prácticamente imprescindible en la mayoría de las industrias, como son las energéticas, las agencias de seguridad pública, los medios de difusión masiva y telecomunicaciones, los bancos, las fábricas de alimentos y granjas, entre otras. Por lo tanto, la captura de datos en tiempo real es un factor esencial en escenarios como:

  • Monitoreo de las condiciones climatológicas para optimizar recursos.
  • Identificación de niveles de tráfico en las redes de comunicación y prevenir fallos.
  • Detección temprana de anomalías en los sistemas.
  • Auditoría y registro del funcionamiento de máquinas y aplicaciones.
  • Optimización del procesamiento de transacciones.
  • Análisis de la telemetría de naves espaciales y satélites.
  • Recuperación de la información si ocurre un fallo o ataque al sistema.

Para escenarios híbridos donde se tenga la parte del streaming en la nube y la parte del análisis en local, Azure Event Hubs se conecta a Azure Stack Hub para dar flexibilidad al procesamiento híbrido de los eventos.

Imagen 0 en Azure Event Hubs: Qué es y características

Pasos para crear un Centro de Eventos en Azure

A modo general, los pasos a seguir son:

  1. Crear un grupo de recursos donde se organizan y administran todos los recursos necesarios.
  2. Crear un espacio de nombres de Event Hubs donde se especifica el contenedor que contendrá uno o más centros de eventos. Acorde al plan de precios seleccionado, se especifican las unidades de procesamiento. En el espacio de nombres se configura los puntos de conexión de red integrados y se administra el acceso a la red.
  3. Crear un centro de eventos en el espacio de nombres proporcionado la configuración del número de particiones y el periodo de retención de los datos.

Propiedades del evento

Para la creación de una conexión a Azure Event Hubs se deben conocer las directivas del publicador, las propiedades del sistema y las siguientes propiedades del evento:

  1. EnqueuedTimeUTC (Tiempo en espera): proporciona la fecha y la hora de la trasmisión del evento en estándar UTC.

  2. Offset (Posición): proporciona la posición numeración de byte (marca del desplazamiento) de un evento dentro de una partición. Es un identificador único que indica el punto en el flujo de eventos desde el que el consumidor de eventos iniciará la lectura.

  3. PartitionKey (Clave de partición): proporciona la clave que indica la partición a la cual se envía y almacena el evento. Consiste en un valor proporcionado por el remitente que se pasa a Azure Event Hubs. El propósito de una clave de partición es ordenar los eventos entrantes en la partición. A la secuencia de eventos definidos por una clave de partición se le conoce como un flujo, por lo tanto, una partición es un depósito de estos flujos.

  4. Properties (Propiedades de usuario): proporciona las propiedades de usuario publicador del evento especificadas en el envío.

  5. SequenceNumber (Número de secuencia): proporciona el número de secuencia lógica del evento dentro de la partición. Este indicador y el offset son importantes porque son necesarios al momento de crear un punto de comprobación en la secuencia de eventos.

  6. SerializedSizeInBytes (Tamaño serializado InBytes): proporciona el tamaño real en bytes de los datos que se envían a Event Hub.

  7. SystemProperties (Propiedades del sistema): proporciona las propiedades del sistema, incluidos los datos de eventos.

Componentes principales de Azure Event Hubs

Los componentes que conforman Azure Event Hubs son:

  1. Event producers (Productores o Publicadores de eventos): Se refiere a los sistemas que producen y envían datos en lotes o de forma individual a Azure Event Hubs. Para los productores que envían datos de manera intermitente se recomienda el protocolo HTTPS, mientras que para aquellos que lo hacen de modo recurrente se recomienda optar por AMQP porque su rendimiento es mejor.

Los publicadores de eventos deben tener autorización para publicar eventos mediante Azure Active Directory o tokens de firma de acceso compartido (SAS) específico del centro de eventos.

  1. Event receivers (Receptores o Consumidores de eventos): Se refiere a los sistemas que leen y procesan los datos capturados por Event Hubs a medida que están disponibles. Para la lectura de eventos, los consumidores necesitan una sesión de AMQP 1.0 y un enlace a una partición específica para el transporte y entrega de los metadatos del evento. Los consumidores deben registrar y almacenar fuera del servicio sus valores de desplazamiento.

  2. Partitions (Particiones): Son segmentos específicos del flujo de datos que serán leídos por un consumidor. Para acceder a estas, se debe usar un grupo de consumidores. Para conectarse y coordinar las conexiones de los consumidores a la partición, se emplea un método de concesiones para que cada partición tenga un solo consumidor activo por grupo de consumidores. Dentro de una sola partición pueden encontrarse hasta un máximo de cinco consumidores activos, pero en vista de que cada uno recibe todos los eventos dentro de la partición, la lectura de los eventos se duplicará sino se desarrolla una programación para controlarlo. Las particiones en conjunto con las unidades de procesamiento sirven para ajustar el rendimiento del servicio.

  3. Consumer groups (Grupos de consumidores): Consisten en vistas de un flujo de datos determinado del centro de eventos. Los grupos de consumidores permiten que las aplicaciones consumidoras lean y procesen una vista separada de los datos de manera independiente a las otras aplicaciones. Utilizan sus propios desplazamientos sin afectar el ritmo de las demás. Dependiendo del volumen de productores, puede ser suficiente trabajar únicamente con el grupo de consumidores predeterminado, de otro modo, se podrá crear hasta un número máximo de nuevos grupos de consumidores según el plan de precios seleccionado.

  4. Processing units (Unidades de procesamiento): Consisten en las unidades de procesamiento que controlan la velocidad de transferencia de los flujos de eventos. De acuerdo al plan de precios seleccionado de Azure Event Hubs, el número de unidades disponibles cambia.

Puntos de comprobación

Cada lector en un grupo de consumidores de eventos debe especificar su posición actual dentro de la secuencia de eventos para cada partición cuando ha completado la lectura de los datos. Esto permite conocer dónde se encontraba el lector previo del grupo en la partición en los casos donde se pierda la conexión y se necesita comenzar a leer el evento una vez se reconecte el lector, es decir, cuando se recupere la conexión, el lector transfiere el punto de partida para la lectura del evento. Los consumidores son los responsables de crear y administrar sus puntos de comprobación conformen leen los eventos.

A través de estos puntos de comprobación, se facilita la validación de los eventos cuya lectura esté completa y de producirse una conmutación por error entre los lectores, sea posible retornar a un estado previo de los datos especificando un indicador de desplazamiento inferior, a fin de reproducir el flujo de eventos.

La transmisión de grandes volúmenes de datos en tiempo real desde sitios web, dispositivos IoT y otras aplicaciones es una necesidad que muchas empresas deben gestionar en la actualidad. Por esto, las empresas necesitan plataformas que les proporcionen flexibilidad para la recopilación y análisis de datos a un costo asequible y sin un alto esfuerzo operativo.

Podemos concluir que, Azure Event Hubs es una alternativa eficiente para la captura, el almacenamiento y análisis de eventos en tiempo real de forma escalable, rápida, sencilla por ser un servicio administrado que se integra con otros servicios de Azure y plataformas de código abierto.

Con los análisis en tiempo real de Azure Event Hubs, las empresas podrán mejorar las experiencias de sus clientes, incrementar la productividad de los dispositivos y supervisar los procesos mediante rápidas validaciones de los datos trasmitidos, categorizarlos y visualizarlos en dashboards con Power BI si lo desean.

Si te ha resultado interesante Azure Event Hubs y quisieras aprender a utilizarlo, te invito a realizar la siguiente práctica.

Compartir este post

También te puede interesar

Icono de la tecnología
Taller

Azure Data Factory

Intermedio
51 min.

Introdúcete en el uso de Data Factory , el servicio de integración de datos sin servidor totalmente administrado...

Layla Scheli
4.7
Icono de la tecnología
Empresas

Aplicar la monitorización en Azure

Intermedio
31 min.

Durante este taller aprenderás a monitorizar de forma eficaz tu infraestructura de Azure, incluyendo saber hacer uso de...

Marc Corbalán
4.6