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
| Campo | Avro | JSON |
|---|---|---|
| Extensión | .avro | .json |
| Tipo MIME | application/avro | application/json |
| Usos habituales | Intercambiar registros con esquema definido | API web, archivos de configuración e intercambio de datos |
| Cómo abrir | Use una herramienta Avro para examinar esquema, campos, tipos y registros. | Ábralo en un editor de texto, IDE o visor compatible con JSON. |
| Exportar o convertir | Al 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
AvroTransferir datos estructurados
API web, archivos de configuración e intercambio de datos
JSONPunto 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 diferenciasPunto 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 diferenciasMá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.