Problem
Teams keep a data lake for raw and ML data and a separate warehouse for BI, copying data between them. This duplicates storage, delays freshness and splits governance.
Also known as: data-lakehouse, open-table-format-architecture
Combine cheap object-storage data lakes with warehouse-style transactions and SQL using open table formats.
Teams keep a data lake for raw and ML data and a separate warehouse for BI, copying data between them. This duplicates storage, delays freshness and splits governance.
A lakehouse puts a transactional metadata layer over files in object storage so that one copy of data serves SQL analytics, streaming and machine learning. It addresses the weaknesses of plain lakes: no atomic writes, no schema enforcement, no safe updates.
Writers add Parquet files and then commit a new table version by atomically appending to a log or swapping a metadata pointer. Readers pick a snapshot and see a consistent set of files.
table/
data/part-0001.parquet ...
_log/000012.json (adds: part-0007, removes: part-0003)
reader: snapshot = latest log version --> list files --> scan
This yields ACID commits, row-level MERGE, schema evolution, and time travel to earlier snapshots for audit or rollback. Statistics in metadata allow file skipping, and clustering or partitioning limits scans. Engines such as Spark, Trino and Flink access the same tables through a shared catalog.
Medium - object storage plus compute engines
Medium - compaction, vacuum, catalog
Medium - table format concepts
Too many small files degrade scan performance
Concurrent writers conflict and retry repeatedly
Vacuum removes files still needed by long readers