Cloud

Iceberg vs Delta Lake vs DuckLake in 2026: Picking an Open Table Format

TuniCyberLabs Team
7 min read

Iceberg, Delta Lake and DuckLake take three different approaches to lakehouse metadata. How their designs, engine ecosystems and lock-in profiles compare in 2026, plus a practical rubric for choosing one.

The table format you pick decides how transactional your data lake is, which engines can query it, and how hard it is to leave your vendor. In 2026 the realistic shortlist is Apache Iceberg, Delta Lake, and the newer DuckLake, three formats with genuinely different metadata designs and lock-in profiles.

What is an open table format, and why does the choice matter in 2026?

An open table format is a specification layered over Parquet files in object storage that adds ACID transactions, schema evolution, time travel and safe concurrent writers. The choice matters because it determines which query engines, catalogs and vendors can read and write your data. It is the deepest lock-in decision in a lakehouse.

Plain Parquet directories fail quietly: no atomic commits, no consistent reads during writes, expensive file listings, and schema drift nobody notices until a dashboard breaks. Table formats fix this with versioned metadata, which is why a single copy of data on S3 or MinIO can now serve Spark, Trino, Snowflake, ClickHouse and DuckDB simultaneously. Apache Hudi still exists and is maintained, but most new evaluations in 2026 have narrowed to the three formats compared here. The stakes rise as AI workloads push more critical data into lakehouses; the retrieval-quality arguments in RAG and Data Engineering in 2026: Your AI Is Only as Good as Your Data all assume a consistent, queryable lake underneath.

How does Apache Iceberg structure its metadata?

Iceberg stores metadata as files beside the data: a root metadata JSON per table, manifest lists per snapshot, and manifests listing data files with column statistics. A catalog holds a single pointer per table and swaps it atomically on commit. Any engine speaking the Iceberg REST catalog API can plan queries against that tree.

Strengths and costs of this design:

  • Engine-neutral by construction. The spec is Apache-governed, and the REST catalog API has become the closest thing the lakehouse world has to a standard interface.
  • Rich statistics enable pruning. Manifests carry per-column min and max values, so engines skip files without opening them.
  • Format v3, finalized in 2025, added deletion vectors, row lineage and a variant type for semi-structured data. Check per-engine support before relying on v3 features.
  • Maintenance is your job. Snapshot expiry, orphan-file cleanup and manifest compaction must run somewhere; neglected Iceberg tables accumulate thousands of small metadata files and planning slows down.
  • High-frequency small commits contend. Optimistic concurrency retries hurt when many writers commit to one table every few seconds.

How is Delta Lake different under the hood?

Delta Lake keeps an ordered transaction log, JSON commit files plus Parquet checkpoints, inside the table directory itself. Readers reconstruct table state by replaying the log. No external catalog is required for correctness, but concurrent writers need an atomic commit primitive on the object store, historically the fiddly part on S3.

What that means in practice:

  • Gravity sits with Databricks and Microsoft. Delta is the native format of Databricks and of Microsoft Fabric's OneLake; inside those platforms it is the frictionless choice.
  • The log-in-directory model is simple and robust for single-writer and Spark-centric pipelines, and checkpoints keep log replay fast.
  • UniForm narrows the interop gap. Delta tables can emit Iceberg-compatible metadata alongside the delta log, letting Iceberg readers consume Delta tables, read-only and with feature caveats worth verifying.
  • Non-JVM writers exist but trail. The delta-rs implementation for Rust and Python covers common paths; parity with the Spark writer is not guaranteed for newer features such as liquid clustering.
  • Governance is Linux Foundation, direction is one vendor. The project is open source, but the roadmap overwhelmingly follows Databricks priorities.

What does DuckLake do differently with a SQL catalog?

DuckLake, published by the DuckDB team in 2025, moves all table metadata out of object-store files and into an ordinary SQL database such as SQLite, PostgreSQL, MySQL or DuckDB, while data remains Parquet on object storage. Commits are plain SQL transactions, which makes multi-table ACID and low-latency planning straightforward.

The consequences are bigger than they sound:

  • Cross-table transactions. Iceberg and Delta commit per table; DuckLake can commit a change spanning many tables atomically because the catalog is one database.
  • No metadata file explosion. Thousands of manifest files become rows in indexed tables, and query planning is a SQL lookup, typically milliseconds.
  • Data inlining. Small inserts can be stored directly in the catalog database and materialized to Parquet later, which suits frequent tiny writes that would degrade an Iceberg table.
  • Young ecosystem. The reference implementation is the DuckDB ducklake extension; third-party engine support is thin, and the spec iterated quickly through 0.x versions in 2025. Verify current stability and migration guarantees before committing production data.
  • The catalog is a dependency. Your Postgres now sits on the query path and needs the same HA and backup discipline as any OLTP database.

Which engines and vendors support each format in 2026?

Iceberg has the broadest neutral support: Spark, Flink, Trino, Snowflake, BigQuery, Redshift, ClickHouse, DuckDB and Databricks can all read it, and most can write it. Delta is strongest inside Databricks, Microsoft Fabric and Spark. DuckLake is DuckDB-first today, with interop paths to Iceberg rather than native third-party writers.

