Bỏ qua

Delta Lake vs Iceberg vs Parquet

🔴 Rất quan trọng · Data Platform


Delta Lake là gì?

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