Comparar
JSON Lines vs Avro
JSON Lines guarda um valor JSON por linha UTF-8 para processamento registro a registro. Avro codifica registros tipados com um esquema escritor e pode armazenar metadados do esquema nos blocos.
Qual formato você deve escolher?
Use JSON Lines para eventos legíveis, ferramentas de texto e fluxo por linha. Considere Avro para registros tipados e resolução de esquemas em pipelines gerenciados.
Indicado para JSON Lines
Logs e registros processados linha a linha · Troca contínua de registros JSON
- Ler e gravar registros aos poucos
- Acrescentar ou combinar dados de texto com ferramentas comuns
Indicado para Avro
Trocar registros com esquema definido
- Eventos e pipelines com versões de esquema
Informações básicas
| Campo | JSON Lines | Avro |
|---|---|---|
| Extensão | .jsonl, .ndjson | .avro |
| Tipo MIME | application/jsonl | application/avro |
| Usos comuns | Logs e registros processados linha a linha · Troca contínua de registros JSON | Trocar registros com esquema definido |
| Como abrir | Abra em um editor de texto ou ferramenta compatível com JSON Lines. Validar cada linha como JSON facilita encontrar o registro com erro de sintaxe. | Use ferramenta Avro para conferir esquema, campos, tipos e registros. |
| Exportar ou converter | Para criar um array JSON, reúna as linhas como elementos do array. Para converter um array em JSON Lines, grave cada valor em uma linha. Em arquivos grandes, considere o uso de memória. | Ao converter para JSON ou Parquet, confira nomes, tipos, nulos, tipos lógicos, quantidade de registros e compatibilidade. |
Escolha por finalidade
Ler e gravar registros aos poucos
Logs e registros processados linha a linha · Troca contínua de registros JSON
JSON LinesAcrescentar ou combinar dados de texto com ferramentas comuns
Logs e registros processados linha a linha · Troca contínua de registros JSON
JSON LinesEventos e pipelines com versões de esquema
Trocar registros com esquema definido
AvroPonto principal 1
Um leitor de JSON Lines analisa cada valor JSON sem esquema separado; um leitor binário Avro precisa do esquema escritor.
Mais sobre as diferençasPonto principal 2
Acrescentar linhas JSON completas é uma operação de texto; o gravador Avro deve manter válidos os blocos e marcadores de sincronização.
Mais sobre as diferençasMais sobre as diferenças
Meça seus dados e leitores; nenhum formato é sempre menor ou mais rápido.
- JSON Lines tem valores JSON independentes por linha; registros Avro seguem um esquema declarado.
- Arquivos contêiner Avro armazenam o esquema escritor junto aos blocos; JSON Lines é texto UTF-8.
- Leitores podem resolver mudanças compatíveis de esquema Avro; JSON Lines deixa campos e tipos a cargo da aplicação.
Perguntas frequentes
JSON Lines é igual à codificação JSON do Avro?
Não. JSON Lines separa valores JSON comuns por linha. A codificação JSON do Avro ainda segue seu esquema e suas regras de união.