Bỏ qua

Delta Lake vs Iceberg vs Parquet

🔴 Rất quan trọng · Data Platform


Delta Lake là gì?

Là storage layer mã nguồn mở, chạy trên data lake (S3, ADLS, HDFS). Bổ sung ACID transactions, versioning, schema enforcement mà Parquet thuần không có.

📐 Hình dung đơn giản: Delta = Parquet files + Transaction Log (metadata)

So sánh

Tiêu chí Parquet Delta Lake Iceberg
Bản chất File format Storage layer (Parquet + metadata) Table format (Parquet/ORC + metadata)
ACID Transaction ❌ ✅ ✅
Time Travel ❌ ✅ (theo version) ✅ (theo snapshot)
Schema Evolution Manual Tự động enforce + merge Tự động enforce + evolution
UPDATE/DELETE ❌ (immutable) ✅ (MERGE, DELETE) ✅
Engine hỗ trợ Hầu hết Chủ yếu Spark/Databricks Đa engine (Spark, Trino, Flink...)
Vendor Apache Databricks (open-source) Netflix → Apache

Ưu điểm Delta

  • ACID Transactions: Đảm bảo dữ liệu không bị corrupt khi nhiều job ghi đồng thời
  • Time Travel: Quay lại version cũ dễ dàng, rất tiện debug và audit
  • Schema Enforcement: Tự động reject dữ liệu sai schema, giữ chất lượng
  • MERGE (Upsert): Hỗ trợ SCD2, upsert rất tiện lợi

Nhược điểm Delta

  • Phụ thuộc nhiều vào hệ sinh thái Databricks/Spark
  • Small file problem: Nhiều lần ghi nhỏ tạo ra nhiều file nhỏ → cần OPTIMIZE/VACUUM
  • Transaction log lớn dần theo thời gian, cần chạy VACUUM định kỳ

Comments