Event Hubs - wandent/mutual-wiki GitHub Wiki
[[TOC]]
Azure Event Sub será la plataforma de ingestión de datos de forma continuada desde los sensores o eventos de aplicación, pasando por alguna aplicación o otra solución hacia el entorno de Azure. La ingestión de datos por el data lake se hará de forma continuada usando jobs de streaming.
Son componentes clave en una solución usando Event Hub los siguientes componentes:
-
Productores de Eventos: alguna entidad, sea una aplicación, microservicio o otro que pueda publicar eventos usando protocolo https o AMQP 1.0 o Apache Kafka (1.0 o superior)
-
Particiones: Cada consumidor puede leer solamente un subconjunto, o partición de mensajes en el stream.
-
Consumer group: funciona como una vista (estado, posición o offset en la cola) de todo el event hub. Consumer Groups permiten que aplciacione spuedan tener una cisión seaparada de la cola de eventos. Pueden leer eventos independientemente, en su propia cadencia.
-
Throughput Unit: Básicamente es la unidad de compra de capacidad de computo en el event hub. En la creación de cada uno de los event hubs, la definición de throughput units mínimo y máximo será definida, permitiendo el auto escalamiento (auto-inflate). Cada throughput unit significa, desde un punto de vista de capacidad de cómputo, la siguente definción:
- Ingreso: hasta 1 MB por segundo o 1000 eventos por segundo (el primer que atingir la cuota).
- Egreso: hasta 2 MB por segundo o 4096 eventos por segundo.
-
Recibidores de eventos: Es alguna entidad que pueda leer los datos. Basicamente el recibidor de eventos es algun proceso que queda prendido, escuchando lo que llega en el event hub. En el escenario de la presente solución el recibidor de eventos seria algún job databricks corriendo en un clúster encidido.
- Integración con envío de mensajes por otros sistemas
- Captura del historial de eventos en un Event Hub a el storage de land (en el contenedor capture)
- En Databricks, un job puede iniciar un proceso de ingesta y transformación continuada desde el Event Hub, hacia una tabla delta
-
Creación de Event hubs según la necesidad de integración de diferentes instalaciones y sistemas que comuniquen con Data Lake usando Streaming.
-
Como recomendación futura, se puede permitir el aislamiento en diferentes namespaces puede ayudar a dividir el costo de integración con departamentos y gestión de permisos.
-
El nivel de servicio debe de ser ajustado según la demanda, numero de sensores, frecuencia etc.
-
Podrán usarse runtimes fuera de la solución para integrarse con Event Hubs, o llamar la REST API directamente https://docs.microsoft.com/en-us/rest/api/eventhub/event-hubs-runtime-rest.
- Event publisher - service principal por autenticación de Azure Active Directory
- Shared Access Signatures - utilizando key vault
- Basadas SAS token y acceso al consumer group. Como practica recomendada no utilizar el grupo $default
- El job en Databricks con el proceso deberá de ser disparado, sin embargo el job queda prendido. Por razones de costo, el job puede tener que ser parado manualmente caso no tengamos eventos por procesar.