Format fail Apache Parquet mendapati dirinya terperangkap di antara dua dunia. Walaupun Versi 2 telah diselesaikan selama bertahun-tahun dan menawarkan peningkatan prestasi yang jelas, komuniti kejuruteraan data sebahagian besarnya masih terperangkap pada Versi 1 disebabkan kebimbangan keserasian dan pemecahan ekosistem.
Faedah Prestasi Adalah Nyata Tetapi Sederhana
Ujian merentasi dua set data utama mendedahkan bahawa Parquet Versi 2 memberikan peningkatan yang konsisten berbanding pendahulunya. Saiz fail menyusut sebanyak 2-37% bergantung pada kaedah pemampatan, dengan fail tidak termampat melihat keuntungan terbesar. Prestasi penulisan bertambah baik sebanyak 4-27%, manakala operasi pembacaan menjadi 1-19% lebih pantas. Peningkatan ini paling ketara dengan set data yang mengandungi banyak nilai berangka, di mana pengekodan baharu dapat berfungsi dengan lebih berkesan.
Keuntungan ini datang daripada pengekodan data yang lebih baik sebelum pemampatan berlaku. Versi 2 termasuk kaedah pengekodan baharu seperti RLE_DICTIONARY dan DELTA_BYTE_ARRAY yang memampatkan data dengan lebih cekap. Ini meninggalkan kerja yang kurang untuk algoritma pemampatan tradisional, menjelaskan mengapa fail tidak termampat melihat peningkatan relatif terbesar.
Penambahbaikan Prestasi Parquet Version 2
Pengurangan Saiz Fail (Set Data Kerajaan Itali):
- UNCOMPRESSED: 37% lebih kecil
- SNAPPY: 10% lebih kecil
- GZIP: 5% lebih kecil
- ZSTD: 2% lebih kecil
- LZ4_RAW: 8% lebih kecil
- LZO: 9% lebih kecil
Penambahbaikan Prestasi Penulisan (Set Data Teksi New York):
- UNCOMPRESSED: 13% lebih pantas
- SNAPPY: 10% lebih pantas
- GZIP: 27% lebih pantas
- ZSTD: 11% lebih pantas
- LZ4_RAW: 11% lebih pantas
- LZO: 9% lebih pantas
Penambahbaikan Prestasi Pembacaan (Set Data Teksi New York):
- UNCOMPRESSED: 12% lebih pantas
- SNAPPY: 15% lebih pantas
- GZIP: 16% lebih pantas
- ZSTD: 18% lebih pantas
- LZ4_RAW: 19% lebih pantas
- LZO: 18% lebih pantas
Kerumitan Pelaksanaan Mencetuskan Kebimbangan Pembangun
Pelaksanaan rujukan Java telah menarik kritikan daripada pembangun yang bekerja dengan format tersebut. Pelaksanaan bit-packing sahaja menghasilkan 74,000 baris kod Java untuk mengendalikan setiap kombinasi lebar bit, endianness, dan panjang nilai. Pendekatan ini mengutamakan prestasi berbanding kebolehselenggaraan dan mewujudkan cabaran bagi pembangun yang cuba melaksanakan sokongan Parquet dalam bahasa lain atau pada perkakasan berbeza seperti GPU .
Kerumitan melangkaui sekadar kod. Jurang dokumentasi menyukarkan pelaksana baharu untuk memahami susun atur fail dengan betul. Malah butiran asas seperti cara pengepala halaman disertakan dalam pengiraan saiz termampat memerlukan penggalian melalui timbunan hex dan bukannya dokumen spesifikasi yang jelas.
Perdebatan Piawaian Empat Tahun Menghalang Kemajuan
Mungkin yang paling membimbangkan ialah perselisihan berterusan tentang apa yang membentuk fungsi teras Versi 2. Permintaan tarik yang membincangkan isu ini telah dibuka selama empat tahun tanpa penyelesaian. Perdebatan berpusat pada sama ada peningkatan pengekodan dan perubahan struktur halaman harus dianggap sebagai ciri berasingan yang berkembang secara bebas dan bukannya peningkatan versi monolitik.
Kelumpuhan piawaian ini mewujudkan masalah ayam-dan-telur. Enjin pertanyaan seperti yang terdapat dalam platform data utama tidak akan menyokong sepenuhnya Versi 2 tanpa keperluan keserasian yang jelas. Sementara itu, pembangun alat mengelak daripada menggunakan ciri Versi 2 kerana mereka tidak dapat menjamin keserasian dengan sistem hiliran yang masih mengharapkan fail Versi 1.
Kewaspadaan Perusahaan Mengukuhkan Status Quo
Cabaran keserasian mengukuhkan mengapa perusahaan sering berpegang pada penyelesaian komersial yang telah ditetapkan walaupun terdapat batasan teknikal. Dalam industri di mana ketidaktersediaan data boleh menamatkan kerjaya, keuntungan prestasi sederhana daripada Versi 2 tidak membenarkan risiko kegagalan integrasi dengan sistem pihak ketiga yang masih mengharapkan fail Versi 1.
Isu seperti ini adalah sebab kerajaan dan perusahaan masih berjalan pada Oracle dan SQL Server ... Emel CYA itu, dan tekak untuk dicekik, adalah sebab Oracle melakukan perjanjian pelesenan 7 dan 8 angka dengan perusahaan yang menjual penyelesaian perisian yang lebih rendah berbanding pilihan sumber terbuka.
Pendekatan konservatif ini bermakna walaupun komponen individu ekosistem data menambah sokongan Versi 2, penggunaan kekal terhad oleh pautan terlemah dalam rantaian alat setiap organisasi.
Laluan Ke Hadapan Memerlukan Koordinasi
Bagi organisasi yang mempunyai kawalan penuh ke atas saluran paip data mereka, penggunaan Versi 2 masuk akal hari ini. Peningkatan prestasi, walaupun tidak dramatik, adalah konsisten dan datang tanpa kelemahan apabila keserasian bukan kebimbangan. Walau bagaimanapun, penggunaan ekosistem yang lebih luas akan memerlukan koordinasi antara enjin pertanyaan utama, format tasik data seperti Iceberg dan Delta Lake , dan perpustakaan popular seperti Pandas .
Pengalaman komuniti Parquet mencerminkan cabaran yang dihadapi oleh piawaian lain yang berkembang. Kisah kejayaan seperti Linux menunjukkan bahawa kepimpinan teknikal yang kuat dapat mencegah jenis keraguan yang berpanjangan yang telah memperlahankan penggunaan Parquet Versi 2 . Sehingga kejelasan yang serupa muncul mengenai evolusi Parquet , format ini akan terus melayani komuniti kejuruteraan data dengan baik, walaupun tidak pada potensi penuhnya.
Rujukan: The two versions of Parquet