JSON → Apache Avro (.avsc)
Apache Avro & Confluent Schema Registry

JSON to Apache Avro Schema (.avsc) Converter

Converta payloads JSON em esquemas Apache Avro (.avsc) para produção com namespaces personalizados, tipos primitivos e lógicos, campos union anuláveis e regras de compatibilidade.

100% Privacidade no cliente
Zero Server Upload
Predefinições:
Avro Compiler Options & Schema Registry Settings
OrderFulfillmentEvent•smart
Campos
Entrada21 fields
{
"type": "record",
"name": "OrderFulfillmentEvent",
"namespace": "com.ecommerce.events.orders",
"doc": "Standard Avro event schema compiled from JSON payload for OrderFulfillmentEvent",
"fields": [
{
"name": "eventId",
"type": {
"type": "string",
"logicalType": "uuid"
},
"doc": "Standard UUID identifier for eventId",
"default": "00000000-0000-0000-0000-000000000000"
},
{
"name": "orderNumber",
"type": "string",
"doc": "Text string for orderNumber",
"default": ""
},
{
"name": "eventType",
"type": "string",
"doc": "Text string for eventType",
"default": ""
},
{
"name": "occurredAt",
"type": {
"type": "long",
"logicalType": "timestamp-millis"
},
"doc": "UTC timestamp (milliseconds since epoch) for occurredAt",
"default": 0
},
{
"name": "customer",
"type": {
"type": "map",
"values": "string"
},
"doc": "Associative string-keyed map for customer",
"default": {}
},
{
"name": "shippingAddress",
"type": {
"type": "map",
"values": "string"
},
"doc": "Associative string-keyed map for shippingAddress",
"default": {}
},
{
"name": "lineItems",
"type": {
"type": "array",
"items": {
"type": "record",
"name": "LineItemsItem",
"namespace": "com.ecommerce.events.orders",
"doc": "Standard Avro event schema compiled from JSON payload for LineItemsItem",
"fields": [
{
"name": "sku",
"type": "string",
"doc": "Text string for sku",
"default": ""
},
{
"name": "productName",
"type": "string",
"doc": "Text string for productName",
"default": ""
},
{
"name": "quantity",
"type": "int",
"doc": "Numeric value (int) for quantity",
"default": 0
},
{
"name": "unitPrice",
"type": "double",
"doc": "Numeric value (double) for unitPrice",
"default": 0
},
{
"name": "currency",
"type": "string",
"doc": "Text string for currency",
"default": ""
},
{
"name": "isTaxExempt",
"type": "boolean",
"doc": "Boolean flag for isTaxExempt",
"default": false
}
]
}
},
"doc": "List of LineItemsItem records for lineItems",
"default": []
},
{
"name": "subtotal",
"type": "double",
"doc": "Numeric value (double) for subtotal",
"default": 0
},
{
"name": "taxAmount",
"type": "double",
"doc": "Numeric value (double) for taxAmount",
"default": 0
},
{
"name": "shippingFee",
"type": "int",
"doc": "Numeric value (int) for shippingFee",
"default": 0
},
{
"name": "grandTotal",
"type": "double",
"doc": "Numeric value (double) for grandTotal",
"default": 0
},
{
"name": "currency",
"type": "string",
"doc": "Text string for currency",
"default": ""
},
{
"name": "couponCode",
"type": [
"null",
"string"
],
"doc": "Nullable string field for couponCode",
"default": null
},
{
"name": "payment",
"type": {
"type": "map",
"values": "string"
},
"doc": "Associative string-keyed map for payment",
"default": {}
},
{
"name": "notes",
"type": "string",
"doc": "Text string for notes",
"default": ""
}
]
}
Campos21 campos (1 nullable)
Hierarchy & Max DepthNível 1 (1 registros)
Logical Types & Compatibility2 tipos lógicos • BACKWARD

Execução Local Zero-Knowledge

Todo o processamento, análise e geração de código ocorrem estritamente na memória do seu navegador. Zero uploads para servidores externos.

Motor Reativo de Submilissegundos

All data payloads remain strictly local with zero external server communication.

Production Ready Export

Clean, optimized output formats ready for immediate deployment.

Referência técnica e guia de arquitetura

Guia do Desenvolvedor do Conversor de JSON para Esquema Apache Avro (.avsc) — Guia de referência

Converta payloads JSON em esquemas Apache Avro (.avsc) para produção com namespaces personalizados, tipos primitivos e lógicos, campos union anuláveis e regras de compatibilidade.

Parâmetros principais e controles

recordNamestring

Identificador do registro principal no esquema Avro gerado. Deve seguir as convenções de nomenclatura do Avro (iniciar com [A-Za-z_] e conter apenas caracteres alfanuméricos ou sublinhados).

Padrão: AutoRecord
namespacestring

