Vergleichen
Avro oder CBOR
Apache Avro codiert Datensätze gemäß Schema und unterstützt die Auflösung von Schreib- und Leseschemata sowie Containerdateien. CBOR ist ein allgemeines Binärformat mit erweitertem JSON-Datenmodell, einschließlich Bytefolgen und Tags.
Welches Format sollten Sie wählen?
Avro eignet sich für verwaltete Schemata, typisierte Datensätze und Schemaentwicklung in Datenpipelines. CBOR eignet sich für allgemeine Binärwerte, Tags und IETF-definierte Protokolldaten.
Geeignet für Avro
Datensätze mit definiertem Schema austauschen
- Ereignisse und Datenflüsse mit Schemaversionen
Geeignet für CBOR
Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen
- JSON-ähnliche Daten kompakt binär darstellen
- Standard- oder anwendungsspezifische Tags verwenden, um Werte zu kennzeichnen
Grundlegende Informationen
| Merkmal | Avro | CBOR |
|---|---|---|
| Dateiendung | .avro | .cbor |
| MIME-Typ | application/avro | application/cbor |
| Häufige Verwendung | Datensätze mit definiertem Schema austauschen | Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen |
| Öffnen | Prüfen Sie Schema, Felder, Typen und Datensätze mit einem Avro-Werkzeug. | Lesen Sie die Datei mit einer CBOR-Bibliothek oder einem Decoder und prüfen Sie die Diagnose-Notation oder eine JSON-ähnliche Ansicht. Achten Sie auf Werte ohne direktes JSON-Gegenstück, etwa Tags und Bytefolgen. |
| Exportieren oder konvertieren | Bei Umwandlung in JSON oder Parquet prüfen Sie Feldnamen, Typen, Nullwerte, logische Typen, Anzahl und Schema-Kompatibilität. | Bei der Umwandlung in JSON benötigen Bytefolgen und getaggte Werte möglicherweise werkzeugspezifische Darstellungen. Beachten Sie bei Signaturen, Hashes oder Cache-Schlüsseln die vereinbarten Protokollregeln, etwa die deterministische Codierung nach RFC 8949. |
Nach Einsatzzweck wählen
Ereignisse und Datenflüsse mit Schemaversionen
Datensätze mit definiertem Schema austauschen
AvroJSON-ähnliche Daten kompakt binär darstellen
Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen
CBORStandard- oder anwendungsspezifische Tags verwenden, um Werte zu kennzeichnen
Strukturierte Daten auf ressourcenbeschränkten Geräten und Netzwerken austauschen · Daten in COSE und IoT-Protokollen darstellen
CBORWichtiger Punkt 1
Avro-Decodierung benötigt das Schreibschema; die Objektcontainerdatei kann es enthalten. CBOR codiert typisierte Elemente wie Maps und Tags, aber anwendungsspezifische Schemaentwicklung ist separat.
Unterschiede im DetailWichtiger Punkt 2
Avro definiert Records, Unions, Enums und logische Typen über Schemata. CBOR definiert Ganzzahlen, Bytefolgen, Arrays, Maps und Tags, ohne ein Record-Schemasystem vorzuschreiben.
Unterschiede im DetailUnterschiede im Detail
Verwenden Sie Avro, wenn Erzeuger und Verbraucher kompatible Schemata verwalten und Datensatzentwicklung benötigen. Verwenden Sie CBOR für ein allgemeines kompaktes Binärmodell mit Bytefolgen oder Tags. Prüfen Sie Schema-Verteilung, deterministische Codierung und Implementierungsunterstützung.
- Avro-Daten werden mit dem Schreibschema interpretiert; Containerdateien können es enthalten. CBOR-Elemente tragen binäre Typinformationen, aber keinen automatischen Anwendungsschema-Vertrag.
- Avros Schemaauflösung kann Schreib- und Leseschemata abgleichen. CBOR-Tags ergänzen Semantik, doch beide Seiten müssen Bedeutung und Behandlung vereinbaren.
- Die Bytecodierungen sind nicht austauschbar. Prüfen Sie bei Konvertierung Unions, logische Typen, Standardwerte, fehlende Werte, CBOR-Tags, Ganzzahlbereiche, Bytefolgen, deterministische Codierung und unbekannte Erweiterungen.
Häufige Fragen
Kann CBOR Avro ohne Schema decodieren?
Nein. Die Codierungen unterscheiden sich und Avro benötigt sein Schreibschema. Eine Konvertierung muss Schema und Werte explizit auf CBOR-Elemente abbilden.