Skip to main content
Data Platform

Delta Lake vs Apache Iceberg: Which Table Format to Choose

Every mid-market industrial business that builds a lakehouse makes this decision, and most make it by accident — somebody picks a platform, the platform has a default, the default becomes the format, and nobody writes it down. This is not an engineering preference. It is the one decision that determines who can read your data without your current vendor's permission.

Amit Kumar Singh - Technology Consulting Partner at MyData Insights

Technology Consulting Partner · MyData Insights

14+ years in industrial data · Former Accenture & EY · India, GCC, SEA

19 August 2026 · 14 min read

The bottom line

An open table format turns a folder of Parquet files into a database table with ACID transactions, schema evolution, versioned history and safe concurrent writes. Delta Lake keeps an ordered transaction log; Apache Iceberg keeps a metadata tree with a catalogue pointer. As at August 2026 the two are broadly interoperable for reading and largely not for writing — that single asymmetry is the sentence to take to a CFO: you will always be able to read your data with another vendor's engine. In a Microsoft Fabric estate the format is Delta, written by default across every workload, with Iceberg read through virtualisation. The real lock-in is never the format — it is pipelines, semantic models, RLS and capacity config, none of which is portable.

A decision most businesses make by accident

Somebody picks a platform, the platform has a default, the default becomes the format, and nobody writes it down. That is why this is not an engineering preference. It is the one decision in a lakehouse build that determines who can read your data without your current vendor's permission.

The reason this article needed rewriting in 2026 is that the interoperability layer has moved faster than almost anything else in the data stack. The stakes are materially lower than they were two years ago — but the decision still has to be defended to a CFO who suspects it is a lock-in choice dressed as a technical one.

What an open table format fixes that Parquet does not

An open table format is a publicly specified metadata layer that turns a folder of Parquet files into a database table. It adds ACID transactions, enforced schema with schema evolution, versioned history and time travel, and safe concurrent writes. Bare Parquet is a file layout — it stores columns efficiently and nothing else.

Both formats fix all four the same way: by keeping an authoritative record of which files constitute the table at each committed version, and refusing to let a reader see anything not yet committed. This is also what keeps a lake from degrading into a data swamp.

How Delta Lake and Apache Iceberg actually work

Delta Lake keeps an ordered transaction log — numbered JSON commit files in a _delta_log folder beside the data — where each commit lists the Parquet files added and removed. The table is not the folder; the table is the log. Delta Lake 4.1.0 (01-Mar-2026) brought full production support for catalog-managed tables, moving commit coordination to a catalogue rather than relying on atomic file operations in object storage.

Apache Iceberg keeps a metadata tree: a table metadata file points to a snapshot, which points to a manifest list, which points to manifests and finally data files. The atomic act of committing is swapping a single pointer in a catalogue from the old metadata file to the new one. Iceberg has always required a catalogue to be correct, not merely convenient — which is why the Iceberg REST Catalog specification, not the file format, became the real battleground between vendors.

Delta Lake vs Apache Iceberg: side by side

Delta LakeApache Iceberg
Metadata structureOrdered JSON commit log plus checkpointsMetadata file → snapshot → manifest list → manifests → data
Commit mechanismOptimistic concurrency; catalog-managed commits GA in 4.1.0Atomic pointer swap; catalogue mandatory
StewardshipCreated at Databricks; Linux FoundationCreated at Netflix; Apache Software Foundation
Partition evolutionVia liquid clustering (3.1.0+); no partition-spec rewriteSupported directly in spec; existing data not rewritten
Schema evolutionAdd/rename/drop; rename needs column mappingColumn identity by ID; add/drop/rename/reorder safe
Small-file handlingOPTIMIZE, V-Order in Fabric, auto-maintenancerewrite_data_files and snapshot expiry
Latest direction4.1.0: catalog-managed, atomic CTAS, deletion vectorsv3: deletion vectors, row lineage, VARIANT, geospatial
Native homeMicrosoft Fabric, OneLake, Azure DatabricksSnowflake, AWS, Google Cloud, Dremio, Starburst
Cross-format accessReadable by Iceberg via UniForm — read-onlyReadable as Delta in OneLake — read-only

Where the differences actually show up in operation

In day-to-day operation the differences appear in four places, and none of them decides the platform on its own. Partition evolution is Iceberg's clearest structural advantage — the partition spec can change without rewriting existing data, where Delta addresses the same need through liquid clustering. Schema evolution is clean in both for added columns; renames in Delta require column mapping to be enabled.

