Bandingkan
Avro atau CBOR
Apache Avro mengodekan rekaman menurut skema dan mendukung resolusi skema penulis/pembaca serta berkas kontainer. CBOR adalah format biner umum dengan model data yang memperluas JSON, termasuk string byte dan tag.
Format mana yang sebaiknya dipilih?
Pertimbangkan Avro untuk skema terkelola, rekaman bertipe, dan evolusi skema di pipeline data. Pertimbangkan CBOR untuk nilai biner umum, tag, dan muatan protokol berstandar IETF.
Cocok untuk Avro
Menukar catatan dengan skema terdefinisi
- Peristiwa dan alur data dengan versi skema
Cocok untuk CBOR
Pertukaran data terstruktur pada perangkat dan jaringan dengan sumber daya terbatas · Representasi data dalam COSE dan protokol IoT
- Mewakili data mirip JSON dalam bentuk biner yang ringkas
- Menggunakan tag standar atau buatan aplikasi untuk menjelaskan arti nilai
Informasi dasar
| Item | Avro | CBOR |
|---|---|---|
| Ekstensi | .avro | .cbor |
| Tipe MIME | application/avro | application/cbor |
| Penggunaan umum | Menukar catatan dengan skema terdefinisi | Pertukaran data terstruktur pada perangkat dan jaringan dengan sumber daya terbatas · Representasi data dalam COSE dan protokol IoT |
| Cara membuka | Gunakan alat Avro untuk memeriksa skema, bidang, tipe, dan catatan. | Baca dengan pustaka atau decoder CBOR, lalu periksa notasi diagnostik atau tampilan mirip JSON. Perhatikan cara nilai yang tidak memiliki padanan langsung di JSON, seperti tag dan byte string, ditampilkan. |
| Ekspor atau konversi | Ke JSON atau Parquet, periksa nama bidang, tipe, null, tipe logis, jumlah catatan, dan kompatibilitas skema. | Saat mengonversi ke JSON, byte string dan nilai bertag mungkin memerlukan representasi khusus alat karena JSON tidak memiliki tipe yang setara. Untuk tanda tangan, hash, atau kunci cache, ikuti aturan encoding yang disepakati protokol, seperti encoding deterministik RFC 8949. |
Pilih menurut penggunaan
Peristiwa dan alur data dengan versi skema
Menukar catatan dengan skema terdefinisi
AvroMewakili data mirip JSON dalam bentuk biner yang ringkas
Pertukaran data terstruktur pada perangkat dan jaringan dengan sumber daya terbatas · Representasi data dalam COSE dan protokol IoT
CBORMenggunakan tag standar atau buatan aplikasi untuk menjelaskan arti nilai
Pertukaran data terstruktur pada perangkat dan jaringan dengan sumber daya terbatas · Representasi data dalam COSE dan protokol IoT
CBORPoin utama 1
Dekode Avro memerlukan skema penulis; berkas kontainernya dapat menyimpan skema. CBOR mengodekan item bertipe seperti map dan tag, tetapi evolusi skema aplikasi diatur terpisah.
Perbedaan lebih lanjutPoin utama 2
Avro mendefinisikan record, union, enum, dan tipe logis melalui skema. CBOR mendefinisikan integer, string byte, array, map, dan tag tanpa mewajibkan sistem skema record tertentu.
Perbedaan lebih lanjutPerbedaan lebih lanjut
Gunakan Avro saat produsen dan konsumen mengelola skema kompatibel serta evolusi rekaman. Gunakan CBOR jika protokol memerlukan model biner umum yang ringkas, termasuk byte atau tag. Periksa distribusi skema, encoding deterministik, dan dukungan implementasi.
- Data Avro ditafsirkan memakai skema penulis dan berkas kontainer dapat menyertakannya. Item CBOR membawa informasi tipe biner, tetapi kontrak skema tingkat aplikasi tidak otomatis tersedia.
- Resolusi skema Avro dapat mencocokkan skema penulis dan pembaca. Tag CBOR menambah makna pada item umum, tetapi kedua pihak harus sepakat atas arti dan penanganannya.
- Encoding byte keduanya tidak saling cocok. Saat konversi, periksa union, tipe logis, nilai bawaan dan hilang, tag CBOR, rentang integer, string byte, encoding deterministik, dan ekstensi yang tidak dikenal.
Pertanyaan umum
Dapatkah CBOR mendekode Avro tanpa skema?
Tidak. Encoding berbeda dan Avro memerlukan skema penulis. Konversi harus memetakan skema dan nilai secara eksplisit ke item CBOR.