Partilhar via


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.

Diagrama que mostra os componentes de um registro de esquema nos Hubs de Eventos do Azure.

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:

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.

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:

  1. Registe a sua aplicação no Microsoft Entra ID.
  2. 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.