Iceberg vs. Delta Lake
Question
How would you compare Apache Iceberg and Delta Lake for a lakehouse table?
Short interview answer
Both add transactional table semantics over data files such as Parquet: versioned table state, atomic commits, concurrent-write handling, and historical versions. Iceberg manages table state through metadata and manifests, while Delta Lake uses a versioned transaction log. The choice depends on engine ecosystem, catalog and governance needs, and operational fit.
Detailed answer
Both formats solve the same problem: this is only a folder of files, not a table with transactions.
s3://analytics/orders/
part-001.parquet
part-002.parquet
part-003.parquet
Neither file name says which files belong together after an update, which version a reader should use, or how two writers avoid overwriting one another.
Both formats add a versioned definition of the table, but they record it differently:
Iceberg Delta Lake
------- ----------
metadata/v17.metadata.json _delta_log/00000000000000000017.json
metadata/snap-17.avro _delta_log/00000000000000000018.json
data/part-001.parquet part-001.parquet
data/part-002.parquet part-002.parquet
In an Iceberg table, metadata files and manifests describe the current snapshot. In a Delta Lake table, the transaction log records the ordered changes that produce the current version. In both cases, a writer creates data files first and then publishes one new table version.
Imagine a company where the same orders table must be read and written by Spark jobs, Trino analysts, and Flink streaming jobs. I would test the exact versions of those engines and catalogs against both formats. The winning format is the one all of those tools can operate reliably, including schema changes, maintenance, and concurrent writes.
On the other hand, if a team already runs a platform with mature Delta Lake operations and the main writers and readers are in that ecosystem, Delta Lake may reduce operational friction. If broad interoperability across engines and catalogs is the key constraint, Iceberg may fit better. The point is not “Iceberg always wins” or “Delta always wins”; it is to choose the table format that matches the platform the team actually runs.