Compartilhar 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 de dados, simplificar a evolução do esquema, aprimorar a interoperabilidade e reduzir o esforço de desenvolvimento em fluxos de trabalho flexívelmente acoplados e de 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 atendem a muitas funções em cenários de streaming de eventos controlados por esquema:

  • Forneça um repositório em que vários esquemas podem ser registrados, gerenciados e evoluídos
  • Gerenciar a evolução do esquema com várias regras de compatibilidade
  • Executar a validação de dados para todos os dados esquematizados
  • Fornecer bibliotecas do lado do cliente (serializadores e desserializadores) para produtores e consumidores
  • Melhorar a eficiência de taxa de transferência de rede passando a ID do esquema em vez da definição de esquema para cada conteúdo

Os registros de esquema nos Hubs de Eventos do Azure têm suporte nas camadas Standard, Premium e Dedicado.

Componentes do Registro de Esquema

O registro de esquema faz parte do namespace dos 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 esquema.

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

Esquemas

Em qualquer sistema flexívelmente acoplado, vários aplicativos se comunicam, principalmente por meio de dados. Esquemas definem a estrutura dos dados de forma declarativa. Como resultado, o contrato entre os aplicativos de produtor e consumidor é bem definido, garantindo o 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 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 do evento, 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 popular de serialização de dados 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 do Avro com um registro de esquema dos Hubs de Eventos, consulte:

JSON schema

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 confiante 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 dos Hubs de Eventos, consulte Como usar um registro de esquema com o esquema Kafka e JSON.

Buffers de protocolo

Buffers de Protocolo (Protobuf) são 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.

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 esquemas conté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 esquemas como um subconjunto do registro de esquema que se alinha a um determinado aplicativo ou unidade organizacional, com um modelo de autorização separado. Esse limite de segurança extra ajuda a garantir que os metadados e os 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 o requisito de negócios de produtores e consumidores. O Registro de Esquema 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 que você inclui nele. Quando você atualiza um esquema, a alteração precisa estar em conformidade com o modo de compatibilidade atribuído para que ele possa criar uma nova versão do esquema.

A evolução do esquema tem suporte apenas para o formato de esquema do Avro.

Há suporte para o Registro de Esquema 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 com encaminhamento

A compatibilidade de encaminhamento permite que o código do consumidor use uma versão de esquema antiga e leia 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

Sem compatibilidade

Quando o modo de compatibilidade None é 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. Você pode usar serializadores do Avro para serializar e desserializar cargas que contêm identificadores de esquema para o registro de esquema e dados codificados em Avro:

Linguagem de programação . Amostras
.NET Microsoft.Azure.Data.SchemaRegistry.ApacheAvro Exemplos do .NET
Java azure-data-schemaregistry-avro Exemplos do Java
Python azure-schemaregistry-avroserializer Exemplos em Python
JavaScript @azure/schema-registry-avro Exemplos do NodeJS

Além disso, as bibliotecas abaixo também estão disponíveis com base em suas cargas de trabalho.

limites

Para obter limites (como o número de esquemas que você pode usar em um namespace) dos Hubs de Eventos, consulte cotas e limites dos Hubs de Eventos.

Controle de acesso baseado em função do Azure

Para acessar um registro de esquema de forma programática, siga estas etapas:

  1. Registre seu aplicativo na Microsoft Entra ID.
  2. 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 esquemas e grupos de registros de esquema
Colaborador Ler, gravar e excluir esquemas e grupos de registros de esquema
Leitor do Registro de Esquema Ler e listar esquemas e grupos de registros de esquema
Colaborador do Registro de Esquema Ler, gravar e excluir esquemas e grupos de registros de esquema

Para saber como criar e registrar um aplicativo usando o portal do Azure, consulte Registrar um aplicativo com a Microsoft Entra ID. Você precisa da ID do cliente (ID do aplicativo), da ID do locatário e do segredo a ser usado no código.