Small files and compaction degrade both formats under frequent small writes — the normal shape of MES, SCADA and telematics ingestion — so both need scheduled maintenance. Concurrency uses optimistic detection at commit in both. These are operational realities to plan for, not decision criteria.

Which engines can read your data in five years?

Engine support is the question that decides the format for most businesses. Delta Lake has documented connectors for Apache Spark, Trino, Starburst, Presto, Amazon Redshift Spectrum, Snowflake, Google BigQuery and Apache Flink, and is the native format of Microsoft Fabric and Azure Databricks. Iceberg is natively written by Snowflake, AWS, Google Cloud, Dremio and Starburst.

The honest summary is that both formats are readable nearly everywhere and natively writable in fewer places. Microsoft states that Fabric uses Delta Lake as its universal storage format across all workloads and that OneLake stores all data as Delta Parquet by default. If your estate is already Microsoft-committed, this is not a close call.

Both formats are readable nearly everywhere and natively writable in fewer places. Engine support, not metadata elegance, is what decides the format for most mid-market estates.

Interoperability: what changed, and the residual risk

As at August 2026, Delta Lake and Apache Iceberg are broadly interoperable for reading and largely not interoperable for writing. Delta tables can be exposed to Iceberg clients through Delta UniForm and catalogue endpoints; Iceberg tables can be read as Delta in OneLake through metadata virtualisation. That single asymmetry is the sentence to take to a CFO: you will always be able to read your data with another vendor's engine.

PathStatus as at August 2026
Delta read by Iceberg clients (UniForm)Read-only; needs column mapping; not on tables with deletion vectors
Delta in Unity Catalog read by IcebergRead yes, write no
Iceberg on Databricks (managed)Read and write; GA 28-May-2026
Iceberg read as Delta inside FabricIceberg V2 supported; V3 reading in development
Fabric tables over Iceberg RESTMetadata read operations only
Delta read by Snowflake (Delta Direct)Read-only; max 1,000 commit files per refresh

Underneath the vendor plumbing, the specifications are converging. Iceberg v3 adopted deletion vectors using the same binary encodings across formats and row lineage compatible with Delta Lake's row tracking, while Delta 4.1.0 moved commit coordination into catalogues — matching Iceberg's model.

What this means inside a Microsoft Fabric estate

In Microsoft Fabric, OneLake writes Delta Parquet by default across every workload, and reads Apache Iceberg through metadata virtualisation rather than storing it natively from Fabric compute. For a buyer already committed to Fabric the position is straightforward: your format is Delta — warehouse, lakehouse, pipelines, Dataflows Gen2 and Power BI all land in Delta Parquet in OneLake. Iceberg data is welcome as an input — Snowflake on Azure can write Iceberg tables into a OneLake Files folder via an external volume, and a shortcut presents them as Delta to every Fabric workload.

The virtualisation has hard edges. Source tables must have fewer than 5,000 commits for conversion to occur; metadata generation takes between five seconds and two minutes; and Microsoft advises keeping updates to the source table less frequent than once every two minutes. Delta feature support inside Fabric is also not uniform across engines — liquid clustering is read-only in several, Python notebooks use delta-rs rather than the Spark reader and writer, and some Delta 4.x features are not yet universal.

Where this breaks: what choosing a table format does not fix

Cross-format access is read-only, and that is the lock-in that remains. Every interoperability path gives a foreign engine read access, not write. But the format is not the lock-in that will actually cost you — pipelines, orchestration, semantic models, row-level security definitions, notebooks and capacity configuration are not portable in either format.

Interoperability features carry version and volume limits that are easy to breach — Iceberg V3 tables are not yet readable through OneLake's virtualisation. Neither format fixes data quality: ACID guarantees a write either fully happened or did not, nothing more. Maintenance is real work in both — compaction, snapshot expiry and vacuum need a named owner. And time travel is bounded by retention, and retention costs money.

How to decide, and what to do first

Four rules, applied in order — most businesses stop at rule one. If your platform has a native format, use it (Fabric writes Delta). If you are genuinely multi-platform with two writers, choose by who writes — the format follows the engine that owns the write. If you are choosing the platform now, choose on cost, skills and serving requirements, not on the format. And if a vendor tells you the format decision is irreversible, ask which specific write path they mean — the read paths are documented and dated.

Answer these four this week, before anyone opens an architecture tool:

  • How many engines will write to your analytical tables — not read, write? If the answer is one, this decision is nearly free
  • Which non-Microsoft consumer will need this data in the next 24 months — a customer, a 3PL partner, an auditor, a data science team? Name it
  • What is your update frequency per table? Anything under two minutes rules out relying on OneLake cross-format virtualisation for that table
  • Who owns table maintenance — compaction, retention, snapshot expiry — after go-live? Name a person, not a team

