Registro de esquema en Azure Event Hubs
El Registro de esquemas de Azure Event Hubs tiene muchas ventajas. El Registro de esquemas ayuda a mantener la coherencia de los datos, simplificar la evolución del esquema, mejorar la interoperabilidad y reducir el esfuerzo de desarrollo en flujos de trabajo de streaming de eventos y acoplados de forma flexible. Las organizaciones distribuidas de gran tamaño que emplean un repositorio centralizado para esquemas pueden usar el Registro de esquemas para lograr un procesamiento y gobernanza de datos altamente confiables con poca sobrecarga operativa.
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
- Administración de la evolución del esquema con varias reglas de compatibilidad
- Realizar la validación de datos para todos los datos esquematizados
- Proporcionar bibliotecas del lado cliente (serializadores y deserializadores) para productores y consumidores
- Mejorar la eficacia del rendimiento de la red pasando el identificador de esquema en lugar de la definición de esquema para cada carga
Los registros de esquema de Azure Event Hubs se admiten en los niveles Estándar, Premium y Dedicado.
Componentes del registro de esquema
El registro de esquema forma parte del espacio de nombres de Event Hubs, pero también se puede usar con otros agentes de eventos o mensajes, incluidos los servicios de mensajería de Azure. 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, varias aplicaciones se comunican, principalmente a través de datos. Los esquemas definen la estructura de los datos de forma declarativa. Como resultado, el contrato entre las aplicaciones de productor y consumidor está bien definido, lo que garantiza un procesamiento confiable a escala.
Una definición de esquema incluye:
- Campos: elementos de datos individuales, como el nombre, el título del libro o la dirección.
- Tipos de datos: tipo de datos que se pueden almacenar, como cadena, fecha y hora o matriz.
- Estructura: cómo se organizan los campos, como 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. Cada formato describe directrices y sintaxis específicas para definir la estructura de los eventos que se usan para el streaming de eventos.
Esquema de Avro
Apache 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 JSON
Un esquema JSON (notación de objetos JavaScript) es una manera estandarizada de definir la estructura y los tipos de datos de los eventos. Un esquema JSON permite el uso seguro y confiable del formato de datos JSON en el streaming de eventos.
Para más información sobre el uso del formato de esquema JSON con un registro de esquemas de Event Hubs, consulte Uso de un registro de esquema con Kafka y el esquema JSON.
Búferes de protocolo
Búferes de protocolo (Protobuf) 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 que se organizan según los criterios empresariales. Un grupo de esquemas contiene:
- Varias definiciones de esquemas.
- Varias versiones de un esquema específico.
- 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 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.
La evolución del esquema solo se admite para el formato de esquema Avro.
El Registro de esquemas se admite en 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. El modo de compatibilidad con versiones posteriores permite realizar los siguientes cambios en un esquema:
- Eliminación de 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 y lea 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 Avro. Puede usar serializadores avro para serializar y deserializar cargas que contienen identificadores de esquema para el registro de esquema y datos codificados en Avro:
Lenguaje de programación | SDK | Ejemplos |
---|---|---|
.NET | Microsoft.Azure.Data.SchemaRegistry.ApacheAvro | Ejemplos de .NET |
Java | azure-data-schemaregistry-avro | Ejemplos de Java |
Python | azure-schemaregistry-avroserializer | Ejemplos de Python |
JavaScript | @azure/schema-registry-avro | Ejemplos de NodeJS |
Además, las bibliotecas siguientes también están disponibles en función de las cargas de trabajo.
- Apache Kafka: ejecute los serializadores y deserializadores de Avro integrado en Kafka integrados en Kafka con el respaldo del registro de esquema. El serializador de cliente de Apache Kafka del cliente de Java para el registro de esquema 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 de Azure, consulte Adición de un esquema a un grupo de esquemas mediante la CLI de Azure.
- 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 (como el número de esquemas que puede usar en un espacio de nombres) de Event Hubs, consulte Cuotas y límites de Event Hubs.
Control de acceso basado en rol de Azure
Para acceder a un registro de esquema mediante programación, siga estos pasos:
- Registre 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 (RBAC) de Azure en el nivel de espacio de nombres.
Role | Descripción |
---|---|
Propietario | Leer, escribir y eliminar esquemas y grupos del registro de esquemas |
Colaborador | Leer, escribir y eliminar esquemas y grupos del registro de esquemas |
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 del registro de esquemas |
Para obtener información sobre cómo crear y registrar una aplicación mediante Azure Portal, consulte Registro de una aplicación con Microsoft Entra ID. Necesita el identificador de cliente (id. de aplicación), el identificador de inquilino y el secreto que se va a usar en el código.
Contenido relacionado
- 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.
- Consulte los ejemplos siguientes de la biblioteca cliente Avro del registro de esquema: