Eliminación de la agrupación por lotes y filtrado en el procesamiento de eventos sin servidor con Event Hubs

Event Hubs
Functions
Cosmos DB

Idea de solución

Si le gustaría que expandamos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comuníquese a través de los Comentarios de GitHub.

Esta idea de solución muestra una variación de una arquitectura controlada por eventos sin servidor mediante Azure Event Hubs y Azure Functions para ingerir y procesar un flujo de datos. Una vez que se ha eliminado la agrupación por lotes de los resultados y que estos se han filtrado, se escriben en una base de datos para su almacenamiento y revisión futura.

Para más información sobre los conceptos básicos, las consideraciones y los enfoques para el procesamiento de eventos sin servidor, consulte la arquitectura de referencia Procesamiento de eventos sin servidor.

Posibles casos de uso

Un caso de uso popular para implementar un patrón de procesamiento de flujo de eventos de un extremo a otro incluye el servicio de ingesta de streaming de Event Hubs para recibir y procesar eventos por segundo mediante una lógica de eliminación de la agrupación por lotes y transformación implementada con funciones desencadenadas por un centro de evento altamente escalables.

Architecture

Diagrama que muestra el flujo de datos y los puntos de procesamiento de claves en la arquitectura descrita en este artículo

  1. Los eventos llegan al centro de eventos de entrada.
  2. La función de eliminación de la agrupación por lotes y filtrado de Azure se desencadena para controlar el evento. Con este paso se filtran los eventos no deseados y se elimina la agrupación por lotes de los eventos recibidos antes de su envío al centro de eventos de salida.
  3. Si la función de eliminación de la agrupación por lotes y filtrado de Azure no puede almacenar el evento correctamente, el evento se envía al centro de eventos Deadletter 1.
  4. Los eventos que llegan al centro de eventos de salida desencadenan la función de Azure de transformación. Esta función de Azure transforma el evento en un mensaje para Cosmos DB.
  5. El evento se almacena en una base de datos de Cosmos DB.
  6. Si la función de transformación de Azure no puede almacenar el evento correctamente, el evento se guarda en el centro de eventos Deadletter 2.

Componentes

  • Event Hubs ingiere el flujo de datos. Event Hubs está diseñado para escenarios de transmisión de datos de alto rendimiento.
  • Azure Functions es una opción de proceso sin servidor. Utiliza un modelo orientado a eventos, en el que un desencadenador invoca un fragmento de código (una función).
  • Cosmos DB es un servicio de base de datos de varios modelos que está disponible en un modo sin servidor basado en el consumo. En este escenario, la función de procesamiento de eventos almacena registros JSON, para lo que usa SQL API de Cosmos DB.

Pasos siguientes