Memahami Parquet, Iceberg, dan Data Lakehouse
(davidgomes.com)Memahami: Parquet, Iceberg, dan data lakehouse BroadIn
-
Cara penyimpanan data (file dan di memori)
- Ada berbagai format file untuk mengakses dan menyimpan data
- Beberapa sistem terutama menggunakan format data tertutup, tetapi sebagian besar sistem mendukung format data terbuka
- Format file open source utama mencakup Apache Avro, Parquet, ORC, Arrow, Feather, Protobuf, dan lainnya
- Format-format ini menyediakan spesifikasi tentang bagaimana data harus disusun dalam layout biner yang sebenarnya
- Parquet mendukung kompresi dengan baik, dan Avro cocok untuk membaca blok baris tertentu
- Mendukung evolusi skema dan pemecahan file, yang penting untuk pemrosesan paralel
- Berbagai bahasa pemrograman dan alat dapat bekerja dengan format-format ini
-
Pengelolaan data skala besar - Iceberg dan Delta Lake
- Diperlukan cara untuk menyimpan berbagai tabel, mengembangkan skema masing-masing, mempartisi data secara efisien, dan memungkinkan alat eksternal membaca skema dengan mudah
- Hive, Iceberg, dan Delta Lake semuanya mendukung schema registry atau metastore
- Iceberg dan Delta Lake menggunakan Parquet sebagai format file individual
- Iceberg dan Delta Lake bukan query engine atau storage engine, melainkan spesifikasi terbuka yang memungkinkan query engine melakukan pekerjaannya
- Memungkinkan fitur seperti evolusi partisi, evolusi skema, kompresi data, transaksi ACID, optimasi kueri yang efisien, time travel, dan lainnya
-
Apa itu data lake dan data lakehouse?
- Data lake adalah tempat perusahaan menyimpan data dalam jumlah besar dalam format mentah seperti OCR, file Parquet, atau CSV
- Data lakehouse adalah kombinasi kapabilitas di atas data lake yang memungkinkan eksekusi kueri SQL, penyiapan pekerjaan batch, konfigurasi tata kelola data, dan sebagainya
- Data lakehouse dapat dilihat sebagai versi dari data warehouse terbuka
- Seiring data warehouse seperti Snowflake dan BigQuery mendukung format data terbuka seperti Iceberg, batas antara data warehouse dan data lakehouse menjadi semakin kabur
Opini GN⁺
- Iceberg dan Delta Lake berperan penting sebagai lapisan metadata untuk mengelola set data skala besar. Keduanya memungkinkan pengelolaan data yang efisien dan optimasi kueri, sehingga berguna bagi data scientist dan engineer.
- Data lakehouse menggabungkan keunggulan data lake dan data warehouse, serta menghadirkan paradigma baru untuk pengelolaan dan analisis data. Ini membuka peluang untuk semakin memperkuat pengambilan keputusan berbasis data.
- Dengan meningkatnya dukungan terhadap Iceberg, sistem pengelolaan dan analisis data diperkirakan akan makin terstandarisasi dan interoperabel. Hal ini akan menghadirkan lebih banyak fleksibilitas dan efisiensi dalam pemilihan serta penggunaan platform data.
2 komentar
Saya sedang membandingkan Iceberg dan Delta Lake, dan ternyata bisa dirangkum dengan rapi seperti ini.
Pendapatnya hampir sama dengan pandangan yang saya lihat.
Benchmark yang dijalankan secara online menggunakan Spark, dan meski benchmark itu layak dijadikan referensi, Head of DevRel Tabular menulis bahwa itu tidak terlalu bermakna.
Jika harus memilih sebagai open source,
icebergtampaknya menjadi satu-satunya pilihan.Ringkasannya bagus, tetapi akan lebih baik jika ada juga tautan referensinya.
Komentar Hacker News
Apache Iceberg dan Delta Lake sering disebut sebagai format tabel terbuka, tetapi sebenarnya ada perbedaan.
Di dunia basis data, fakta bahwa Delta, Iceberg, dan Hudi menyimpan data sebagai format open source di storage seperti S3 merupakan perubahan besar.
Saya sudah bertahun-tahun bekerja dengan file Parquet di S3, tetapi belum benar-benar memahami apa itu Iceberg. Namun artikel itu menjelaskan Iceberg dengan baik.
Cara terbaik untuk menyimpan dataframe Apache Arrow ke disk sebagai file adalah menggunakan Feather, tetapi juga bisa dikonversi ke format Apache Parquet.
Saya pernah mendengar tentang data lake, tetapi "data lakehouse" terdengar seperti tempat data kalangan atas pergi memancing data dengan perahu data saat musim panas.
Saya menangani sekitar 100TB data di GCP, memakai BigQuery sebagai mesin kueri dan partisi Hive yang sederhana. Saya puas karena bisa menjalankan semua kueri dan biayanya sangat murah, tetapi latensinya cukup tinggi (meski bukan masalah besar bagi perusahaan).
Saya sangat antusias dengan Iceberg, tetapi saat terakhir kali saya menelitinya, satu-satunya implementasi adalah pustaka Spark, dan konektor Iceberg di Trino sangat bergantung pada Hive.
Saya mempertanyakan mengapa tidak ada yang bisa menjelaskan semua ini dengan gagasan yang lebih konkret. Harus dijelaskan bagaimana data disimpan, bagaimana cara terhubung dan melakukan kueri, dan seberapa cepat kuerinya berjalan (kecepatan transaksi dibanding kecepatan "analitik").
Dalam semua benchmark yang saya lihat secara online, format Delta Lake menunjukkan performa yang jauh lebih baik daripada Iceberg.
Saya mengakui bahwa posting blog itu mungkin tidak 100% komprehensif atau menjadi titik awal terbaik bagi kebanyakan orang.