Registro de esquema nos Hubs de Eventos do Azure
O Registro de Esquema nos Hubs de Eventos do Azure fornece um repositório para usar e gerenciar esquemas em cenários de streaming de eventos controlados por esquema.
Componentes do Registro de Esquema
Um namespace de Hubs de Eventos pode hospedar grupos de esquema ao lado de hubs de eventos (ou tópicos Kafka). Ele hospeda um registro de esquema e pode ter vários grupos de esquema. Apesar de estar hospedado nos Hubs de Eventos do Azure, o registro de esquema pode ser usado universalmente com todos os serviços de mensagens do Azure e qualquer outro agente de mensagens ou eventos. Cada um desses grupos de esquemas é um repositório separadamente protegível para um conjunto de esquemas. Os grupos podem ser alinhados com um aplicativo específico ou uma unidade organizacional.
Grupos de esquemas
O grupo de esquemas é um grupo lógico de esquemas semelhantes com base em seus critérios de negócios. Um grupo de esquemas pode conter várias versões de um esquema. A configuração de imposição de compatibilidade em um grupo de esquemas pode ajudar a garantir que as versões mais recentes do esquema sejam compatíveis com versões anteriores.
O limite de segurança imposto pelo mecanismo de agrupamento ajuda a garantir que os segredos comerciais não vazem inadvertidamente através de metadados em situações em que o namespace é compartilhado entre vários parceiros. Ele também permite que os proprietários de aplicativos gerenciem esquemas independentes de outros aplicativos que compartilham o mesmo namespace.
Esquemas
Os esquemas definem o contrato entre produtores e consumidores. Um esquema definido em um registro de esquema de Hubs de Eventos ajuda a gerenciar o contrato fora dos dados de eventos, removendo assim a sobrecarga de carga útil. Um esquema tem um nome, tipo (exemplo: registro, matriz e assim por diante.), modo de compatibilidade (nenhum, avançar, retroceder, completo) e tipo de serialização (apenas Avro por enquanto). Você pode criar várias versões de um esquema e recuperar e usar uma versão específica de um esquema.
Formatos de esquema
Os formatos de esquema são usados para determinar a maneira como um esquema é estruturado e definido, com cada formato delineando diretrizes e sintaxe específicas para definir a estrutura dos eventos que serão usados para streaming de eventos.
Esquema Avro
Avro é um sistema de serialização de dados popular que usa um formato binário compacto e fornece recursos de evolução de esquema.
Para saber mais sobre como usar o formato de esquema Avro com o Registro de Esquema de Hubs de Eventos, consulte:
- Como usar o registro de esquema com Kafka e Avro
- Como usar o registro de esquema com Hubs de Eventos, .NET, SDK (AMQP) e Avro.
Esquema JSON
JSON Schema é uma maneira padronizada de definir a estrutura e os tipos de dados dos eventos. O esquema JSON permite o uso confiável e confiável do formato de dados JSON no streaming de eventos.
Para saber mais sobre como usar o formato de esquema JSON com o Registro de Esquema de Hubs de Eventos, consulte:
Evolução do esquema
Os esquemas precisam evoluir com a exigência comercial de produtores e consumidores. O Registro de Esquema do Azure dá suporte à evolução do esquema introduzindo modos de compatibilidade no nível do grupo de esquemas. Ao criar um grupo de esquemas, você pode especificar o modo de compatibilidade dos esquemas incluídos nesse grupo de esquemas. Quando você atualiza um esquema, a alteração deve estar em conformidade com o modo de compatibilidade atribuído e, em seguida, somente ele cria uma nova versão do esquema.
Nota
A evolução do esquema só é suportada apenas para o formato de esquema Avro.
O Registro de Esquema do Azure para Hubs de Eventos oferece suporte aos seguintes modos de compatibilidade.
Compatibilidade com versões anteriores
O modo de compatibilidade com versões anteriores permite que o código do consumidor use uma nova versão do esquema, mas pode processar mensagens com a versão antiga do esquema. Quando você usa o modo de compatibilidade com versões anteriores em um grupo de esquema, ele permite que as seguintes alterações sejam feitas em um esquema.
- Eliminar campos.
- Adicione campos opcionais.
Compatibilidade direta
A compatibilidade de encaminhamento permite que o código do consumidor use uma versão antiga do esquema, mas pode ler mensagens com o novo esquema. O modo de compatibilidade direta permite que as seguintes alterações sejam feitas em um esquema.
- Adicionar campos
- Excluir campos opcionais
Sem compatibilidade
Quando o None
modo de compatibilidade é usado, o registro de esquema não faz nenhuma verificação de compatibilidade quando você atualiza esquemas.
SDKs do Cliente
Você pode usar uma das seguintes bibliotecas para incluir um serializador Avro, que pode ser usado para serializar e desserializar cargas úteis contendo identificadores de esquema do Registro de Esquema e dados codificados em Avro.
- .NET - Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java - azure-data-schemaregistry-avro
- Python - azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka - Execute serializadores e desserializadores Apache Avro integrados ao Kafka apoiados pelo Registro de Esquema do Azure. O serializador de cliente Apache Kafka do cliente Java para o Registro de Esquema do Azure pode ser usado em qualquer cenário Apache Kafka e com qualquer implantação ou serviço de nuvem baseado no Apache Kafka®.
- CLI do Azure - Para obter um exemplo de adição de um esquema a um grupo de esquemas usando a CLI, consulte Adicionando um esquema a um grupo de esquemas usando a CLI.
- PowerShell - Para obter um exemplo de adição de um esquema a um grupo de esquemas usando o PowerShell, consulte Adicionando um esquema a um grupo de esquemas usando o PowerShell.
Limites
Para limites (por exemplo: número de grupos de esquema em um namespace) de Hubs de Eventos, consulte Cotas e limites de Hubs de Eventos.
Controlo de acesso baseado em funções do Azure
Para aceder a um registo de esquema programaticamente, siga estes passos:
- Registe a sua candidatura no Microsoft Entra ID
- Adicione a entidade de segurança do aplicativo a uma das seguintes funções de controle de acesso baseado em função do Azure (Azure RBAC) no nível de namespace .
Função | Description |
---|---|
Proprietário | Leia, escreva e exclua grupos e esquemas do Registro de Esquema. |
Contribuinte | Leia, escreva e exclua grupos e esquemas do Registro de Esquema. |
Leitor de registro de esquema | Leia e liste grupos e esquemas do Registro de Esquema. |
Contribuidor do Registro de Esquema | Leia, escreva e exclua grupos e esquemas do Registro de Esquema. |
Para obter instruções sobre como criar o registro de um aplicativo usando o portal do Azure, consulte Registrar um aplicativo com o Microsoft Entra ID. Anote o ID do cliente (ID do aplicativo), o ID do locatário e o segredo a ser usado no código.
Próximos passos
- Para saber como criar um registro de esquema usando o portal do Azure, consulte Criar um registro de esquema de Hubs de Eventos usando o portal do Azure.
- Consulte os seguintes exemplos de biblioteca de cliente Avro do Registro de Esquema.