Most articles about Iceberg and Delta Lake start by comparing features. That is the wrong place to start, because in 2026 the feature lists look almost identical, and because most people asking the question have not been told what a table format actually is.
So let us start there, in plain language, and only then compare.

What a table format actually is
You have a folder in object storage. Inside are a few thousand Parquet files. Somebody calls this “a table”.
It is not a table. It is a folder. And that causes three real problems:

Nobody agrees what is in it. A query engine has to list the folder to find out. If a job is halfway through writing new files, one reader sees them and another does not.
You cannot safely change anything. Deleting a row means rewriting a file. If a reader is mid-scan when you swap it, results are wrong.
You cannot go back. Overwrite yesterday’s file and yesterday is gone.
A table format is a rulebook that fixes this. It adds a metadata layer that tracks which files belong to the table, what the schema is, and what the table looked like at each point in time. Readers ask the metadata, not the folder.
That is it. Apache Iceberg and Delta Lake are two competing rulebooks for the same job. The data underneath is still Parquet in both cases.
The 30-second answer
If you want to stop reading here:
- Already on Databricks? Delta Lake. It is the native format and the integration is deepest there.
- Want maximum engine and vendor independence? Iceberg. It has the broadest spread of independent engines and catalogs.
- Starting fresh with no strong tie? Iceberg is the safer default in 2026, because more independent engines speak it natively.
- Already deep in Delta and worried about lock-in? You may not need to move at all — see UniForm below.
Everything after this is the reasoning.
Where they came from, and why it still matters
This is the part that explains most of the differences.
Iceberg is an Apache Software Foundation project. ASF governance means no single vendor controls the spec, and that shows in the ecosystem: BigQuery, Snowflake, Redshift, Athena, Trino, ClickHouse, DuckDB, Dremio, StarRocks, Doris, Druid, Firebolt and Microsoft OneLake all read it, and the catalog layer has multiple independent implementations including Apache Polaris, Apache Gravitino, AWS Glue, Nessie and Lakekeeper.
Delta Lake came out of Databricks and became a Linux Foundation project in 2019. The project states plainly that it is “an independent open-source project and not controlled by any single company”, and it lists over 190 developers from more than 70 organisations. But its centre of gravity is still Databricks, and its most active recent development — the Unity Catalog Delta APIs — is Databricks-adjacent.
What this means in practice: if your worry is “will I be able to read my own data in five years with a tool I have not chosen yet”, Iceberg’s governance is the more conservative bet. If your platform is already Databricks, that worry is mostly theoretical and Delta gives you a better daily experience.
What is actually the same
More than the marketing suggests. Both give you:
| Capability | What it means |
|---|---|
| ACID transactions | Writers do not corrupt each other; readers see a consistent snapshot |
| Time travel | Query the table as it looked yesterday; roll back a bad load |
| Schema evolution | Add, rename, drop and reorder columns without rewriting data |
| Row-level deletes and updates | Delete or update individual rows without rewriting whole files |
| Streaming and batch | The same table serves both |
| Parquet underneath | Your actual data files are the same in both |
If someone tells you one of these is a differentiator, they are selling something.
What is actually different

Three things genuinely differ.
1. Iceberg hides partitioning; Delta does not.
This is Iceberg’s most useful distinctive feature and the one most worth understanding.
In older systems, if a table was partitioned by day, a query had to filter on the partition column explicitly or it would scan everything. Users had to know the physical layout.
Iceberg records the transform — “partition by day of this timestamp column” — as table configuration. You write a normal filter on the timestamp, and Iceberg derives the partition filter and skips files for you.
Better still, it supports partition evolution. Start partitioning by month, discover your data grew, switch to day — without rewriting the existing data. Old files keep their old scheme, new files use the new one, and queries still work because filters are derived, not hard-coded.
2. Delta answers interoperability with UniForm.
Delta’s response to “but everyone else uses Iceberg” is the Delta Universal Format. UniForm lets Delta tables be read by Iceberg and Hudi clients.
That is a genuinely pragmatic move. If your organisation standardised on Delta three years ago, you do not necessarily need a migration project — you may just need to turn on UniForm and let Iceberg-speaking engines read what you already have.
3. Delta ships a kernel that engines embed.
Delta maintains a Kernel, including a Rust implementation, that other engines can embed rather than reimplementing the protocol. ClickHouse integrated the Rust Delta Kernel this year. This lowers the cost of a new engine supporting Delta correctly, which matters because protocol reimplementation is where subtle bugs live.
The thing that actually decides it
Here is the part most comparisons skip.
You will change your table format more easily than you will change your catalog.
The catalog is what tracks which tables exist, where their metadata lives, and who is allowed to read them. Iceberg has a REST Catalog specification precisely to decouple this, and there are several implementations. Delta’s recent work centres on the Unity Catalog Delta APIs.
Your catalog is wired into your permission model, your lineage tooling, your CI, and every pipeline you run. Migrating a table format is a documented procedure — Iceberg even publishes a Delta Lake migration guide. Migrating a catalog is a project.
So the honest decision procedure is:
- What catalog will govern this data? If the answer is Unity Catalog, you are on Delta. If it is Polaris, Glue, Gravitino, BigLake or Nessie, you are on Iceberg.
- Which engines must read it? List them, then check which format each speaks natively rather than through a bridge.
- Only then look at features.
If you skip to step 3 you will make a decision that step 1 quietly overrules six months later.
Which spec version to be on
Worth stating because it trips people up.
For Iceberg, spec versions 1, 2 and 3 are complete and adopted by the community. Version 3 added extended types (nanosecond timestamps, variant, geometry and geography), column default values, row lineage tracking and binary deletion vectors. Version 4 is under active development and has not been formally adopted — it restructures metadata and adds relative paths so tables can be relocated without rewriting metadata. Do not plan around v4 yet.
For Delta Lake, the current line is 4.4.0 on Apache Spark 4.2.0.
The decision table
| Your situation | Pick |
|---|---|
| Databricks is your platform | Delta Lake |
| Multiple query engines, several vendors | Iceberg |
| BigQuery or Snowflake as primary warehouse | Iceberg — both read it natively |
| You need to change partitioning later | Iceberg — partition evolution |
| Already on Delta, need Iceberg readers | Stay on Delta, enable UniForm |
| Governance and vendor neutrality are the priority | Iceberg — ASF governance |
| Starting fresh, no constraints | Iceberg — broader native support |
| Your catalog is Unity Catalog | Delta Lake — the decision is already made |
If you are still deciding what sits above the table format, the warehouse comparison in BigQuery vs Snowflake covers the layer that will consume these tables.
The bottom line
The format war is quieter than the blog posts suggest. Both formats do the same core job, both are production-grade, and the interoperability layers mean picking “wrong” is recoverable.
What is not recoverable cheaply is a catalog choice, an engine commitment, or a permission model built around the wrong assumption. Decide those first and the table format usually decides itself.
And if you take one technical thing away: hidden partitioning and partition evolution are the real Iceberg advantage. Not because they are exciting, but because “we partitioned this wrong two years ago and cannot fix it without a rewrite” is a genuinely expensive sentence, and Iceberg is the one that lets you avoid saying it.




From the community
Discussion on the Fediverse
Replies from Mastodon and Bluesky — straight from the open web, no tracking.
Loading replies …
No replies yet. Start the conversation:
Replies could not be loaded right now.