A company collects data from many places: its app, its payments, its website clicks, photos, log files. Somewhere that data has to be kept so people can analyse it. The three popular answers are a data warehouse, a data lake and a lakehouse. They are easiest to understand with a comparison from a shop.
- A warehouse is a tidy stockroom. Everything is sorted, labelled and shelved. You can find any item fast, but you had to organise it before it went in.
- A lake is a big storage shed. You can drop anything in, boxes, loose items, bags, without sorting. It is cheap and flexible, but you must work out what is in a box when you open it.
- A lakehouse is the shed with proper shelving and labels added, so you keep the flexibility and gain most of the order.
Structured tables.
Cleaned before it is loaded.
Snowflake, BigQuery, Redshift.
Any file, any shape.
Structure decided when reading.
S3, ADLS, Google Cloud Storage.
Lake files plus a table layer.
Transactions and fast SQL.
Delta Lake, Iceberg, Hudi.
Data warehouse
A data warehouse holds structured data in tables with fixed columns and types. Data is cleaned and shaped before it is loaded, a style called schema-on-write: the structure is decided when you write. It is built for one job: fast SQL queries and reports over a lot of data.
Examples are Snowflake, Google BigQuery, Amazon Redshift and Azure Synapse. If an analyst asks "revenue by city last quarter", a warehouse answers quickly because the data is already clean and organised for that. Its limits are that it is less natural for messy data such as images or free text, and that it can cost more to store everything in it.
Data lake
A data lake is cheap storage, usually cloud file storage such as Amazon S3, Azure Data Lake Storage or Google Cloud Storage. You can put anything in it: CSV and JSON files, logs, images, videos, raw copies of database tables. Nothing is cleaned on the way in, so the structure is decided later, when you read the data. That is called schema-on-read.
The flexibility is the strength. Data scientists like it because the raw material is all there, and it is cheap to keep years of history. The weakness is the one in the comparison: without discipline it turns into a "data swamp", a pile of files nobody can trust or find anything in. A lake on its own also lacks the safe updates and fast SQL a warehouse gives.
Lakehouse
A lakehouse tries to give you both. The data stays in the lake as open files, usually in a format called Parquet, and a layer on top, called a table format, adds what the lake was missing: tables with columns and types, safe updates and deletes (transactions), the ability to look at an older version of a table, and fast SQL. The best known table formats are Delta Lake, Apache Iceberg and Apache Hudi, and Databricks is the product most associated with the idea.
The goal is one copy of the data that serves everyone: analysts running SQL and data scientists training models, without copying data between a lake and a warehouse. In practice a lakehouse often organises its data into bronze, silver and gold layers, as in medallion architecture.
Side by side
| Data warehouse | Data lake | Lakehouse | |
|---|---|---|---|
| Data it holds | Structured tables | Anything: files, logs, images | Mostly tables, plus files |
| Structure decided | When writing (schema-on-write) | When reading (schema-on-read) | Both, with a table layer on top |
| Main users | Analysts, business reports | Data scientists, engineers | Analysts and data scientists |
| Query language | SQL | Needs an engine such as Spark | SQL and code |
| Safe updates and deletes | Yes | Not by default | Yes, from the table format |
| Cost of storage | Higher | Low | Low |
| Example tools | Snowflake, BigQuery, Redshift | S3, ADLS, GCS | Delta Lake, Iceberg, Hudi on a lake |
Which one should a beginner learn?
Start with the warehouse idea, because it is SQL and tables, which you need in every case. Learn the lake as "cheap file storage in the cloud", and the lakehouse as "a lake with tables". You do not have to pick one for life, since many companies run a lake for raw data and a warehouse for reporting, or a lakehouse that does both. The skills that carry over to all three are SQL, understanding file formats such as Parquet (see CSV vs JSON vs Parquet), and modeling data well, as in star vs snowflake schema.
An interview answer that works: "A warehouse stores structured, cleaned data for SQL analytics. A lake stores raw data of any type cheaply and decides the structure on read. A lakehouse adds table features such as transactions and schema to the lake, so one copy can serve both." Check the warehouse interview questions for more, and the Cloud Platforms track for the real services.