Parquet, Iceberg ve veri lakehouse'unu anlamak
(davidgomes.com)Anlamak: Parquet, Iceberg ve BroadIn'in veri lakehouse'u
-
Veri depolama biçimleri (dosya içinde ve bellek içinde)
- Veri erişimi ve depolama için çeşitli dosya biçimleri bulunur
- Bazı sistemler ağırlıklı olarak kapalı veri biçimleri kullanır, ancak çoğu sistem açık veri biçimlerini destekler
- Başlıca açık kaynak dosya biçimleri arasında Apache Avro, Parquet, ORC, Arrow, Feather ve Protobuf bulunur
- Bu biçimler, verinin gerçek ikili düzende nasıl yerleştirileceğine dair spesifikasyonlar sağlar
- Parquet sıkıştırmayı iyi destekler, Avro ise belirli satır bloklarını okumaya uygundur
- Şema evrimi ve dosya bölmeyi destekleyerek paralel işleme için kritik hale gelirler
- Çeşitli programlama dilleri ve araçlarla bu biçimlerle çalışılabilir
-
Büyük ölçekli veri yönetimi - Iceberg ve Delta Lake
- Farklı tabloları depolamak, her birinin şemasını geliştirmek, veriyi verimli şekilde bölümlemek ve harici araçların şemayı kolayca okuyabilmesini sağlamak için yöntemlere ihtiyaç vardır
- Hive, Iceberg ve Delta Lake'in tümü şema kayıt defteri veya metastore desteği sunar
- Iceberg ve Delta Lake, tekil dosya biçimi olarak Parquet kullanır
- Iceberg ve Delta Lake bir sorgu ya da depolama motoru değil, sorgu motorlarının iş yapabilmesini sağlayan açık spesifikasyonlardır
- Bölümleme evrimi, şema evrimi, veri sıkıştırma, ACID işlemleri, verimli sorgu optimizasyonu ve time travel gibi yetenekleri mümkün kılar
-
Veri gölü ve veri lakehouse nedir?
- Veri gölü, şirketlerin OCR, Parquet veya CSV dosyaları gibi ham biçimlerde büyük miktarda veriyi depoladığı yerdir
- Veri lakehouse, veri gölünün üzerinde SQL sorguları çalıştırma, batch işleri kurma ve veri yönetişimi yapılandırma gibi yeteneklerin birleşimidir
- Veri lakehouse, açık bir veri ambarı sürümü olarak görülebilir
- Snowflake ve BigQuery gibi veri ambarları Iceberg gibi açık veri biçimlerini destekledikçe, veri ambarı ile veri lakehouse arasındaki sınır giderek belirsizleşiyor
GN⁺ görüşü
- Iceberg ve Delta Lake, büyük veri kümelerini yönetmek için bir metadata katmanı olarak önemli rol oynar. Verinin verimli yönetimini ve sorgu optimizasyonunu mümkün kıldıkları için veri bilimcileri ve mühendisler açısından faydalıdır.
- Veri lakehouse, veri gölü ile veri ambarının avantajlarını birleştirerek veri yönetimi ve analizi için yeni bir paradigma sunar. Bu, veriye dayalı karar almayı daha da güçlendirecek fırsatlar sağlar.
- Iceberg desteği arttıkça, veri yönetimi ve analiz sistemlerinin giderek daha standart ve birlikte çalışabilir hale gelmesi bekleniyor. Bu da veri platformu seçimi ve kullanımında daha fazla esneklik ve verimlilik getirecektir.
2 yorum
Iceberg ve Delta Lake’i karşılaştırıyordum; böyle derli toplu özetlenmiş olması güzel olmuş.
Benim baktığım görüş ve düşüncelerle neredeyse tamamen aynı.
Çevrim içi yapılan benchmark Spark kullanılarak gerçekleştirilmiş ve benchmark referans alınmaya değer olsa da çok büyük bir anlamı olmadığını Tabular’ın Head DevRel’i yazmış.
Açık kaynak olarak bir seçim yapılacaksa tek seçenek Iceberg gibi görünüyor.
Özet güzel ama başvurulan bağlantılar da olsaydı iyi olurdu.
Hacker News görüşü
Apache Iceberg ve Delta Lake sık sık açık tablo formatları olarak anılsa da, aslında aralarında fark var.
Veritabanı dünyasında Delta, Iceberg ve Hudi’nin veriyi S3 gibi depolamalarda açık kaynak formatlarla saklaması büyük bir değişim anlamına geliyor.
Yıllardır S3 üzerinde Parquet dosyalarıyla çalışıyorum ama Iceberg’in tam olarak ne olduğunu anlamamıştım. Bu makale ise Iceberg’i iyi açıklıyor.
Apache Arrow dataframe’lerini diskte dosya olarak saklamanın en iyi yolu Feather kullanmaktır, ancak bunları Apache Parquet formatına dönüştürmek de mümkündür.
Veri gölünü duymuştum ama "veri lakehouse" kulağa üst sınıf verilerin yazın veri teknesiyle veri avına çıktığı bir yer gibi geliyor.
GCP’de yaklaşık 100 TB veriyle çalışıyorum, sorgu motoru olarak BigQuery ve basit Hive partitioning kullanıyorum. Tüm sorguları çalıştırabiliyor olmak ve maliyetin çok düşük olması hoşuma gidiyor, ancak gecikme oldukça yüksek olabiliyor (şirket için büyük bir sorun değil).
Iceberg konusunda çok heyecanlıyım ama en son baktığımda tek gerçek implementasyon Spark kütüphaneleriydi ve Trino’nun Iceberg connector’ü Hive’a ciddi biçimde bağımlıydı.
Birinin neden tüm bunları daha somut fikirlerle açıklamadığını merak ediyorum. Verinin nasıl saklandığını, nasıl bağlanılıp sorgulandığını ve sorgu hızının nasıl olduğunu (işlem hızıyla "analitik" hız arasındaki fark dahil) anlatmaları gerekirdi.
İnternette gördüğüm tüm benchmark’larda Delta Lake formatı, Iceberg’den çok daha iyi performans gösteriyor.
Blog yazısının %100 kapsamlı olmayacağını veya çoğu insan için en iyi başlangıç noktası olmayacağını kabul ediyorum.