HDFS merupakan layer terbawah dari Hadoop yang dapat menyimpan segala bentuk data. HDFS dapat menyimpan data dalam bentuk structured data, semi-structured dan unstructured
Hadoop mempunyai dua jenis format file yang banyak digunakan untuk penyimpanan yaitu Avro dan Parquet
Avro dan Parquet adalah format biner yang dapat dibaca mesin dan tidak dapat dibaca oleh manusia tidak seperti format JSON atau XML
Perbedaan terbesar Avro dan Parquet adalah dalam penyimpanan datanya
Avro merupakan file format yang menggunakan row-based storage sedangkan Parquet adalah file format yang menggunakan column-based stroge
Jika aplikasi yang kita kembangkan lebih sering melakukan query untuk setiap barisnya maka format file yang digunakan lebih cocok menggunakan Avro
Tetapi jika data kita mempunyai banyak kolom dan lebih sering melakukan operasi pada subset kolom maka cocok menggunakan Parquet
Berikut adalah perbandingan antara Avro dan Parquet berdasarkan penelitian dari Nexla whitepaper
Ada beberapa hal yang perlu diperhatikan dalam memilih format Avro ataupun Parquet seperti kompresi, evolusi skema, operasi read/write dan dukungan platform
Kompresi merupakan langkah penting agar ukuran data dapat menjadi lebih kecil. Format column-based dianggap lebih baik dalam melakukan kompresi datanya
Evolusi skema memungkinkan untuk melakukan perubahan data seperti menambah, merubah atau menghapus record. Jika perubahan skema cukup tinggi maka Avro menjadi pilihan yang lebih baik
Untuk operasi read/write, Avro cocok digunakan untuk operasi yang banyak melakukan penulisan (Write) sedangkan Parquet cocok untuk operasi pembacaan (Read)
Untuk support terhadap platform, Apache kafka bisa merupakan pilihan yang baik untuk Avro dan Apache Spark untuk pemrosesan format Parquet