Registro de esquema nos Hubs de Eventos do Azure
O Registro de Esquema é crucial em fluxos de trabalho de acoplamento flexível e streaming de eventos para manter a consistência dos dados, simplificar a evolução do esquema, melhorar a interoperabilidade e reduzir o esforço de desenvolvimento. Ele garante processamento e governança de dados altamente confiáveis com pouca sobrecarga operacional em grandes organizações distribuídas com um repositório centralizado para esquemas.
O Registro de Esquema nos Hubs de Eventos do Azure cumpre várias funções em cenários de streaming de eventos controlados por esquema -
- Fornece um repositório onde vários esquemas podem ser registrados, gerenciados e evoluídos.
- Evolução do esquema gerenciado com várias regras de compatibilidade.
- Executa a validação de dados para todos os dados esquematizados.
- Fornece bibliotecas do lado do cliente (serializadores e desserializadores) para produtores e consumidores.
- Melhora a eficiência da taxa de transferência da rede passando a ID do esquema em vez da definição do esquema para cada carga útil.
Nota
O Registro de Esquema é suportado nas camadas Standard, Premium e Dedicada.
Componentes do Registro de Esquema
O Registro de Esquema vive no contexto do namespace Hubs de Eventos, mas pode ser usado com todo o serviço de mensagens do Azure ou outro agente de mensagens ou eventos. Ele compreende vários grupos de esquemas que atuam como um agrupamento lógico de esquemas e podem ser gerenciados independentemente de outros grupos de esquemas.
Esquemas
Em qualquer sistema de acoplamento flexível, há vários aplicativos se comunicando entre si, principalmente por meio de dados. Os esquemas funcionam como uma forma declarativa de definir a estrutura dos dados para que o contrato entre essas aplicações de produtor e consumidor seja bem definido, garantindo um processamento confiável em escala.
Uma definição de esquema inclui -
- Campos - nome dos elementos de dados individuais (ou seja, nome/sobrenome, título do livro, endereço).
- Tipos de dados - o tipo de dados que podem ser armazenados em cada campo (por exemplo, cadeia de caracteres, data-hora, matriz).
- Estrutura - a organização dos diferentes campos (isto é, estruturas aninhadas ou matrizes).
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.
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:
Protobuf
Os buffers de protocolo são um mecanismo extensível e neutro em termos de linguagem para serialização de dados estruturados . Ele é usado para definir eficientemente estruturas de dados e serializá-las em um formato binário compacto.
Grupos de esquemas
Os grupos de esquemas são grupos lógicos de esquemas semelhantes com base em seus critérios de negócios. Um grupo de esquema mantém
- definição de esquema múltiplo,
- várias versões de um esquema específico, e
- metadados relativos ao tipo de esquema e compatibilidade para todos os esquemas no grupo.
Um grupo de esquema pode ser pensado como um subconjunto do registro de esquema, alinhado com um aplicativo ou unidade organizacional específica, com um modelo de autorização separado. Esse limite de segurança extra garante que, no modelo de serviços compartilhados, metadados e segredos comerciais não sejam vazados. Ele também permite que os proprietários de aplicativos gerenciem esquemas independentes de outros aplicativos que compartilham o mesmo namespace.
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 do Azure RBAC (controle de acesso baseado em função) no nível do 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.