Comparar
Avro o CBOR
Apache Avro codifica registros según un esquema y admite resolución de esquemas de escritura y lectura y archivos contenedores. CBOR es un formato binario general con un modelo de datos que amplía JSON, incluidos bytes y etiquetas.
¿Qué formato deberías elegir?
Considera Avro para esquemas gestionados, registros tipados y evolución de esquemas en canalizaciones de datos. Considera CBOR para valores binarios genéricos, etiquetas y cargas de protocolo definidas por un estándar IETF.
Adecuado para Avro
Intercambiar registros con esquema definido
- Eventos y flujos con versiones de esquema
Adecuado para CBOR
Intercambiar datos estructurados en dispositivos y redes con recursos limitados · Representar datos en COSE y protocolos IoT
- Representar datos similares a JSON en formato binario compacto
- Usar etiquetas estándar o propias de una aplicación para indicar el significado
Información básica
| Campo | Avro | CBOR |
|---|---|---|
| Extensión | .avro | .cbor |
| Tipo MIME | application/avro | application/cbor |
| Usos habituales | Intercambiar registros con esquema definido | Intercambiar datos estructurados en dispositivos y redes con recursos limitados · Representar datos en COSE y protocolos IoT |
| Cómo abrir | Use una herramienta Avro para examinar esquema, campos, tipos y registros. | Léelo con una biblioteca o un decodificador CBOR y consulta su notación de diagnóstico o una vista similar a JSON. Comprueba cómo se muestran los valores sin equivalente directo en JSON, como las etiquetas y las cadenas de bytes. |
| Exportar o convertir | Al convertir a JSON o Parquet, compruebe nombres, tipos, nulos, tipos lógicos, número de registros y compatibilidad. | Al convertir a JSON, las cadenas de bytes y los valores con etiquetas pueden necesitar representaciones propias de la herramienta. Para firmas, hashes o claves de caché, sigue las reglas acordadas por el protocolo, como la codificación determinista de RFC 8949. |
Elegir según el uso
Eventos y flujos con versiones de esquema
Intercambiar registros con esquema definido
AvroRepresentar datos similares a JSON en formato binario compacto
Intercambiar datos estructurados en dispositivos y redes con recursos limitados · Representar datos en COSE y protocolos IoT
CBORUsar etiquetas estándar o propias de una aplicación para indicar el significado
Intercambiar datos estructurados en dispositivos y redes con recursos limitados · Representar datos en COSE y protocolos IoT
CBORPunto clave 1
Avro requiere el esquema de escritura para decodificar; su archivo contenedor puede incluirlo. CBOR codifica elementos tipados como mapas y etiquetas, pero la evolución de esquemas de la aplicación se define aparte.
Más sobre las diferenciasPunto clave 2
Avro define registros, unions, enumeraciones y tipos lógicos mediante esquemas. CBOR define enteros, bytes, arreglos, mapas y etiquetas sin imponer un sistema de esquemas de registros.
Más sobre las diferenciasMás sobre las diferencias
Usa Avro cuando productores y consumidores administran esquemas compatibles y evolución de registros. Usa CBOR cuando un protocolo necesita un modelo binario compacto y general, con bytes o etiquetas. Comprueba distribución de esquemas, codificación determinista y soporte de implementaciones.
- Los datos Avro se interpretan con el esquema de escritura; los contenedores pueden incluirlo. Los elementos CBOR contienen información binaria de tipo, pero no proporcionan contratos de esquema de aplicación automáticamente.
- La resolución de Avro puede conciliar esquemas de escritura y lectura. Las etiquetas CBOR añaden semántica, pero ambas partes deben acordar su significado y tratamiento.
- Las codificaciones no son intercambiables. Al convertir, verifica unions, tipos lógicos, valores predeterminados, datos ausentes, etiquetas CBOR, rangos enteros, bytes, codificación determinista y extensiones desconocidas.
Preguntas frecuentes
¿CBOR puede decodificar Avro sin esquema?
No. Las codificaciones son distintas y Avro necesita su esquema de escritura. La conversión debe mapear explícitamente el esquema y los valores a elementos CBOR.