Question four decides more outcomes than the format does. We build these estates on Microsoft Fabric, OneLake and Power BI, with Power Automate and Copilot Studio closing the loop from insight to action.

One question settles most of this: how many engines will write to your analytical tables. If the answer is one, the format decision is nearly free — use your platform's native format and spend the saved argument on data quality and maintenance ownership instead. Book 30 minutes with Amit — no slides, no pitch deck, no obligation to proceed.

Free Assessment

Where does your operation sit on the data maturity curve?

8 questions. 3 minutes. You get a scored breakdown across data infrastructure, analytics readiness, and automation potential — with a specific next step for your industry.

Data PlatformDelta LakeApache IcebergMicrosoft FabricLakehouse

Your Data · Our Technology · Our Automation

Get practical insights every fortnight

Amit writes about Microsoft Fabric, Power BI, AI in operations, and digital transformation for manufacturing and supply chain leaders. Practitioner perspective - no fluff, no vendor spin.

No spam. Unsubscribe any time. Also on Substack.

FAQ

Common questions

Which is better, Delta Lake or Apache Iceberg?

Neither is better in the abstract. Iceberg has the stronger partition-evolution story and broader native support outside Microsoft; Delta Lake is the native format of Microsoft Fabric and Azure Databricks with wide read support. The right answer follows your platform, not the format specification.

Does Microsoft Fabric support Apache Iceberg?

Yes, through metadata virtualisation rather than as a native write format. OneLake generates virtual Delta metadata for Iceberg tables and virtual Iceberg metadata for Delta tables, currently supporting Apache Iceberg V2 with V3 reading in development.

Can Snowflake read Delta Lake tables?

Yes, read-only. Snowflake’s Delta Direct feature creates an Iceberg table over Delta transaction logs and Parquet files in an external volume, processing a maximum of 1,000 Delta commit files per refresh.

Is Delta Lake locked to Databricks?

No. Delta Lake is a Linux Foundation project with documented connectors for Apache Spark, Trino, Starburst, Presto, Amazon Redshift Spectrum, Snowflake, Google BigQuery and Apache Flink, and it is Microsoft Fabric’s native format.

What is Delta UniForm?

Delta Universal Format lets Delta tables be read by Apache Iceberg and Apache Hudi clients. Delta Lake generates the foreign metadata asynchronously after each Delta write commits. It is read-only from an Iceberg perspective and requires column mapping.

Will Delta Lake and Iceberg merge into one format?

Not formally, but they are converging at the data layer. Iceberg v3 adopted deletion vectors using the same binary encodings across formats and row lineage compatible with Delta’s row tracking, and Delta Lake 4.1.0 moved commit coordination into catalogues, matching Iceberg’s model.

Continue Reading

Related Articles

Data Platform

Microsoft Fabric vs a Legacy BI Stack (SSIS + SSAS + Power BI): The Migration Case

The most common estate I walk into is not a mess. It is an on-premises SQL Server, a set of SSIS packages built between 2014 and 2019, one or two SSAS cubes, and Power BI bolted on the front. It runs. Finance closes on it. The reason I get called is a symptom — the person who wrote the packages left, the overnight batch now finishes at 07:20 and the plant meeting is at 07:30. "It is old" is not a business case.

16 min read

Data Platform

Microsoft Fabric vs SAP Datasphere: Which One Do You Actually Need

The SAP account team says the analytics answer is SAP Datasphere, because that is where the business semantics already live. Two weeks later the Microsoft team says Fabric, because that is where Power BI, the MES extracts and the 3PL feeds already live. Both are internally consistent, and neither mentions the other except to dismiss it. The IT Head is asked to pick, and picks badly — because the two products solve different halves of one problem.

16 min read

Data Platform

The Hidden Costs of a Microsoft Fabric Migration Nobody Tells You About

The awkward conversation happens in month five, not month one. The platform works. The first three reports are live. Then the finance business partner circulates the actual run-rate against the approved business case, and the number is 30–50% over — not because the partner overran, but because six or seven cost lines were never in the case at all. I sell Fabric implementations. This names the costs my own proposals have to cover.

15 min read

Want to see how MDI solves this in your industry? Explore industry solutions

Is this the challenge you're facing?

Book a 30-minute call. We'll look at your specific operation and tell you what's achievable - plainly and without slides.