Format Atlas

Comparar

JSON Lines vs Avro

JSON Lines guarda un valor JSON por línea UTF-8 para procesarlo registro a registro. Avro codifica registros tipados con un esquema escritor y puede guardar metadatos del esquema con bloques de datos.

¿Qué formato deberías elegir?

Use JSON Lines para eventos legibles, herramientas de texto y flujos por líneas. Considere Avro para registros tipados y resolución de esquemas en flujos de datos.

Adecuado para JSON Lines

Registros y logs procesados línea a línea · Intercambio progresivo de registros JSON

  • Leer y escribir registros de forma incremental
  • Añadir o combinar datos de texto con herramientas comunes

Adecuado para Avro

Intercambiar registros con esquema definido

  • Eventos y flujos con versiones de esquema

Información básica

CampoJSON LinesAvro
Extensión.jsonl, .ndjson.avro
Tipo MIMEapplication/jsonlapplication/avro
Usos habitualesRegistros y logs procesados línea a línea · Intercambio progresivo de registros JSONIntercambiar registros con esquema definido
Cómo abrirAbre el archivo con un editor de texto o una herramienta compatible con JSON Lines. Validar cada línea como JSON facilita localizar el registro con errores de sintaxis.Use una herramienta Avro para examinar esquema, campos, tipos y registros.
Exportar o convertirPara crear un array JSON, agrupa las líneas como elementos del array. Para pasar de un array a JSON Lines, escribe cada valor en una línea. En archivos grandes, ten en cuenta la memoria necesaria.Al convertir a JSON o Parquet, compruebe nombres, tipos, nulos, tipos lógicos, número de registros y compatibilidad.

Elegir según el uso

Leer y escribir registros de forma incremental

Registros y logs procesados línea a línea · Intercambio progresivo de registros JSON

JSON Lines

Añadir o combinar datos de texto con herramientas comunes

Registros y logs procesados línea a línea · Intercambio progresivo de registros JSON

JSON Lines

Eventos y flujos con versiones de esquema

Intercambiar registros con esquema definido

Avro

Punto clave 1

Un lector de JSON Lines puede analizar cada valor JSON sin un esquema aparte; un lector binario Avro necesita el esquema escritor.

Más sobre las diferencias

Punto clave 2

Añadir líneas JSON completas es una operación de texto; un escritor Avro debe conservar bloques y marcadores de sincronización válidos.

Más sobre las diferencias

Más sobre las diferencias

Mida sus datos y lectores; ningún formato es siempre más pequeño o rápido.

  • JSON Lines contiene valores JSON independientes por línea; los registros Avro siguen un esquema declarado.
  • Los contenedores Avro guardan el esquema escritor junto a bloques; JSON Lines es texto UTF-8.
  • Los lectores pueden resolver cambios compatibles entre esquemas Avro; JSON Lines deja las convenciones de campos y tipos a la aplicación.

Preguntas frecuentes

¿JSON Lines es igual a la codificación JSON de Avro?

No. JSON Lines separa valores JSON normales por líneas. La codificación JSON de Avro sigue las reglas de esquema y uniones de Avro.

Más información

Referencias y especificaciones