Evolusi Format Penyimpanan Data: Dari CSV ke Delta
Hai! Bisakah Anda percaya seberapa jauh kita telah datang dari hari-hari baik dari format penyimpanan data CSV dasar? Karena kebutuhan kami akan solusi penyimpanan data yang lebih cepat dan lebih mudah beradaptasi tumbuh, kami telah melihat beberapa format baru yang cukup mengagumkan hadir. Dalam artikel ini, kita akan mendalami evolusi format penyimpanan data — dari CSV hingga Delta — dan apa yang membuat tiap format menjadi lebih baik dari sebelumnya. Bersiaplah untuk bergaul dengan saya
CSV (Nilai yang Dipisahkan Koma)
CSV adalah format sederhana yang digunakan untuk menyimpan data tabular. Setiap baris dalam file CSV mewakili catatan, dengan nilai yang dipisahkan dengan koma.
Mengapa diperkenalkan?
CSV dibuat sebagai cara langsung untuk menyimpan dan berbagi data tabular, yang membutuhkan pemrosesan minimal untuk membaca atau menulis.
Keterbatasan:
- Jenis dan struktur data terbatas
- Tidak ada dukungan untuk kompresi data
- Tidak ada penegakan skema atau validasi data
JSON adalah format berbasis teks yang ringan untuk pertukaran data yang menggunakan subset dari sintaks JavaScript.
Mengapa diperkenalkan?
JSON dirancang sebagai alternatif XML, menawarkan struktur data yang dapat dibaca manusia dan mudah diuraikan.
Perbaikan atas CSV:
- Mendukung struktur data hierarkis
- Lebih fleksibel dalam menangani tipe data yang berbeda
- Dukungan yang lebih baik untuk metadata
- Verbositas : JSON adalah format berbasis teks, yang artinya membutuhkan lebih banyak byte untuk mewakili data yang sama dibandingkan dengan format biner. Overhead tambahan dapat menyebabkan peningkatan konsumsi memori dan waktu pemrosesan, terutama untuk kumpulan data besar.
- Parsing : Data JSON perlu diurai ke dalam struktur data asli saat deserialized, yang bisa mahal secara komputasi.
- Stringifikasi : Mengonversi berbagai tipe data ke representasi stringnya dapat memerlukan siklus CPU yang signifikan.
- Encoding dan decoding : JSON menggunakan Unicode, yang dapat meningkatkan waktu pemrosesan untuk operasi encoding dan decoding, terutama untuk karakter non-Inggris atau simbol khusus.
- Kurangnya skema : JSON tidak memiliki skema atau sistem tipe bawaan, yang berarti validasi data dan pengecekan kesalahan harus dilakukan secara manual.
Parquet adalah format file penyimpanan kolom yang dioptimalkan untuk digunakan dengan kerangka pemrosesan data besar seperti Apache Hadoop dan Apache Spark.
Mengapa diperkenalkan?
Parket dikembangkan untuk mengatasi kebutuhan akan penyimpanan dan pemrosesan dataset skala besar yang efisien dalam sistem terdistribusi.
Peningkatan atas JSON:
- Format penyimpanan kolom, memungkinkan kompresi data dan kinerja kueri yang lebih baik
- Dukungan evolusi skema
- Dioptimalkan untuk kerangka pemrosesan data besar
- Kompresi : Penyimpanan kolom memungkinkan kompresi yang lebih baik karena nilai dalam kolom seringkali serupa dalam jenis dan rentang. Kesamaan ini menghasilkan rasio kompresi yang lebih baik dibandingkan dengan format penyimpanan berbasis baris, di mana data dari kolom yang berbeda digabungkan.
Snappy menjadi Algoritma kompresi default karena keseimbangan sempurna antara kompresi dan kecepatan
3. Eksekusi kueri vektor : Mesin kueri modern dapat memanfaatkan penyimpanan kolom untuk melakukan operasi vektor, memungkinkan mereka memproses data dalam kumpulan besar daripada satu baris dalam satu waktu. Pendekatan ini membaik
ORC (Kolom Baris yang Dioptimalkan)
ORC adalah format penyimpanan kolom lainnya yang dirancang untuk ekosistem Hadoop, dengan fokus pada pengoptimalan kinerja dan efisiensi penyimpanan.
Mengapa diperkenalkan?
ORC dibuat untuk memberikan kompresi yang lebih baik dan kinerja baca yang lebih cepat dibandingkan dengan format penyimpanan berbentuk kolom lainnya.
Perbaikan atas Parket:
- Algoritma kompresi ringan, menghasilkan ukuran file yang lebih kecil
- Peningkatan kinerja membaca
- Predikat pushdown dan dukungan vektorisasi
Avro adalah format penyimpanan berbasis baris yang mendukung evolusi skema, sehingga cocok untuk menyimpan data jangka panjang.
Mengapa diperkenalkan?
Avro dikembangkan untuk menjawab kebutuhan akan kerangka kerja serialisasi data yang fleksibel dan efisien yang dapat menangani perubahan skema dari waktu ke waktu.
Peningkatan atas ORC:
- Penyimpanan berbasis baris, lebih cocok untuk kasus penggunaan tertentu
- Dukungan asli untuk evolusi skema
- Format biner kompak
\x0cAlice\x1e\x0cNew York\x0cBob\x19\x0eSan Francisco\x0eCharlie\x16\x10Los Angeles
HDF5 adalah format penyimpanan data serbaguna yang dirancang untuk komputasi performa tinggi dan kumpulan data berskala besar.
Mengapa diperkenalkan?
HDF5 dikembangkan untuk menangani struktur data hierarkis yang kompleks dan mendukung penyimpanan dan pengambilan data yang efisien dalam aplikasi ilmiah.
Perbaikan atas Avro:
- Mendukung struktur data yang kompleks dan hierarkis
- Dioptimalkan untuk lingkungan komputasi berkinerja tinggi
- Kompresi data tingkat lanjut dan kemampuan chunking
Delta Lake adalah lapisan penyimpanan sumber terbuka yang dibangun di atas Apache Spark yang menghadirkan transaksi ACID dan kemampuan perjalanan waktu ke beban kerja big data.
Mengapa diperkenalkan?
Delta Lake dikembangkan untuk mengatasi tantangan keandalan dan konsistensi data dalam sistem pemrosesan data terdistribusi berskala besar.
Perbaikan atas Avro:
- Dukungan transaksi ACID, memastikan konsistensi data
- Kemampuan perjalanan waktu untuk pembuatan versi dan pengembalian data
- Penegakan skema dan evolusi
- Integrasi dengan Apache Spark dan kerangka data besar lainnya
Saat memilih format penyimpanan data, pertimbangkan faktor-faktor berikut:
- Kompatibilitas : Pastikan formatnya kompatibel dengan alat, bahasa, dan platform yang Anda gunakan.
- Kompresi : Jika ruang penyimpanan menjadi perhatian, pilih format yang memberikan rasio kompresi yang lebih baik.
- Evolusi skema : Jika skema data Anda cenderung berubah, pilih format yang mendukung evolusi skema, seperti Avro, Parquet, atau Delta Lake.
- Performa kueri : Jika performa baca adalah prioritas, pertimbangkan untuk menggunakan format kolom seperti Parket atau ORC, yang dioptimalkan untuk kueri analitik cepat.
- Performa tulis : Pertimbangkan format seperti HDF5 atau Delta Lake yang menawarkan performa tulis efisien, terutama jika Anda memiliki persyaratan tulis real-time atau volume tinggi.

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































