Open Table Formats: Iceberg, Delta Lake, and Hudi
A comparison of the three leading open table formats for lakehouses: Apache Iceberg, Delta Lake, and Apache Hudi, covering their architectural differences, strengths, ecosystem compatibility, and when to choose each.
Three Formats, One Goal
Object storage (S3, ADLS, GCS) provides cheap, scalable storage for data files but lacks the transactional semantics, schema management, and query optimization features needed for reliable analytics. Open table formats solve this by adding a metadata layer over raw object storage files, providing ACID transactions, schema evolution, partition management, and query optimization statistics while remaining engine-agnostic and vendor-neutral.
Three open table formats have emerged as the leading solutions: Apache Iceberg, Delta Lake, and Apache Hudi. All three enable ACID transactions on object storage, support schema evolution, and provide time-travel query capability. Their architectural differences reflect different design philosophies and result in different performance characteristics, ecosystem compatibility, and governance capabilities.
Apache Iceberg
Apache Iceberg is the Apache Software Foundation-governed open standard table format designed for interoperability across all query engines. Iceberg’s metadata architecture (catalog -> metadata file -> manifest list -> manifest files -> data files) provides powerful scan planning through manifest-level file pruning and column-level statistics, enabling efficient query planning without scanning data files.
Iceberg’s key strengths include: the richest engine support ecosystem (Spark, Flink, Dremio, Trino, Presto, DuckDB, Snowflake, BigQuery, Athena), the most complete schema evolution semantics (add, drop, rename, reorder, change type with full backward and forward compatibility), hidden partitioning with partition evolution (change partitioning without data rewrites), table branching and tagging for Git-like data versioning, and the Iceberg REST Catalog specification enabling a standardized, vendor-neutral catalog API.
Apache Polaris (the open-source REST Catalog for Iceberg) and Dremio’s native Iceberg integration make Iceberg the natural choice for organizations building open, multi-engine lakehouses without vendor lock-in.
Delta Lake
Delta Lake was developed by Databricks and is the default table format for the Databricks Lakehouse Platform. Delta Lake’s metadata is stored in a _delta_log directory within the table’s storage prefix, consisting of JSON commit files and periodic Parquet checkpoint files.
Delta Lake’s strengths include tight integration with Databricks (optimized for Spark performance on Databricks clusters), Liquid Clustering for adaptive file organization, Delta Sharing for cross-organization data sharing, and strong adoption within the Databricks ecosystem. However, Delta Lake’s primary optimizations (Liquid Clustering, OPTIMIZE command, Data Skipping) are most effective within the Databricks-managed environment. Multi-engine support outside Databricks is more limited than Iceberg’s, and the Delta Lake specification is governed by the Linux Foundation’s Delta Lake Project rather than Apache.
Apache Hudi
Apache Hudi (Hadoop Upsert Delete and Incremental) was developed by Uber and focuses on efficient streaming data ingestion with low-latency upsert capability. Hudi’s Copy-on-Write and Merge-on-Read table types optimize for different tradeoffs between write performance and read performance.
Hudi’s strengths include: strong CDC (Change Data Capture) ingestion support through DeltaStreamer, efficient incremental reads through the incremental_query_type, and tight integration with AWS Glue and EMR. Hudi is well-suited for near-real-time CDC pipelines from relational databases but has a smaller multi-engine ecosystem than Iceberg.

When to Choose Each
Choose Apache Iceberg when: building a multi-engine lakehouse with Dremio, Spark, Trino, and Flink; when catalog governance and the REST Catalog standard are priorities; when open interoperability and avoiding vendor lock-in are requirements; when Git-like branching and tagging are needed.
Choose Delta Lake when: the organization is committed to the Databricks platform; when most workloads run on Databricks Spark; when Databricks-specific optimizations (Liquid Clustering, Photon) are important.
Choose Apache Hudi when: the primary use case is CDC ingestion from relational databases at high volume; when the existing stack is AWS-heavy with Glue and EMR; when incremental read patterns are critical.
Learn More
To dive deeper into these architectures and master the modern data ecosystem, check out the comprehensive books by Alex Merced available in our Books section.