---
title: "Data lakehouse"
description: "A data lakehouse is an architecture that combines the low-cost, flexible storage of a data lake with the ACID transactions, schema enforcement, and performance features of a data warehouse."
canonical: "https://motherduck.com/glossary/data-lakehouse/"
related:
  - title: "DuckLake Architecture Deep Dive"
    url: "https://motherduck.com/blog/ducklake-architecture-deep-dive/"
  - title: "DuckLake | MotherDuck Docs"
    url: "https://motherduck.com/docs/concepts/ducklake/"
  - title: "Understanding DuckLake: A Table Format with a Modern Architecture | MotherDuck"
    url: "https://motherduck.com/videos/understanding-ducklake-a-table-format-with-a-modern-architecture/"
---

# Data lakehouse

> A data lakehouse is an architecture that combines the low-cost, flexible storage of a data lake with the ACID transactions, schema enforcement, and performance features of a data warehouse.

## Overview
A data lakehouse layers warehouse-like reliability on top of data-lake storage. Data still lives as files (typically Parquet) in cheap object storage such as S3, but an open table format adds a metadata layer that provides ACID transactions, schema enforcement and evolution, time travel, and efficient query planning — capabilities that plain files on a lake don't offer on their own.

<glossary-callout guide="ducklake-lakehouse-table-format-book-full" />

## The table format layer
The lakehouse pattern is possible because of open table formats: Apache Iceberg, Delta Lake, Apache Hudi, and newer entrants like DuckLake. Each tracks table metadata — which files make up a table, their schema, partitioning, and snapshot history — so multiple engines can read and write the same tables consistently. Iceberg and Delta store that metadata as JSON/Avro files alongside the data; DuckLake instead stores it in a transactional SQL database (DuckDB, Postgres, or SQLite), trading file-listing overhead for regular database transactions.

## Why it matters
Before the lakehouse pattern, organizations often ran two systems: a data lake for cheap storage of everything, and a separate data warehouse for governed, query-ready data — with expensive ETL pipelines copying data between them. A lakehouse lets a single copy of the data, in open formats, serve both raw storage and high-performance analytics, reducing duplication and staleness.

## DuckDB and the lakehouse
DuckDB can act as a query engine directly against lakehouse tables. The `iceberg` extension reads and writes Apache Iceberg tables, and the `delta` extension reads Delta Lake tables:

```sql
INSTALL iceberg;
LOAD iceberg;
SELECT * FROM iceberg_scan('s3://bucket/warehouse/orders');

INSTALL delta;
LOAD delta;
SELECT * FROM delta_scan('s3://bucket/warehouse/customers');
```

DuckDB is also the engine behind DuckLake, a lakehouse table format that stores catalog metadata in a SQL database rather than files, and is supported directly in MotherDuck.