Format Atlas

Bandingkan

Avro atau JSON

Apache Avro adalah sistem serialisasi berbasis skema dengan encoding biner ringkas dan berkas kontainer objek yang menyertakan skema. JSON adalah format pertukaran teks yang mudah dibaca; Avro juga mendefinisikan encoding JSON.

Format mana yang sebaiknya dipilih?

Pertimbangkan Avro untuk rekaman ringkas yang dikelola skema dan penyelesaian skema penulis/pembaca. Pilih JSON jika inspeksi teks dan interoperabilitas aplikasi yang luas lebih penting.

Cocok untuk Avro

Menukar catatan dengan skema terdefinisi

  • Peristiwa dan alur data dengan versi skema

Cocok untuk JSON

API web, file konfigurasi, dan pertukaran data

  • Mengirim data terstruktur

Informasi dasar

ItemAvroJSON
Ekstensi.avro.json
Tipe MIMEapplication/avroapplication/json
Penggunaan umumMenukar catatan dengan skema terdefinisiAPI web, file konfigurasi, dan pertukaran data
Cara membukaGunakan alat Avro untuk memeriksa skema, bidang, tipe, dan catatan.Buka dalam editor teks, IDE, atau penampil yang mendukung JSON.
Ekspor atau konversiKe JSON atau Parquet, periksa nama bidang, tipe, null, tipe logis, jumlah catatan, dan kompatibilitas skema.Aplikasi atau alat konversi dapat mengubahnya ke format seperti CSV.

Pilih menurut penggunaan

Peristiwa dan alur data dengan versi skema

Menukar catatan dengan skema terdefinisi

Avro

Mengirim data terstruktur

API web, file konfigurasi, dan pertukaran data

JSON

Poin utama 1

Encoding biner Avro mengikuti skema; berkas kontainernya menyimpan blok data dan metadata skema. JSON adalah teks menurut RFC 8259, sedangkan Avro juga memiliki encoding JSON tersendiri.

Perbedaan lebih lanjut

Poin utama 2

Avro memerlukan skema penulis saat dibaca dan dapat menyelesaikannya dengan skema pembaca. Sintaks JSON tidak mewajibkan skema data, meski aplikasi dapat menetapkannya secara terpisah.

Perbedaan lebih lanjut

Perbedaan lebih lanjut

Gunakan Avro bila produsen dan konsumen berbagi skema terkelola dan rekaman ringkas berguna. Gunakan JSON untuk antarmuka teks yang mudah diperiksa dan dukungan alat luas. Tentukan encoding yang tepat dan validasi tipe serta perilaku skema saat konversi.

  • Avro mengodekan nilai sesuai skema; berkas kontainer menyertakan blok data dan metadata skema. JSON adalah tata bahasa teks. Avro tidak hanya biner karena juga menetapkan encoding JSON.
  • Penyelesaian skema Avro dapat mengaitkan skema penulis dan pembaca sesuai aturan kompatibilitas. Dokumen JSON dapat diproses tanpa skema tertanam, sehingga validasi sering mengikuti kontrak aplikasi.
  • Angka, null, array, dan objek JSON tidak selalu memiliki padanan satu-satu dengan union, bytes, timestamp, dan tipe Avro lain. Periksa nilai bawaan, nilai hilang, presisi angka, encoding karakter, dan kompatibilitas skema.

Pertanyaan umum

Apakah Avro selalu biner dan JSON selalu teks?

Tidak. Avro umumnya memakai encoding biner, tetapi juga menetapkan encoding JSON. Pastikan encoding Avro dan kontainer atau framing pesan yang digunakan.

Pelajari lebih lanjut

Referensi dan spesifikasi