Comparar
Avro ou CBOR
Apache Avro codifica registros conforme um esquema e oferece resolução entre esquemas de escrita e leitura e arquivos contêiner. CBOR é um formato binário geral com modelo de dados que amplia JSON, incluindo bytes e tags.
Qual formato você deve escolher?
Considere Avro para esquemas gerenciados, registros tipados e evolução de esquema em pipelines. Considere CBOR para valores binários genéricos, tags e mensagens de protocolo definidas por padrão IETF.
Indicado para Avro
Trocar registros com esquema definido
- Eventos e pipelines com versões de esquema
Indicado para CBOR
Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT
- Representar dados semelhantes a JSON em formato binário compacto
- Usar tags padrão ou definidas pela aplicação para indicar significado
Informações básicas
| Campo | Avro | CBOR |
|---|---|---|
| Extensão | .avro | .cbor |
| Tipo MIME | application/avro | application/cbor |
| Usos comuns | Trocar registros com esquema definido | Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT |
| Como abrir | Use ferramenta Avro para conferir esquema, campos, tipos e registros. | Leia com uma biblioteca ou decodificador CBOR e examine a notação de diagnóstico ou uma visualização semelhante a JSON. Confira como aparecem os valores sem equivalente direto em JSON, como tags e sequências de bytes. |
| Exportar ou converter | Ao converter para JSON ou Parquet, confira nomes, tipos, nulos, tipos lógicos, quantidade de registros e compatibilidade. | Na conversão para JSON, sequências de bytes e valores com tags podem exigir representações próprias da ferramenta. Para assinaturas, hashes ou chaves de cache, siga as regras acordadas pelo protocolo, como a codificação determinística da RFC 8949. |
Escolha por finalidade
Eventos e pipelines com versões de esquema
Trocar registros com esquema definido
AvroRepresentar dados semelhantes a JSON em formato binário compacto
Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT
CBORUsar tags padrão ou definidas pela aplicação para indicar significado
Troca de dados estruturados em dispositivos e redes com recursos limitados · Representação de dados em COSE e protocolos de IoT
CBORPonto principal 1
Avro exige o esquema de escrita para decodificar; seu arquivo contêiner pode carregá-lo. CBOR codifica itens tipados como mapas e tags, mas a evolução de esquema da aplicação é definida à parte.
Mais sobre as diferençasPonto principal 2
Avro define registros, unions, enumerações e tipos lógicos por esquemas. CBOR define inteiros, bytes, arrays, mapas e tags sem impor um sistema de esquema para registros.
Mais sobre as diferençasMais sobre as diferenças
Use Avro quando produtores e consumidores gerenciam esquemas compatíveis e evolução de registros. Use CBOR quando o protocolo precisa de um modelo binário geral compacto, com bytes ou tags. Verifique distribuição de esquemas, codificação determinística e suporte das implementações.
- Dados Avro são interpretados pelo esquema de escrita; arquivos contêiner podem incluí-lo. Itens CBOR carregam informação binária de tipo, mas contratos de esquema da aplicação não vêm automaticamente.
- A resolução do Avro pode conciliar esquemas de escrita e leitura. Tags CBOR acrescentam semântica a itens comuns, mas as partes precisam concordar sobre significado e tratamento.
- As codificações não são intercambiáveis. Na conversão, confira unions, tipos lógicos, padrões, dados ausentes, tags CBOR, limites de inteiros, bytes, codificação determinística e extensões desconhecidas.
Perguntas frequentes
CBOR decodifica dados Avro sem esquema?
Não. As codificações são diferentes e Avro precisa do esquema de escrita. A conversão deve mapear explicitamente o esquema e os valores para itens CBOR.