Registro de esquema en Azure Event Hubs
El registro de esquema de Azure Event Hubs proporciona un repositorio para usar y administrar esquemas en escenarios de streaming de eventos controlados por esquemas.
Componentes del registro de esquema
Un espacio de nombres de Event Hubs puede hospedar grupos de esquemas junto con centros de eventos (o temas de Kafka). Hospeda un registro de esquema y puede tener varios grupos de esquemas. A pesar de estar hospedado en Azure Event Hubs, el registro de esquema se puede usar universalmente con todos los servicios de mensajería de Azure y cualquier otro agente de mensajes o eventos. Cada uno de estos grupos de esquemas es un repositorio protegible de forma independiente para un conjunto de esquemas. Los grupos se pueden alinear con una aplicación determinada o una unidad organizativa.
Grupos de esquemas
El grupo de esquemas es un grupo lógico de esquemas similares basados en los criterios empresariales. Un grupo de esquemas puede contener varias versiones de un esquema. La configuración del cumplimiento de compatibilidad de un grupo de esquemas puede ayudar a garantizar que las versiones del esquema más recientes sean compatibles con versiones anteriores.
El límite de seguridad impuesto por el mecanismo de agrupación ayuda a garantizar que los secretos comerciales no se filtran accidentalmente a través de los metadatos en situaciones en las que el espacio de nombres se comparte entre varios asociados. También permite a los propietarios de aplicaciones administrar esquemas independientes de otras aplicaciones que comparten el mismo espacio de nombres.
Esquemas
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. Un esquema tiene un nombre, un tipo (por ejemplo, registro, matriz, etc.), el modo de compatibilidad (ninguna, con versiones anteriores o posteriores, completa) y el tipo de serialización (solo Avro por ahora). Puede crear varias versiones de un esquema y recuperar y usar una versión específica de un esquema.
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:
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 control de acceso basado en rol de Azure (RBAC de Azure) 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.