Data Engineering › Storage, Formats & Lakehouse
Open Table Formats (Iceberg, Delta, Hudi)
Metadata layers that give files in a lake ACID transactions, schemas and time travel.
Also known as: Apache Iceberg, Delta Lake, Apache Hudi, table formats, Iceberg, Delta
A pile of Parquet files in object storage is just files: no transactions, no safe updates, no reliable schema changes. An open table format (Apache Iceberg, Delta Lake and Apache Hudi are the main ones) adds a metadata layer on top of the files that makes them behave like a proper database table.
table "orders"
├── metadata: list of snapshots, schema, partition spec, which data files belong to each snapshot
└── data files: part-001.parquet, part-002.parquet, ... (immutable)
The metadata tracks exactly which files make up the table at each point in time. A change doesn’t edit files in place. It writes new files and commits a new metadata version that points to them.
What it gives you
- ACID transactions: readers see a consistent snapshot, and writers commit atomically. No more half-written partitions visible to queries.
- Safe row-level updates, deletes and merges (
MERGE INTO,DELETE) on top of immutable files. - Schema evolution: add, rename or drop columns without rewriting everything, with tracked column identity.
- Time travel: query the table as it was at a previous snapshot or time (
SELECT ... AS OF), and roll back a bad write (time travel). - Partition management: hidden partitioning and the ability to change the partitioning scheme later (in Iceberg), instead of baking it into folder names (Hive partitioning).
- Better performance: file-level statistics let engines skip files (predicate pushdown, partition pruning).
- Multiple engines can read and write the same tables (Spark, Flink, Trino, warehouses and others, depending on the format and the engine’s support).
- Concurrency control: commits are validated optimistically, and conflicting writers retry.
Maintenance you must do
Because every write creates new files and snapshots:
- Compact small files (compaction, small files problem).
- Expire old snapshots and remove orphan files, or storage grows forever (balance against how much time travel you want).
- Keep an eye on metadata size and the number of snapshots.
Choosing and caveats
- The three have different histories and strengths, and their features and ecosystem support keep changing. Check which your engines, catalog and cloud support well before committing.
- A table format needs a catalog to find tables (catalog and metastore).
- They are for analytical data. They’re not a replacement for a transactional database serving an application (OLTP vs OLAP).
- Interoperability between formats is improving, but you shouldn’t assume it.
They’re the technology behind the lakehouse approach.