Namespace de pacote ou domínio (ex.: com.company.events) que define o escopo do registro e evita conflitos no Schema Registry.

Padrão: com.example.avro
nullabilityModestring

Determina o mapeamento de campos opcionais ou com valor nulo. 'union_null_first' gera ["null", tipo] com default: null para garantir compatibilidade retroativa.

Padrão: union_null_first
inferLogicalTypesboolean

Ativa a detecção automática de timestamps ISO 8601, UUIDs e números de ponto flutuante de alta precisão, aplicando anotações logicalType do Avro (ex.: timestamp-millis, uuid).

Padrão: true

Dicas profissionais e melhores práticas

Ordem de ramos em uniões Avro

De acordo com a especificação do Apache Avro 1.x, o valor default deve coincidir com o primeiro ramo da união. Para "default": null, defina o tipo como ["null", "string"] e nunca como ["string", "null"].

Valores padrão para evolução

Ao registrar novas versões de esquemas no Confluent Schema Registry ou Apicurio, sempre atribua um valor default aos novos campos para manter a compatibilidade BACKWARD e FULL com os consumidores.

Tipar inteiros como long

Valores numéricos inteiros no JSON que excedam 2^31 - 1 (como timestamps em milissegundos ou IDs de banco de dados) devem ser tipados como 'long' para evitar estouro de representação binária.

Problemas comuns e solução de problemas

org.apache.avro.AvroTypeException: Default value for field does not match union branch 0

Reordene o array da união para que o tipo correspondente ao valor padrão seja o primeiro elemento. No caso de "default": null, inicie com "null", como em ["null", "string"].

Confluent Schema Registry acusa SchemaIncompatibleException ao adicionar novos campos

Adicione uma propriedade "default" explícita (como null, string vazia "" ou false) a qualquer novo campo introduzido no arquivo .avsc.

Perguntas frequentes (FAQ)

O que é um arquivo de esquema .avsc do Apache Avro?▼

Um arquivo .avsc é uma definição em formato JSON de um esquema Apache Avro. Ele especifica registros, namespaces, tipos de campos e valores padrão usados para serialização binária eficiente em pipelines como Kafka, Spark e Hadoop.

Como objetos aninhados e arrays JSON são mapeados no Avro?▼

Objetos JSON aninhados tornam-se sub-registros Avro com seus próprios atributos 'name', 'type': 'record' e 'fields'. Arrays JSON são mapeados para o tipo 'array' com a propriedade 'items' informando o tipo de cada elemento.

Por que o formato binário do Avro é preferido em vez de JSON puro em mensageria?▼

O Avro serializa mensagens em binário compacto sem replicar os nomes dos campos a cada evento. O esquema fica armazenado centralmente no Schema Registry, economizando largura de banda e viabilizando contratos de dados rígidos.

O que são tipos lógicos (Logical Types) no Avro?▼

Tipos lógicos conferem semântica a tipos primitivos. Ao habilitar inferLogicalTypes, campos de data e hora são convertidos para 'long' com o logicalType 'timestamp-millis', e strings UUID para 'string' com logicalType 'uuid'.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador de Esquemas de Validação Zod a partir de GraphQL SDLDesenvolvimento

Converta tipos, consultas e entradas GraphQL SDL em esquemas de validação Zod para tempo de execução (z.object, z.string, z.array) com gestão precisa de nulabilidade.

Abrir ferramenta→
Guia do Desenvolvedor do Conversor de GraphQL SDL para Tipos e Interfaces TypeScriptDesenvolvimento

Converta definições GraphQL SDL, tipos, inputs e enums diretamente em interfaces e tipos TypeScript limpos e sem dependências no navegador.

Abrir ferramenta→
K8S Configmap Secret Generator Referência para DesenvolvedoresDesenvolvimento

Utilitário de desenvolvimento para geração de manifestos Kubernetes ConfigMap e Secret com codificação Base64, stringData, TLS, autenticação Docker e flags de recursos imutáveis.

Abrir ferramenta→
Guia do Desenvolvedor do Gerador de HorizontalPodAutoscaler (HPA v2) do KubernetesDesenvolvimento

Crie manifestos YAML de HPA v2 com metas de utilização de CPU e memória, métricas personalizadas e políticas de estabilização de escala vertical e horizontal.

Abrir ferramenta→
Gerador e Otimizador de Configuração de Produção Redis (redis.conf)Desenvolvimento

Gere arquivos redis.conf ajustados para produção com políticas maxmemory, persistência RDB/AOF, vinculação de rede restrita e autenticação ACL robusta.

Abrir ferramenta→
Guia do Desenvolvedor: Otimizador e Gerador de Hardware para PostgreSQL (postgresql.conf)Desenvolvimento

Calcule e gere configurações otimizadas do postgresql.conf com base no hardware disponível (shared_buffers, work_mem, effective_cache_size, max_connections).

Abrir ferramenta→