Details that change decisions:

  • Read support is not write support. Many engines read all three formats tolerably; the write path, meaning compaction, deletes and streaming upserts, is where maturity diverges. Verify writer capability per engine and version.
  • Catalogs are part of the ecosystem question. Iceberg has multiple independent open catalogs, including Apache Polaris, Lakekeeper and Nessie, plus Glue and Unity Catalog; Delta leans on Unity; DuckLake's catalog is the SQL database itself.
  • Translation layers exist. Apache XTable (incubating) converts metadata between Iceberg, Delta and Hudi, and UniForm bridges Delta to Iceberg readers. Both help read-side interop; neither makes dual-writing safe.
  • The market signal. Databricks acquiring Tabular, the company founded by Iceberg's creators, in 2024 pushed the industry toward Iceberg as the interchange layer even where Delta remains the internal format.

Which format minimizes lock-in?

Iceberg, on current evidence. It is Apache-governed, independently implemented by multiple competing vendors, and its REST catalog API decouples tables from any one platform. Delta is open source but effectively single-vendor in direction. DuckLake is fully open, yet has one dominant implementation, so practical portability remains narrower for now.

Lock-in hides in three places beyond the format itself:

  • The catalog. An open table behind a proprietary catalog with proprietary auth is not portable in practice. Prefer catalogs you can self-host and export, such as Polaris, Lakekeeper or Nessie, or verify export paths from managed ones.
  • Engine-specific features. Liquid clustering, vendor-only indexes and proprietary table properties quietly bind tables to one engine.
  • Egress and residency. A format is only as portable as your ability to move or re-home the data. Formats over object storage let the same tables run on MinIO or Ceph on-premises, exactly the flexibility argued for in Sovereign Cloud and EU Data Residency in 2026: An Engineering Playbook and priced out in When to Repatriate: A FinOps Decision Framework for Steady-State Workloads.

Cheap insurance: once a quarter, read your critical tables from a second engine and time the exercise. If the exit does not work in a drill, it does not exist.

How should you decide between Iceberg, Delta Lake and DuckLake?

Decide by engine gravity first, then team scale. Databricks or Fabric shops should default to Delta with UniForm enabled. Multi-engine estates running Trino, Snowflake, Spark or ClickHouse should default to Iceberg with an open REST catalog. Teams living in DuckDB and Postgres at sub-ten-terabyte scale can get real leverage from DuckLake today.

A compact rubric:

  • Choose Iceberg when more than one engine must write, you want vendor-neutral governance, or you are building a platform meant to outlive current tooling choices.
  • Choose Delta when Databricks or Fabric is the center of gravity and you want the least friction there, and enable UniForm so Iceberg readers are not locked out.
  • Choose DuckLake when the workload is analytics at small-to-mid scale, writes are frequent and small, and you already run Postgres. Its operational simplicity is a genuine feature, not a compromise.
  • Whatever you pick, feed it with idempotent ingestion, for example CDC streams as described in Change Data Capture in Practice: Debezium, Kafka, and the Outbox Pattern, and schedule table maintenance, meaning compaction, snapshot expiry and vacuum, from day one.

How TuniCyberLabs helps

TuniCyberLabs builds lakehouse and data platforms on EU-resident infrastructure: format and catalog selection, Iceberg and Delta deployments, CDC ingestion, DuckLake pilots for smaller estates, and migrations off proprietary warehouses, with security and data residency reviewed as part of the design rather than after it. Explore our cloud and data engineering services.

TAGS
Apache IcebergDelta LakeDuckLakeLakehouseOpen Table FormatsData EngineeringVendor Lock-In

Frequently Asked Questions

Is DuckLake ready for production use in 2026?

+

For small-to-mid analytical estates with good backups, cautiously yes; for large multi-engine platforms, not yet. The reference implementation is the DuckDB ducklake extension, third-party engine support is thin, and the specification iterated quickly through 0.x releases in 2025. Verify the current spec version, migration guarantees and your catalog database's high-availability story before committing critical data.

Can I migrate between Iceberg and Delta Lake later?

+

Read-side interop is workable today: Delta's UniForm emits Iceberg-compatible metadata, and Apache XTable (incubating) translates metadata between Iceberg, Delta and Hudi. A full write-side migration is a real project involving metadata rewrites, pipeline revalidation and sometimes data file rewrites. Plan for it as insurance, but pick your primary format as if migration were expensive, because it is.

Do I need a separate catalog to run Iceberg?

+

Yes. Iceberg's commit protocol depends on a catalog that atomically swaps the pointer to the current table metadata file. Options include Apache Polaris, Lakekeeper, Nessie, AWS Glue and Unity Catalog. The catalog choice affects portability as much as the format does, so prefer one you can self-host or verify a clean export path from a managed one.

Which table format works best with DuckDB?

+

DuckLake is native: the ducklake extension gives DuckDB full transactional read-write access with metadata in SQLite, Postgres, MySQL or DuckDB itself. DuckDB also reads Iceberg and Delta through extensions, with write support and feature coverage that has been expanding release by release. Check the current extension documentation for the versions you run before assuming parity.

Is Delta Lake open source or Databricks-proprietary?

+

Delta Lake is open source under the Linux Foundation, and the format specification is public. In practice the roadmap and most contributions come from Databricks, and newer features often land in the Databricks platform before open-source engines support them. That is not lock-in by license, but it is single-vendor gravity worth weighing against Apache-governed Iceberg.

What happened to Apache Hudi, and should it be on the shortlist?

+

Hudi remains an active Apache project with strengths in streaming upserts and incremental processing, and teams with existing Hudi expertise can keep building on it. For new platforms in 2026, most evaluations narrow to Iceberg, Delta and now DuckLake because engine and vendor support consolidated around them. Consider Hudi when its incremental-processing model matches your workload precisely.

Need help with
this topic
?

Our team specializes in the technologies and strategies discussed in this article. Let’s talk about how we can help your business.

Get in Touch