Architecture Series

Data Lakehouse: The Best of Both Worlds

Understand the Data Lakehouse architecture — how it unifies the scalability of data lakes with the governance and performance of data warehouses through open table formats.

The Data Lakehouse emerged as the architectural answer to a fundamental tension: data lakes offered unlimited scale and flexibility but lacked governance; data warehouses offered governance and performance but were rigid and expensive. The Lakehouse converges both into a single, unified platform.


Overview

A Data Lakehouse adds a transactional metadata layer on top of low-cost object storage (ADLS, S3, GCS) to deliver:

  • Warehouse-grade ACID transactions and schema enforcement
  • Lake-scale storage with support for all data types (structured, semi-structured, unstructured)
  • Unified platform for SQL analytics, data science, ML training, and streaming
🏗️ Core Philosophy
One platform. One copy of data. Warehouse reliability at lake economics.

The Architecture

┌──────────────────────────────────────────────────────────────┐
│                    WORKLOADS                                  │
│  BI / SQL Analytics │ Data Science / ML │ Streaming / RT     │
└─────────────────────┬────────────────────────────────────────┘
┌─────────────────────▼────────────────────────────────────────┐
│              OPEN TABLE FORMAT LAYER                          │
│       Delta Lake  │  Apache Iceberg  │  Apache Hudi          │
│  (ACID, Schema evolution, Time Travel, Versioning)           │
└─────────────────────┬────────────────────────────────────────┘
┌─────────────────────▼────────────────────────────────────────┐
│              OBJECT STORAGE (Low-cost, Unlimited Scale)       │
│           ADLS Gen2  │  Amazon S3  │  Google GCS             │
└──────────────────────────────────────────────────────────────┘

The open table format layer is the key innovation. It adds a transaction log that tracks every change to the dataset, enabling ACID properties on top of otherwise immutable object storage.


Open Table Formats

Delta Lake

Originally developed at Databricks and now open-source under the Linux Foundation.

Key capabilities:

  • ACID transactions via a _delta_log/ transaction log
  • Scalable metadata handling for tables with billions of files
  • Time Travel: query any historical version of a table
  • Z-Order Clustering: co-locate related data to speed up queries
  • Liquid Clustering: automatic, intelligent data layout optimisation (newer)
  • Schema enforcement and schema evolution
  • Unified batch and streaming reads/writes (via Structured Streaming)
-- Time travel: query data as it was 7 days ago
SELECT * FROM events TIMESTAMP AS OF date_sub(current_date(), 7);

-- Restore to a previous version
RESTORE TABLE events TO VERSION AS OF 5;

Apache Iceberg

Developed by Netflix and Apple; now a top-level Apache project.

Key capabilities:

  • Partition evolution: change partitioning strategy without rewriting data
  • Hidden partitioning: queries don’t need to filter on partition columns explicitly
  • Row-level deletes: efficient record-level updates/deletes using position-based delete files
  • Full snapshot isolation and time travel
  • Compatible with Spark, Flink, Trino, Dremio, and BigQuery
  • Strong multi-engine support — excellent for polyglot environments

Apache Hudi

Developed by Uber; designed for incremental data pipelines with upsert-heavy workloads.

Key capabilities:

  • Copy-on-Write (CoW): rewrites files on every update — optimal for read-heavy
  • Merge-on-Read (MoR): appends delta logs and merges at read time — optimal for write-heavy
  • Incremental query support — query only records changed since a given timestamp
  • Built-in indexing for fast upserts (Bloom filter, HBase index)
  • Native Spark and Flink integration

Comparison: Delta Lake vs Iceberg vs Hudi

FeatureDelta LakeApache IcebergApache Hudi
Primary StrengthDatabricks ecosystemMulti-engine compatibilityIncremental upserts
ACID Transactions
Time Travel
Schema Evolution✅ (+ partition evolution)
Row-level Updates✅ (MERGE)✅ (row-level deletes)✅ (native upsert)
Partition EvolutionLimited✅ FullLimited
Streaming Support
Best EcosystemDatabricks, SparkFlink, Trino, BigQuerySpark, Kafka CDC
Governance / CatalogingUnity CatalogIceberg Catalog (REST)Hudi Metaserver

Medallion Architecture in the Lakehouse

The Lakehouse naturally implements the Medallion Architecture:

LayerStorageContentTools
BronzeDelta/Iceberg tablesRaw ingested data, immutableADF, Autoloader, Kafka
SilverDelta/Iceberg tablesCleaned, validated, joinedSpark, dbt
GoldDelta/Iceberg tablesAggregated business metricsdbt, Spark SQL
💟 Production Note
The Medallion pattern is the universal starting point for any Lakehouse. Start with Bronze → Silver → Gold from day one, even if Gold is just a few basic aggregation tables. Retrofitting zone discipline onto an existing lake is significantly harder than establishing it upfront.

Strengths

StrengthDetail
ACID on Object StorageFull transactional reliability without a proprietary warehouse engine
One Copy of DataEliminates the “lake-to-warehouse” ETL hop and its associated latency/cost
Unified AnalyticsSQL, Python, Spark, ML — all on the same data
Schema EvolutionAdd columns, change types without downtime or data rewrites
Time TravelAudit, debug, and reproduce historical data states
Cost EfficiencyOpen format on commodity object storage — no vendor lock-in
Streaming + BatchSame table used for real-time ingestion and batch analytics

Limitations

LimitationImpact
Small File ProblemStreaming ingestion creates many small files; requires compaction jobs
Metadata OverheadTransaction logs grow with every write; requires periodic vacuuming
Operational ComplexityManaging compaction, vacuuming, and Z-ordering requires expertise
BI Tool SupportSome older BI tools don’t natively support Iceberg/Delta formats
Cold Query PerformanceFirst queries on large tables can be slower without proper clustering

Leading Platforms

PlatformTable FormatKey Offering
DatabricksDelta Lake (native)Unified analytics, MLflow, Unity Catalog
Apache Spark + DeltaDelta LakeOpen-source DIY lakehouse
Azure Synapse AnalyticsDelta Lake + IcebergIntegrated Azure ecosystem
AWS Lake Formation + GlueIceberg + HudiManaged AWS lakehouse
SnowflakeIceberg (external)Iceberg tables on S3/GCS with Snowflake compute
Google BigQueryIceberg (external) + BigLakeBigQuery over GCS with Iceberg
DremioIcebergQuery engine with Iceberg-native Arctic catalog

When to Choose a Lakehouse

Good fit when:

  • You want a single platform for BI, data science, and ML — without maintaining separate systems
  • You need ACID guarantees but can’t afford the cost of storing everything in a managed warehouse
  • Your data includes streaming + batch workloads on the same datasets
  • You value open formats and want to avoid warehouse vendor lock-in
  • You need schema evolution without painful migration scripts
  • Your team is comfortable with Spark/Python alongside SQL

Poor fit when:

  • Your organisation is entirely SQL/BI focused with no engineering team to manage Spark and compaction
  • You need sub-second query response for dashboards (managed warehouses still win here without tuning)
  • You’re a small team needing a simple, managed solution with minimal operational overhead