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
| Campo | Avro | JSON |
|---|---|---|
| Extensão | .avro | .json |
| Tipo MIME | application/avro | application/json |
| Usos comuns | Trocar registros com esquema definido | APIs web, arquivos de configuração e troca de dados |
| Como abrir | Use ferramenta Avro para conferir esquema, campos, tipos e registros. | Abra em um editor de texto, IDE ou visualizador compatível com JSON. |
| Exportar ou converter | Ao 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
AvroTransferir dados estruturados
APIs web, arquivos de configuração e troca de dados
JSONPonto 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çasPonto 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çasMais 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.