Format Atlas

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

ItemAvroCBOR
Ekstensi.avro.cbor
Tipe MIMEapplication/avroapplication/cbor
Penggunaan umumMenukar catatan dengan skema terdefinisiPertukaran data terstruktur pada perangkat dan jaringan dengan sumber daya terbatas · Representasi data dalam COSE dan protokol IoT
Cara membukaGunakan 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 konversiKe 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

Avro

Mewakili 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

CBOR

Menggunakan 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

CBOR

Poin 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 lanjut

Poin 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 lanjut

Perbedaan 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.

Pelajari lebih lanjut

Referensi dan spesifikasi