⌘+k ctrl+k
1.5 (current)
Search Shortcut cmd + k | ctrl + k
Lakehouse Formats

Lakehouse formats, often referred to as open table formats, are specifications for storing data in object storage while maintaining some guarantees such as ACID transactions or keeping snapshot history. Over time, multiple lakehouse formats have emerged, each one with its own unique approach to managing its metadata (a.k.a. catalog). In this page, we will go over the support that DuckDB offers for some of these formats as well as some workarounds that you can use to still use DuckDB and get close to full interoperability with these formats.

DuckDB Lakehouse Support Matrix

DuckDB supports Iceberg, Delta, Lance and DuckLake as first-class citizens. The following matrix represents what DuckDB natively supports out of the box through core extensions.

  DuckLake Iceberg Delta Lance
Extension ducklake iceberg delta lance
Read
Write
Deletes
Updates
Upserting
Create table
Create table with partitions
Attaching to a catalog *
Rename table
Rename columns
Add/drop columns
Alter column type
Compaction and maintenance
Encryption
Manage table properties
Time travel
Query table changes

* Through the unity_catalog extension.

DuckDB aims to build native extensions with minimal dependencies. The iceberg extension for example, has no dependencies on third-party Iceberg libraries, which means all data and metadata operations are implemented natively in the DuckDB extension. For the delta extension, we use the delta-kernel-rs project, which is meant to be a lightweight platform for engines to build delta integrations that are as close to native as possible.

Why do native implementations matter? Native implementations allow DuckDB to do more performance optimizations such as complex filter pushdowns (with file-level and row-group level pruning) and improve memory management.

© 2026 DuckDB Foundation, Amsterdam NL
Code of Conduct Trademark Use