Registro de esquema nos Hubs de Eventos do Azure
O Registro de Esquema nos Hubs de Eventos do Azure tem muitos benefícios. O Registro de Esquema ajuda a manter a consistência dos dados, simplificar a evolução do esquema, melhorar a interoperabilidade e reduzir o esforço de desenvolvimento em fluxos de trabalho de acoplamento flexível e streaming de eventos. Grandes organizações distribuídas que empregam um repositório centralizado para esquemas podem usar o Registro de Esquema para obter processamento e governança de dados altamente confiáveis com pouca sobrecarga operacional.
Os registros de esquema nos Hubs de Eventos do Azure cumprem muitas funções em cenários de streaming de eventos controlados por esquema:
- Fornecer um repositório onde vários esquemas podem ser registrados, gerenciados e evoluídos
- Gerencie a evolução do esquema com várias regras de compatibilidade
- Executar validação de dados para todos os dados esquematizados
- Fornecer bibliotecas do lado do cliente (serializadores e desserializadores) para produtores e consumidores
- Melhore a eficiência da taxa de transferência da rede passando o ID do esquema em vez da definição do esquema para cada carga útil
Os registros de esquema nos Hubs de Eventos do Azure têm suporte nas camadas Standard, Premium e Dedicada.
Componentes do Registro de esquema
O registro de esquema faz parte do namespace Hubs de Eventos, mas também pode ser usado com outros agentes de mensagens ou eventos, incluindo serviços de mensagens do Azure. 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, vários aplicativos se comunicam, principalmente por meio de dados. Os esquemas definem a estrutura dos dados de forma declarativa. Como resultado, o contrato entre as aplicações do produtor e do consumidor é bem definido, garantindo um processamento confiável em escala.
Uma definição de esquema inclui:
- Campos: elementos de dados individuais, como nome, título do livro ou endereço.
- Tipos de dados: o tipo de dados que podem ser armazenados, como cadeia de caracteres, data-hora ou matriz.
- Estrutura: Como os campos são organizados, como 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, o que remove a sobrecarga de carga.
Formatos de esquema
Os formatos de esquema são usados para determinar a maneira como um esquema é estruturado e definido. Cada formato descreve diretrizes e sintaxe específicas para definir a estrutura dos eventos que são usados para streaming de eventos.
Esquema Avro
Apache 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 um 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, um SDK (AMQP) e Avro
Esquema do JSON
Um esquema JSON (JavaScript Object Notation) é uma maneira padronizada de definir a estrutura e os tipos de dados dos eventos. Um 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 um registro de esquema de Hubs de Eventos, consulte Como usar um registro de esquema com o esquema Kafka e JSON.
Memória Intermédia do Protocolo
Protocol Buffers (Protobuf) é 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 que são organizados de acordo com seus critérios de negócios. Um grupo de esquema retém:
- Várias definições de esquema.
- Várias versões de um esquema específico.
- Metadados relativos ao tipo de esquema e compatibilidade para todos os esquemas no grupo.
Você pode pensar em um grupo de esquema como um subconjunto do registro de esquema que se alinha com um aplicativo ou unidade organizacional específico, com um modelo de autorização separado. Esse limite de segurança extra ajuda a garantir que metadados e segredos comerciais não sejam vazados no modelo de serviços compartilhados. Ele também permite que os proprietários de aplicativos gerenciem esquemas independentemente 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 suporta a 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 precisa estar em conformidade com o modo de compatibilidade atribuído para que possa criar uma nova versão do esquema.
A evolução do esquema é suportada apenas para o formato de esquema Avro.
O Registro de Esquema é suportado nos 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 de um esquema e processe mensagens com uma versão antiga do esquema. O modo de compatibilidade com versões anteriores permite que as seguintes alterações sejam feitas em um esquema:
- Excluir campos
- Adicionar campos opcionais
Compatibilidade direta
A compatibilidade de encaminhamento permite que o código do consumidor use uma versão antiga do esquema e leia 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 modo de compatibilidade é usado, o None
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. Você pode usar serializadores Avro para serializar e desserializar cargas úteis que contêm identificadores de esquema para o registro de esquema e dados codificados em Avro:
Linguagem de programação | SDK | Exemplos |
---|---|---|
.NET | Microsoft.Azure.Data.SchemaRegistry.ApacheAvro | Exemplos do .NET |
Java | azure-data-schemaregistry-avro | Exemplos do Java |
Python | azure-schemaregistry-avroserializer | Amostras de Python |
JavaScript | @azure/schema-registry-avro | Exemplos de NodeJS |
Além disso, as bibliotecas abaixo também estão disponíveis com base em suas cargas de trabalho.
- Apache Kafka: execute serializadores e desserializadores Avro integrados ao Kafka apoiados pelo Registro de Esquema. O serializador de cliente Apache Kafka do cliente Java para Registro de Esquema pode ser usado em qualquer cenário Apache Kafka e com qualquer implementação baseada em Apache Kafka ou serviço de nuvem.
- CLI do Azure: Para obter um exemplo de adição de um esquema a um grupo de esquemas usando a CLI do Azure, consulte Adicionando um esquema a um grupo de esquemas usando a CLI do Azure.
- 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 (como o número de esquemas que você pode usar 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 aplicação no Microsoft Entra ID.
- Adicione a entidade de segurança do aplicativo a uma das seguintes funções RBAC (controle de acesso baseado em função) do Azure no nível do namespace.
Função | Description |
---|---|
Proprietário | Ler, gravar e excluir grupos e esquemas do Registro de esquema |
Contribuinte | Ler, gravar e excluir grupos e esquemas do Registro de esquema |
Leitor de registro de esquema | Ler e listar esquemas e grupos de registro de esquema |
Contribuidor do Registro de Esquema | Ler, gravar e excluir grupos e esquemas do Registro de esquema |
Para saber como criar e registrar um aplicativo usando o portal do Azure, consulte Registrar um aplicativo com a ID do Microsoft Entra. Você precisa do ID do cliente (ID do aplicativo), o ID do locatário e o segredo para usar no código.
Conteúdos relacionados
- 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 da biblioteca de cliente Avro do Registro de Esquema: