Registro de Esquema nos Hubs de Eventos do Azure
O registro de esquema é crucial em fluxos de trabalho de streaming de eventos e acoplados livremente para manter a consistência de dados, simplificar a evolução do esquema, melhorar a interoperabilidade e reduzir o esforço de desenvolvimento. Ele garante o processamento de dados e a governança 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 atende a várias funções em cenários de streaming de eventos controlados por esquema –
- Fornece um repositório em que vários esquemas podem ser registrados, gerenciados e evoluídos.
- A 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 de rede passando a ID do esquema em vez da definição de esquema para cada carga.
Observação
Há suporte para o registro de esquema nas camadas Standard, Premium e Dedicado.
O registro de esquema reside no contexto do namespace dos Hubs de Eventos, mas pode ser usado com todo o serviço de mensagens do Azure ou outro agente de mensagens ou eventos. Ele é composto por vários grupos de esquemas que atuam como um agrupamento lógico de esquemas e podem ser gerenciados independentemente de outros grupos de esquema.
Em todo sistema acoplado de forma flexível, há vários aplicativos se comunicando entre si, principalmente por meio de dados. Os esquemas atuam como uma maneira declarativa de definir a estrutura dos dados para que o contrato entre esses aplicativos de produtor e consumidor seja bem definido, garantindo o 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 e horário, matriz).
- Estrutura – a organização dos campos diferentes (ou seja, estruturas aninhadas ou matrizes).
Os esquemas definem o contrato entre os produtores e os consumidores. Um esquema definido em um registro de esquema dos Hubs de Eventos ajuda a gerenciar o contrato fora dos dados de evento. Portanto, elimina a sobrecarga de conteúdo.
Os formatos de esquema são usados para determinar a maneira como um esquema é estruturado e definido, com cada formato delineando diretrizes e sintaxes específicas para definir a estrutura dos eventos que serão usados para streaming de eventos.
Avro é um sistema popular de serialização de dados que usa um formato binário compacto e oferece funcionalidades para evolução de esquema.
Para saber mais sobre como usar o formato de esquema Avro com o Registro de Esquema dos Hubs de Eventos, confira:
- Como usar o registro de esquema com Kafka e Avro
- Como usar o registro de esquema com o SDK do .NET (AMQP) e o Avro nos Hubs de Eventos.
O Esquema JSON é uma maneira padronizada de definir a estrutura e os tipos de dados dos eventos. O Esquema JSON permite o uso seguro 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 dos Hubs de Eventos, confira:
Buffers de protocolo é um mecanismo extensível e neutro em linguagem para serializar dados estruturados. Ele é usado para definir estruturas de dados com eficiência e serializá-las em um formato binário compacto.
Os grupos de esquemas são grupos lógicos de esquemas semelhantes baseado nos critérios de negócios. Um grupo de esquemas contém
- várias definições de esquema,
- 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 esquemas pode ser considerado como um subconjunto do registro de esquema, alinhado com um determinado aplicativo ou unidade organizacional, com um modelo de autorização separado. Esse limite de segurança extra garante que, no modelo de serviços compartilhados, os metadados e os segredos comerciais não sejam vazados. Também permite que os proprietários de aplicativo gerenciem os esquemas independentemente de outros aplicativos que compartilham o mesmo namespace.
Os esquemas precisam evoluir com o requisito de negócios 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 esquema. Ao criar um grupo de esquemas, você pode especificar o modo de compatibilidade dos esquemas que você inclui nele. Quando você atualiza um esquema, a alteração deve estar em conformidade com o modo de compatibilidade atribuído e, em seguida, ele cria uma nova versão do esquema.
Observação
A evolução do esquema só é compatível com o formato de esquema Avro.
O Registro de Esquema do Azure para Hubs de Eventos dá suporte aos modos de compatibilidade a seguir.
O modo de compatibilidade com versões anteriores permite que o código do consumidor use uma nova versão do esquema, mas ele pode processar mensagens com uma versão antiga. Quando você usa o modo de compatibilidade com versões anteriores em um grupo de esquema, ele permite que as alterações a seguir sejam feitas em um esquema.
- Excluir campos.
- Adicionar campos opcionais.
A compatibilidade de encaminhamento permite que o código do consumidor use uma versão antiga do esquema, mas ele pode ler mensagens com o novo esquema. O modo de compatibilidade de encaminhamento permite que as seguintes alterações sejam feitas em um esquema.
- Adicionar campos
- Excluir campos opcionais
Quando o modo de compatibilidade None
é usado, o registro de esquema não faz nenhuma verificação de compatibilidade quando você atualiza esquemas.
É possível usar uma das bibliotecas a seguir para incluir um serializador Avro para serializar e desserializar conteúdos com identificadores de esquema do Registro de Esquema e dados codificados no 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 e compatíveis com o 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 cenários do Apache Kafka e com implantações ou serviços de nuvem baseados no Apache Kafka®.
- CLI do Azure – Para obter um exemplo de como adicionar um esquema a um grupo de esquemas usando a CLI, confira Como adicionar um esquema a um grupo de esquemas usando a CLI.
- PowerShell – Para obter um exemplo de como adicionar um esquema a um grupo de esquemas usando o PowerShell, confira Como adicionar um esquema a um grupo de esquemas usando o PowerShell.
Para saber os limites (por exemplo: número de grupos de esquemas em um namespace) do Hubs de Eventos, consulte Cotas e limites do Hubs de Eventos.
Para acessar um registro de esquema de forma programática, siga estas etapas:
- Como registrar seu aplicativo no Microsoft Entra ID
- Adicione a entidade de segurança do aplicativo a uma das seguintes funções de RBAC (controle de acesso baseado em função do Azure) no nível do namespace.
Função | Descrição |
---|---|
Proprietário | Ler, gravar e excluir grupos e esquemas do Registro de Esquema. |
Colaborador | Ler, gravar e excluir grupos e esquemas do Registro de Esquema. |
Leitor do Registro de Esquema | Ler e listar os grupos e os esquemas do Registro de Esquema. |
Colaborador do Registro de Esquema | Ler, gravar e excluir grupos e esquemas do Registro de Esquema. |
Para visualizar instruções sobre como criar o registro de um aplicativo usando o portal do Azure, confira Registrar um aplicativo com o Microsoft Entra ID. Anote a ID do cliente (ID do aplicativo), a ID do locatário e o segredo a ser usado no código.
- Para saber como criar um registro de esquema no portal do Azure, confira Criar um registro de esquema dos Hubs de Eventos no portal do Azure.
- Veja os exemplos de biblioteca de clientes Avro do Registro de Esquema a seguir.