Registro de esquema en Azure Event Hubs
El Registro de esquemas es fundamental en flujos de trabajo de streaming de eventos y acoplados de forma flexible para mantener la coherencia de los datos, simplificar la evolución del esquema, mejorar la interoperabilidad y reducir el esfuerzo de desarrollo. Garantiza un procesamiento y gobernanza de datos altamente confiables con poca sobrecarga operativa en organizaciones distribuidas de gran tamaño con un repositorio centralizado para esquemas.
El Registro de esquemas de Azure Event Hubs cumple varios roles en escenarios de streaming de eventos controlados por esquemas:
- Proporciona un repositorio donde se pueden registrar, administrar y evolucionar varios esquemas.
- Evolución del esquema administrado con varias reglas de compatibilidad.
- Realiza la validación de datos para todos los datos esquematizados.
- Proporciona bibliotecas del lado cliente (serializadores y deserializadores) para productores y consumidores.
- Mejora la eficacia del rendimiento de la red pasando el identificador de esquema en lugar de la definición de esquema para cada carga útil.
Nota:
El Registro de esquemas se admite en los niveles Estándar, Premium y Dedicado.
Componentes del registro de esquema
El Registro de esquemas reside en el contexto del espacio de nombres de Event Hubs, pero se puede usar con todos los servicios de mensajería de Azure u otro agente de mensajes o eventos. Consta de varios grupos de esquemas que actúan como una agrupación lógica de esquemas y se pueden administrar independientemente de otros grupos de esquemas.
Esquemas
En cualquier sistema acoplado flexiblemente, hay varias aplicaciones que se comunican entre sí, principalmente a través de datos. Los esquemas actúan como una manera declarativa de definir la estructura de los datos para que el contrato entre estas aplicaciones de productor y consumidor esté bien definido, lo que garantiza un procesamiento confiable a escala.
Una definición de esquema incluye:
- Campos: nombre de los elementos de datos individuales (es decir, nombre/apellido, título de libro, dirección).
- Tipos de datos: el tipo de datos que se pueden almacenar en cada campo (por ejemplo, cadena, fecha y hora, matriz).
- Estructura: la organización de los distintos campos (es decir, estructuras anidadas o matrices).
Los esquemas definen el contrato entre productores y consumidores. Un esquema definido en un registro de esquema de Event Hubs ayuda a administrar el contrato fuera de los datos de eventos, lo que elimina la sobrecarga.
Formatos de esquema
Los formatos de esquema se usan para determinar la manera en que un esquema está estructurado y definido, donde cada formato describe directrices y sintaxis específicas para definir la estructura de los eventos que se usarán para el streaming de eventos.
Esquema de Avro
Avro es un sistema popular de serialización de datos que usa un formato binario compacto y proporciona funcionalidades de evolución de esquemas.
Para obtener más información sobre el uso del formato de esquema de Avro con el registro de esquema de Event Hubs, consulte:
- Uso del registro de esquema con Kafka y Avro
- Uso del registro de esquema con el SDK de .NET para Event Hubs (AMQP) y Avro.
Esquema de JSON
El esquema JSON es una manera estandarizada de definir la estructura y los tipos de datos de los eventos. El esquema JSON permite el uso seguro y confiable del formato de datos JSON en el streaming de eventos.
Para obtener más información sobre el uso del formato de esquema JSON con el registro de esquema de Event Hubs, consulte:
Protobuf
Búferes de protocolo es un mecanismo extensible independiente del lenguaje, independiente de la plataforma, para serializar datos estructurados. Se usa para definir eficazmente estructuras de datos y serializarlas en un formato binario compacto.
Grupos de esquemas
Los grupos de esquemas son grupos lógicos de esquemas similares en función de los criterios empresariales. Un grupo de esquemas contiene
- varias definiciones de esquemas,
- varias versiones de un esquema específico y
- metadatos relacionados con el tipo de esquema y la compatibilidad de todos los esquemas del grupo.
Los grupos de esquemas se pueden considerar como un subconjunto del registro de esquemas, alineados con una aplicación determinada o unidad organizativa, con un modelo de autorización independiente. Este límite de seguridad adicional garantiza que en el modelo de servicios compartidos, los metadatos y los secretos comerciales no se filtren. También permite a los propietarios de aplicaciones administrar esquemas independientes de otras aplicaciones que comparten el mismo espacio de nombres.
Evolución del esquema
Los esquemas deben evolucionar con el requisito empresarial de productores y consumidores. El registro de esquema de Azure admite la evolución del esquema mediante la introducción de modos de compatibilidad a nivel de grupo de esquemas. Al crear un grupo de esquemas, puede especificar el modo de compatibilidad de los esquemas que incluya en ese grupo. Al actualizar un esquema, el cambio debe cumplir con el modo de compatibilidad asignado y, así, solo se crea una nueva versión del esquema.
Nota:
La evolución del esquema solo se admite para el formato de esquema Avro.
El registro de esquema de Azure para Event Hubs admite los siguientes modos de compatibilidad.
compatibilidad con versiones anteriores
El modo de compatibilidad con versiones anteriores permite que el código de consumidor use una nueva versión del esquema, pero se pueden procesar mensajes con una versión anterior del esquema. Cuando se usa el modo de compatibilidad con versiones anteriores en un grupo de esquemas, se permiten los siguientes cambios en un esquema.
- Eliminar campos.
- Agregar campos opcionales.
Compatibilidad con versiones posteriores
La compatibilidad con versiones posteriores permite que el código de consumidor use una versión anterior del esquema, pero puede leer mensajes con el nuevo esquema. El modo de compatibilidad con versiones posteriores permite realizar los siguientes cambios en un esquema.
- Adición de campos
- Eliminar campos opcionales
Sin compatibilidad
Cuando se usa el modo de compatibilidad None
, el registro de esquema no comprueba la compatibilidad al actualizar los esquemas.
SDK de cliente
Puede usar una de las siguientes bibliotecas para incluir un serializador de Avro, que puede usar para serializar y deserializar las cargas que contienen identificadores de esquema del registro de esquema y datos codificados por Avro.
- .NET: Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java: azure-data-schemaregistry-avro
- Python: azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka: ejecute los serializadores y deserializadores de Apache Avro integrados en Kafka con el respaldo del registro de esquema de Azure. El serializador de cliente de Apache Kafka del cliente de Java para el registro de esquema de Azure se puede usar en cualquier escenario de Apache Kafka y con cualquier servicio en la nube o implementación basada en Apache Kafka®.
- CLI de Azure: para ver un ejemplo de cómo agregar un esquema a un grupo de esquemas mediante la CLI, consulte Adición de un esquema a un grupo de esquemas mediante la CLI.
- PowerShell: para ver un ejemplo de cómo agregar un esquema a un grupo de esquemas mediante PowerShell, consulte Adición de un esquema a un grupo de esquemas mediante PowerShell.
Límites
Para conocer los límites (por ejemplo, el número de grupos de esquemas de un espacio de nombres) de Event Hubs, consulte Cuotas y límites de Event Hubs.
Control de acceso basado en rol
Para acceder a un registro de esquema mediante programación, siga estos pasos:
- Registro de la aplicación en Microsoft Entra ID
- Agregue la entidad de seguridad de la aplicación a uno de los siguientes roles de Azure RBAC (control de acceso basado en rol) en el nivel de espacio de nombres.
Role | Descripción |
---|---|
Propietario | Leer, escribir y eliminar esquemas y grupos de registros de esquema. |
Colaborador | Leer, escribir y eliminar esquemas y grupos de registros de esquema. |
Lector del registro de esquema | Leer y enumerar grupos y esquemas del registro de esquemas. |
Colaborador del registro de esquema | Leer, escribir y eliminar esquemas y grupos de registros de esquema. |
Para obtener instrucciones sobre cómo crear el registro de una aplicación mediante Azure Portal, consulte Registro de una aplicación con Microsoft Entra ID. Anote el id. de cliente (id. de aplicación), el id de inquilino y el secreto que se usarán en el código.
Pasos siguientes
- Para información sobre cómo crear un registro de esquema mediante Azure Portal, vea Creación de un registro de esquema de Event Hubs con Azure Portal.
- Vea los siguientes ejemplos de la biblioteca de cliente Avro del registro de esquema.