Data Lakes and Lakehouses
Data lakes store large volumes of raw data in its original format for later processing, while lakehouses add a structured metadata and transaction layer on top so the same storage supports both analytics queries and machine learning workloads with warehouse-like reliability.
itData engineering and analytics | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic: Data Lakes and Lakehouses
A data lake is where varied data can wait before everyone agrees what it is for. It keeps events, tables, documents, images, and other stubbornly different things in shared storage. This is useful because forcing every source into one database before asking a question tends to produce either delay or a collection of heroic spreadsheets. Neither is a durable architecture.
A lakehouse adds the missing clerk behind the filing cabinets. The files remain in lake storage, but a table-management layer records which files form a table now. The memorable part is files below, tables above. Storage keeps objects. A file format, such as Parquet, arranges values inside one object. A table format records the valid state across many objects. A catalog helps people and engines find it. Compute reads and writes it. Five layers, because one layer was apparently too restful.
The surprise is that a directory full of Parquet files is not a transactional table. A snapshot is one committed table state, connected through manifest metadata to its data files. Writers prepare a change, then publish metadata atomically. Readers select a committed snapshot rather than trying to infer reality from a folder that is changing beneath them. That also makes retained historical states useful for investigation and rollback, although history remains only as long as retention policy preserves it.
This arrangement earns its keep when SQL, streaming, notebooks, machine learning, and business intelligence need governed analytical tables over shared storage. It does not repair inaccurate source events, decide business meaning, make every engine compatible, or appoint an owner. A lake can collect data with remarkable enthusiasm. Trust arrives later, through ownership, access control, quality checks, retention rules, and maintenance.
Read the Intro when the layer model and the lake-versus-warehouse decision need the full map. Use Slides for the relationships: files, metadata, catalogs, and engines. Keep the Cheatsheet nearby when a snapshot, manifest, partition change, or small-file problem appears in a design review. The useful next move is modest: follow one representative dataset through the layers and name the source of truth at each point. The architecture becomes less mysterious once every responsibility has an address.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.aws.amazon.com/whitepapers/latest/building-data-lakes/building-data-lake-aws.html
Supports
- Data lakes as centralized repositories for structured, semi-structured, and unstructured data
- Separation and independent scaling of cloud storage and compute
- Cataloging, security, in-place transformation, querying, and sharing as data-lake capabilities
- Raw, transformed, and curated storage layers
- https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf
Supports
- The lakehouse architectural definition and motivation
- A metadata, caching, and indexing layer over data files in open formats
- Transactions, versioning, and auxiliary data structures over data-lake files
- Support goals spanning SQL, data science, and machine-learning workloads
- Data-management challenges in two-tier lake and warehouse architectures
- https://parquet.apache.org/docs/overview/
Supports
- Parquet as an open source, column-oriented analytical file format
- Efficient storage and retrieval through compression and encoding
- Variation in feature support across Parquet implementations
- https://parquet.apache.org/docs/file-format/
Supports
- Parquet file layout using row groups and column chunks
- File metadata that locates column chunks
- Reader selection of required column chunks
- https://parquet.apache.org/docs/file-format/metadata/
Supports
- Per-file and page-header metadata in Parquet
- Metadata for navigating data within a Parquet file
- https://iceberg.apache.org/spec/
Supports
- Table metadata, snapshots, manifest lists, manifests, and data files
- Snapshots as representations of table state
- Metadata and file statistics used to avoid irrelevant reads
- Atomic metadata replacement as the basis for serializable isolation
- Optimistic concurrency for table commits
- https://iceberg.apache.org/docs/latest/
Supports
- Iceberg as an open table format for analytical datasets
- Schema evolution, hidden partitioning, partition evolution, and time travel
- Integration with multiple compute engines
- https://iceberg.apache.org/docs/latest/partitioning/
Supports
- Partitioning as grouping related rows to improve reads
- Hidden partitioning derived from logical source columns
- Separation of query logic from physical partition layout
- Evolution of partition schemes over time
- https://iceberg.apache.org/docs/latest/evolution/
Supports
- In-place schema and partition evolution
- Stable column identifiers for correct schema changes
- Coexistence of old and new partition layouts
- Partition evolution as a metadata operation without eager data rewrite
- https://iceberg.apache.org/docs/latest/fileio/
Supports
- Separation of processing-engine data writes from table metadata commits
- New metadata files capturing a changed table state
- File access abstractions across storage providers
- https://iceberg.apache.org/docs/latest/flink-maintenance/
Supports
- Small-file compaction, snapshot expiration, and orphan-file cleanup as table maintenance
- Scheduled and triggered maintenance operations
- Compaction that targets file layout and storage efficiency
- https://iceberg.apache.org/javadoc/latest/org/apache/iceberg/RewriteFiles.html
Supports
- File replacement that preserves the set of live table records
- Commit validation and conflict handling during file rewrites
- https://docs.delta.io/
Supports
- Delta Lake as an open source table-management layer over data lakes
- ACID transactions, schema enforcement, metadata handling, and time travel
- Streaming and batch table access
- Update, merge, and delete capabilities
- https://docs.aws.amazon.com/whitepapers/latest/building-data-lakes/securing-protecting-managing-data.html
Supports
- Fine-grained data-lake access control and protection requirements
- Separate permissions for catalog metadata and underlying stored data
- Central governance through catalog-integrated policy
- Encryption, access policy, and audit considerations
- https://docs.aws.amazon.com/prescriptive-guidance/latest/data-lake-for-growth-scale/reference-architecture.html
Supports
- A centralized catalog between data producers and consumers
- Standardized data sharing and independent scaling of producers and consumers
- https://aws.amazon.com/about-aws/whats-new/2006/03/13/announcing-amazon-s3---simple-storage-service/
Supports
- Amazon S3 launch on 14 March 2006
- Object storage as a cloud storage foundation
- https://hadoop.apache.org/bylaws.html
Supports
- Hadoop becoming an Apache top-level project in January 2008
- https://www.uber.com/gb/en/blog/apache-hudi/
Supports
- Hudi development at Uber in 2016
- Hudi open-sourced in 2017
- Hudi submitted to Apache Incubator in January 2019
- https://www.uber.com/en-CO/blog/apache-hudi-graduation/
Supports
- Uber operational account of inefficient snapshot-and-reload processing
- Hudi launch at Uber for transactional incremental updates at scale
- https://www.databricks.com/wp-content/uploads/2020/08/p975-armbrust.pdf
Supports
- Delta Lake provided to customers in 2017 and open sourced in 2019
- Delta Lake ACID table storage over cloud object stores
- Metadata and statistics used to identify table files and plan reads
- https://www.youtube.com/watch?v=5I5pqDsvGEc
Supports
- Databricks announcement of the Delta Lake open-source project in April 2019
- https://blogsarchive.apache.org/foundation/entry/the-apache-software-foundation-announces64
Supports
- Apache Hudi top-level project announcement on 4 June 2020
- Hudi development at Uber in 2016 and open-source release in 2017
- https://hudi.apache.org/blog/2021/07/21/streaming-data-lake-platform/
Supports
- Lake-storage metadata listing can be less performant than a metadata service
- Hudi timeline server as a metadata-serving path
- https://www.databricks.com/
Supports
- Databricks placement in the lakehouse platform landscape
- https://docs.snowflake.com/en/user-guide/tables-iceberg
Supports
- Snowflake Iceberg tables over external storage
- Snowflake and external catalog options
- Maintenance and support boundaries for Iceberg tables
- https://www.dremio.com/
Supports
- Dremio placement in the lakehouse query-engine landscape
- https://aws.amazon.com/lake-formation/
Supports
- AWS Lake Formation placement in the lake governance landscape
- https://hudi.apache.org/
Supports
- Apache Hudi as an open data lakehouse platform with open table format and table services
