Format Atlas

Comparar

Avro o JSON

Apache Avro es un sistema de serialización basado en esquemas, con codificación binaria compacta y archivos contenedores que incluyen el esquema. JSON es un formato de texto legible para intercambio; Avro también define una codificación JSON.

¿Qué formato deberías elegir?

Considera Avro para registros compactos gobernados por esquema y resolución entre esquemas de escritura y lectura. Elige JSON cuando primen la inspección textual y la interoperabilidad amplia.

Adecuado para Avro

Intercambiar registros con esquema definido

  • Eventos y flujos con versiones de esquema

Adecuado para JSON

API web, archivos de configuración e intercambio de datos

  • Transferir datos estructurados

Información básica

CampoAvroJSON
Extensión.avro.json
Tipo MIMEapplication/avroapplication/json
Usos habitualesIntercambiar registros con esquema definidoAPI web, archivos de configuración e intercambio de datos
Cómo abrirUse una herramienta Avro para examinar esquema, campos, tipos y registros.Ábralo en un editor de texto, IDE o visor compatible con JSON.
Exportar o convertirAl convertir a JSON o Parquet, compruebe nombres, tipos, nulos, tipos lógicos, número de registros y compatibilidad.Las aplicaciones o herramientas de conversión pueden convertirlo a formatos como CSV.

Elegir según el uso

Eventos y flujos con versiones de esquema

Intercambiar registros con esquema definido

Avro

Transferir datos estructurados

API web, archivos de configuración e intercambio de datos

JSON

Punto clave 1

La codificación binaria de Avro sigue un esquema; su archivo contenedor guarda bloques de datos y metadatos del esquema. JSON es texto según RFC 8259, aunque Avro también tiene una codificación JSON distinta.

Más sobre las diferencias

Punto clave 2

Avro necesita el esquema de escritura y puede resolverlo con el de lectura. La sintaxis JSON no exige un esquema de datos, aunque la aplicación puede definirlo aparte.

Más sobre las diferencias

Más sobre las diferencias

Usa Avro si productores y consumidores gestionan un esquema común y convienen registros compactos. Usa JSON para interfaces de texto inspeccionables y herramientas amplias. Especifica la codificación exacta y valida tipos y esquemas al convertir.

  • Avro codifica valores según un esquema; los archivos contenedores incluyen bloques y metadatos de esquema. JSON es una gramática textual. Avro no es solo binario: también especifica codificación JSON.
  • La resolución de esquemas de Avro puede relacionar esquemas de escritura y lectura, según reglas de compatibilidad. Los documentos JSON pueden leerse sin esquema incrustado, por lo que la validación suele depender del contrato de la aplicación.
  • Números, null, arreglos y objetos JSON no corresponden uno a uno con unions, bytes, marcas de tiempo y otros tipos de Avro. Comprueba valores predeterminados, ausencias, precisión numérica, codificación y compatibilidad.

Preguntas frecuentes

¿Avro siempre es binario y JSON texto?

No. Avro suele usar codificación binaria, pero también define una codificación JSON. Identifica la codificación y el contenedor o encuadre de mensajes concretos.

Más información

Referencias y especificaciones