Format Atlas

Comparar

Avro ou JSON

Apache Avro é um sistema de serialização baseado em esquema, com codificação binária compacta e arquivo contêiner que inclui o esquema. JSON é um formato textual legível para intercâmbio; Avro também define uma codificação JSON.

Qual formato você deve escolher?

Considere Avro para registros compactos governados por esquema e resolução entre esquemas de escrita e leitura. Prefira JSON quando inspeção textual e ampla interoperabilidade forem prioritárias.

Indicado para Avro

Trocar registros com esquema definido

  • Eventos e pipelines com versões de esquema

Indicado para JSON

APIs web, arquivos de configuração e troca de dados

  • Transferir dados estruturados

Informações básicas

CampoAvroJSON
Extensão.avro.json
Tipo MIMEapplication/avroapplication/json
Usos comunsTrocar registros com esquema definidoAPIs web, arquivos de configuração e troca de dados
Como abrirUse ferramenta Avro para conferir esquema, campos, tipos e registros.Abra em um editor de texto, IDE ou visualizador compatível com JSON.
Exportar ou converterAo converter para JSON ou Parquet, confira nomes, tipos, nulos, tipos lógicos, quantidade de registros e compatibilidade.Aplicativos ou ferramentas de conversão podem convertê-lo para formatos como CSV.

Escolha por finalidade

Eventos e pipelines com versões de esquema

Trocar registros com esquema definido

Avro

Transferir dados estruturados

APIs web, arquivos de configuração e troca de dados

JSON

Ponto principal 1

A codificação binária do Avro segue um esquema; seu arquivo contêiner armazena blocos de dados e metadados do esquema. JSON é texto definido pela RFC 8259, mas Avro também tem uma codificação JSON distinta.

Mais sobre as diferenças

Ponto principal 2

Avro precisa do esquema de escrita e pode resolvê-lo com o esquema de leitura. A sintaxe JSON não exige um esquema de dados, embora a aplicação possa definir um separadamente.

Mais sobre as diferenças

Mais sobre as diferenças

Use Avro quando produtores e consumidores compartilham um esquema gerenciado e registros compactos são úteis. Use JSON em interfaces textuais inspecionáveis e com ampla variedade de ferramentas. Especifique a codificação e valide tipos e esquemas na conversão.

  • Avro codifica valores conforme um esquema; arquivos contêiner incluem blocos de dados e metadados do esquema. JSON é uma gramática textual. Avro não é apenas binário: também especifica codificação JSON.
  • A resolução de esquema do Avro pode relacionar esquemas de escrita e leitura, conforme regras de compatibilidade. Documentos JSON podem ser consumidos sem esquema incorporado; a validação costuma vir do contrato da aplicação.
  • Números, null, arrays e objetos JSON não correspondem um a um a unions, bytes, timestamps e outros tipos do Avro. Verifique valores padrão, dados ausentes, precisão numérica, codificação e compatibilidade dos esquemas.

Perguntas frequentes

Avro é sempre binário e JSON sempre texto?

Não. Avro costuma usar codificação binária, mas também define codificação JSON. Identifique a codificação e o contêiner ou enquadramento de mensagens usados.

Saiba mais

Referências e especificações