Um esquema do Pub/Sub é um recurso opcional que pode ser usado para aplicar o formato do campo data em uma mensagem do Pub/Sub.
Um esquema cria um contrato entre o editor e o assinante sobre o formato das mensagens. O Pub/Sub aplica esse formato. Os esquemas facilitam o consumo entre equipes nos fluxos de dados da organização, criando uma autoridade central para tipos de mensagens e permissões. Um esquema de mensagem do Pub/Sub define os nomes e os tipos de dados dos campos em uma mensagem.
É possível criar um esquema e associá-lo a um tópico para aplicar o esquema para mensagens publicadas. Se uma mensagem específica não estiver em conformidade com o esquema, ela não será publicada. Também é possível criar revisões adicionais de um esquema.
Tipos de esquemas
É possível criar um esquema no Pub/Sub usando um dos as seguintes estruturas:
Por exemplo, o esquema a seguir define o inventário de um depósito, primeiro no formato Avro e depois no formato Protocol Buffer.
Formato Apache Avro
{
"type" : "record",
"name" : "Avro",
"fields" : [
{
"name" : "ProductName",
"type" : "string",
"default": ""
},
{
"name" : "SKU",
"type" : "int",
"default": 0
},
{
"name" : "InStock",
"type" : "boolean",
"default": false
}
]
}
Formato de buffer de protocolo
syntax = "proto3";
message ProtocolBuffer {
string product_name = 1;
int32 SKU = 2;
bool in_stock = 3;
}
Informações importantes sobre esquemas
Confira a seguir algumas informações importantes sobre a criação e o gerenciamento de esquemas do Pub/Sub.
Para que um esquema funcione com o Pub/Sub, você precisa definir apenas um tipo de nível superior. Instruções de importação que fazem referência a outros tipos não são compatíveis.
É possível associar o mesmo esquema a vários tópicos.
É possível testar manualmente se uma mensagem é validada em relação a um esquema.
Cotas e limites para esquemas
Os esquemas têm os seguintes limites:
O campo de definição do esquema não pode exceder 300 KB.
Um projeto pode ter no máximo 10.000 esquemas.
Um único esquema não pode ter mais de 20 revisões.
Para informações sobre esquemas e limites relacionados ao Pub/Sub, consulte Cotas e limites do Pub/Sub.