What Is a Data Lake? Definition, Architecture & Benefits

The data lake inverts the oldest assumption in analytics: that you must decide how data will be used before you store it. A warehouse demands a schema up front; a lake stores everything in its raw form and defers structure to the moment someone reads it. That inversion, made affordable by cloud object storage, is why the pattern keeps growing. Mordor Intelligence’s 2026 forecast puts the data lake market at USD 22.8 billion in 2026, growing at 22.08% annually toward USD 61.84 billion by 2031, driven largely by the unstructured data that AI pipelines produce and consume.
This guide covers what a data lake is, why organizations adopt one, how it works, the architecture underneath, the deployment types and kinds of data it holds, how it compares to databases and warehouses, and its benefits, examples, and failure modes.
What is a data lake?
A data lake is a centralized repository that stores data at any scale in its native format: structured tables, semi-structured logs and JSON, and unstructured text, images, and audio, all side by side. Where a database or warehouse applies schema-on-write (data must fit a predefined structure before it lands), a lake applies schema-on-read: data lands as-is, and structure is imposed by whatever engine reads it, per query, per use case.
The term comes from James Dixon’s October 2010 blog post, written while he was CTO of Pentaho. His contrast was with the data mart: if a mart is bottled water, cleansed and packaged for easy consumption, the lake is the body of water in its natural state, which users can examine, dive into, or sample from. The analogy captures both the promise (nothing is thrown away or pre-flattened) and the risk (an unmanaged body of water is not automatically useful).
In practice, a modern data lake is cloud object storage (Amazon S3, Azure Data Lake Storage, Google Cloud Storage) holding open file formats such as Apache Parquet, described by a catalog, and queried by whichever engines the organization points at it.
Why do businesses need a data lake?
The case for a lake is a set of concrete pressures that a warehouse-only stack handles poorly.
Data arrives before its use is known. Clickstreams, sensor readings, application logs, and API payloads show up daily whether or not anyone has designed a schema for them. A lake lets an organization retain them cheaply now and decide what they mean later, instead of discarding data a future model or investigation will want.
Most new data is not tabular. Support transcripts, documents, images, and telemetry do not fit warehouse rows without lossy flattening. Machine learning teams in particular need the raw form: a fraud model wants the original event stream, not the daily summary a warehouse schema preserved.
One storage layer, many engines. A lake decouples producers from consumers. The same Parquet files can feed a Spark training job, a Trino ad-hoc query, and a warehouse’s external tables, so adopting a new engine does not mean migrating data into it.
Cost and retention. Object storage is priced low enough that keeping years of raw history, including history kept for regulatory reasons, stops being a budget decision and becomes a default.
The common thread is optionality. A warehouse stores answers to questions someone already asked; a lake stores the raw material for questions no one has asked yet, at a price that makes keeping it unremarkable.
How does a data lake work?
Mechanically, a data lake is a pipeline with three moving parts: getting data in, keeping track of what is there, and reading it back out.
Ingestion lands data in object storage through batch jobs (nightly exports, file drops), streaming pipelines (Kafka topics flushed to files), or change data capture from operational databases. Ingestion does not transform: the point is to write the data in its source shape, so nothing is lost to a premature modeling decision.
Cataloging records what landed. A metastore or catalog service (Hive Metastore, AWS Glue Data Catalog, or a table-format catalog) maps file paths to logical tables, tracks schemas and partitions, and gives query engines something to plan against. This step separates a lake from a pile of files; skipping it is how lakes fail.
Reading is where schema appears. A query engine consults the catalog, prunes to the relevant files and columns, and applies structure at read time. The same files can serve two teams two different shapes, because the structure lives in the query, not in the storage.
The design consequence worth internalizing: writes are cheap and permissive, and all the discipline (validation, modeling, quality) moves to layers built downstream of the raw data rather than gates in front of it.
Data lake architecture explained
Most production lakes, whatever the vendor, resolve to the same five layers.

The storage layer is cloud object storage, organized into zones of increasing refinement: raw data exactly as ingested, curated data cleaned and conformed, and consumption-ready data modeled for end use. The widely used naming for this progression is the medallion architecture, with bronze, silver, and gold layers; the names vary, but the discipline of never editing the raw zone in place is what preserves the lake’s replay value.
File and table formats determine what the bytes are. Columnar formats like Parquet make analytical scans cheap. On top of them, open table formats (Apache Iceberg, Delta Lake, Apache Hudi) add what raw files lack: ACID transactions, schema evolution, and time travel over collections of files. The differences among them are their own topic, covered in our comparison of Iceberg and Delta Lake.
The catalog and metadata layer maps files to tables and holds the schemas, statistics, and lineage that engines and governance tools depend on.
Processing and query engines do the actual work: Spark for transformation and ML, distributed SQL engines like Trino for interactive queries, and warehouse engines reading the lake through external tables. The engines are interchangeable precisely because storage, format, and catalog are open.
Governance and security span the rest: access control at table and column level, encryption, audit logging, and data-quality monitoring. In a warehouse these come built in; in a lake they are assembled, which is why this layer is where architectures most often fall short.
The layering explains the economics: storage is commodity-priced, formats and catalogs are open standards, and vendors compete almost entirely at the engine and governance layers.
Types of data lakes
Deployment is the axis on which lakes genuinely differ.
On-premises data lakes are the original form: HDFS clusters running the Hadoop stack. They persist where data residency or existing investment demands them, but the model couples storage and compute (scaling one means scaling both) and carries the operational burden the cloud generation shed.
Cloud data lakes are the current default: object storage plus managed catalogs and elastic engines. Storage and compute scale independently, durability is the provider’s problem, and the ecosystem of engines that read S3, ADLS, and GCS is the broadest available.
Hybrid and multi-cloud lakes keep data in more than one place, usually because regulation pins some data on-premises or the organization spans clouds. Open table formats make this workable; catalog federation and egress costs remain the friction.
A fourth pattern worth naming is the lakehouse, which is less a deployment type than a convergence: warehouse-grade transactions and governance implemented directly over lake storage, so one copy of the data serves both raw retention and modeled BI. Our guide to the data lakehouse covers it in depth.
What separates the deployment types is constraint, not capability: residency rules, existing investment, and how many clouds the organization spans decide where the storage sits, while the layers above it stay the same. A lake built on open formats can change its deployment answer later without changing its architecture.
Structured vs semi-structured vs unstructured data in a data lake
The lake’s defining capability is holding all three kinds of data, but each lands and becomes queryable differently.
Structured data has a fixed schema before it arrives: exports from operational databases, CSVs from SaaS systems, dimension tables. In the lake it is typically stored as Parquet under a table format and is queryable immediately with SQL; the lake serves here as cheaper, more open storage for data a warehouse could also hold.
Semi-structured data carries its structure with it, irregularly: JSON events, logs, Avro messages, XML. It lands in the raw zone as-is and becomes analytics-ready when a pipeline parses it into typed columns in the curated zone. This is the lake’s home-turf case, since evolving JSON is where schema-on-write hurts most; a new field added by an upstream service simply appears in the raw data instead of breaking a load job.
Unstructured data has no queryable internal structure at all: documents, images, audio, video. The lake stores the objects and the catalog stores metadata about them; the data becomes useful through processing (embedding models, transcription, feature extraction) whose outputs land back in the lake as structured tables. AI workloads made this tier matter, since model training and retrieval pipelines consume exactly this data.
The practical rule: the less structure data arrives with, the more the lake is the right first home for it, and the more downstream processing determines its value.
Data lake vs database vs data warehouse
The three systems are often presented as rivals; they are better understood as different answers to when structure gets applied and what workload the storage is tuned for.
The synthesis most stacks converge on is complementary: operational databases run the business, the lake retains everything cheaply in open formats, and the warehouse (or a lakehouse engine over the lake itself) serves modeled, high-concurrency analytics. The boundary between the last two is eroding from both sides: warehouses now read lake tables in place, and table formats give lakes warehouse-grade transactions. How the warehouse side of that convergence works is covered in our cloud data warehouse guide.
Benefits of using a data lake
Where the earlier business case was about pressures, the benefits are the architectural properties a lake buys.
Cost at scale. Object storage prices make retaining full-fidelity history a non-decision, which changes behavior: teams stop pre-aggregating to save space and stop deleting data that might matter later.
No premature modeling. Schema-on-read means ingestion never blocks on schema design, and no information is lost to someone’s guess about which fields would matter. The raw zone can always be reprocessed as understanding improves.
Engine and vendor optionality. Because storage, file formats, and increasingly catalogs are open, the engine is a swappable choice rather than a commitment. The same tables can serve Spark, Trino, a warehouse, and an ML platform concurrently.
One substrate for analytics and AI. BI and machine learning historically pulled from different stores; a lake gives both the same source, and keeps training data under the same governance as reporting data.
Durability and scale by default. Cloud object storage delivers very high durability and effectively unlimited capacity without cluster operations.
None of these benefits is automatic; each is realized only if the catalog, zoning, and governance layers described above actually get built. The lake’s advantages are structural, and so are its failure modes.
Examples of data lakes
Concrete stacks make the architecture less abstract. These are the patterns most commonly seen in production.
AWS. Amazon S3 as storage, AWS Glue as catalog and ETL, Athena for serverless SQL over the files, and Lake Formation for permissions. The reference pattern for cloud-native lakes.
Azure. Azure Data Lake Storage Gen2 as storage, queried through Synapse or, increasingly, Microsoft Fabric’s OneLake, which presents one logical lake across the organization in Delta format.
Google Cloud. Cloud Storage as the lake, with BigLake extending BigQuery’s engine and governance over Iceberg and other open-format tables in place.
Databricks. The lakehouse pattern in product form: Delta Lake tables on any cloud’s object storage, governed by Unity Catalog, serving engineering, SQL, and ML from one copy of the data.
Open-source self-managed. Iceberg or Delta tables on object storage, Spark and Trino as engines, a self-hosted catalog; the same architecture assembled from parts, common where teams want no platform dependency.
The pattern across all five is identical, which is the point: commodity object storage, an open table format, a catalog, and interchangeable engines. Choosing an example to copy is mostly choosing which layers you want managed for you.
Challenges and limitations of data lakes
The failure modes are as structural as the benefits, and worth planning for explicitly.
The data swamp. The canonical failure: years of files with no catalog, no ownership, and no documentation, where nobody can say what a dataset means or whether it is current. The cause is treating ingestion as the finish line; the prevention is mandatory cataloging, dataset owners, and quality checks at the curated-zone boundary.
Governance is assembled, not included. Access control, masking, audit, and lineage each need deliberate setup across catalog and engines. Regulated data in a weakly governed lake is a liability, not an asset.
Query performance trails a tuned warehouse. Schema-on-read pushes work to read time, and high-concurrency BI over raw zones disappoints. The standard answer is layering: curated, compacted, well-partitioned tables for hot paths, with table formats and caching closing much of the remaining gap.
Operational sharp edges. Streaming ingestion produces the small-files problem (thousands of tiny objects that slow every scan), and mutable data needs the compaction and transaction machinery of a table format. Lakes need maintenance jobs the way databases need vacuuming.
Relationship queries fit the stack poorly. One analytical shape deserves honest flagging: questions that traverse relationships across many hops, such as which accounts connect to a flagged entity through shared devices, or which services transitively depend on a failing component. In SQL over lake tables these become chains of self-joins with the depth guessed in advance, and cost climbs steeply per hop. The historical fix was a separate graph database fed by ETL, which reintroduces the silo and the second copy the lake was meant to end. PuppyGraph removes that step: it is a graph query engine that connects directly to lake and lakehouse tables (Iceberg, Delta Lake, and the warehouses alongside them), lets you define a graph schema over the existing tables, and queries them in openCypher and Gremlin with no ETL and no second copy. Teams at Coinbase, eBay, and AMD use this pattern; AMD builds a graph layer over an Apache Iceberg lake spanning tickets, code, logs, and telemetry.
None of these challenges argues against the lake; they define the engineering work that separates a lake from a swamp, and the newest of them are increasingly solved by layering the right engine over the same open storage rather than by moving the data again.
Conclusion
A data lake is a bet on optionality: store everything in raw, open formats at commodity prices, and let structure, engines, and use cases be decided later, repeatedly, without moving the data. The bet pays off only when the unglamorous layers (catalog, zones, governance, maintenance) are treated as part of the architecture rather than afterthoughts, and it compounds as the ecosystem adds engines that read the same tables in place: warehouses for SQL analytics, ML platforms for training, graph engines for relationship traversal. The storage decision, made once and made open, keeps every later decision reversible.
Try the forever-free PuppyGraph Developer Edition and book a demo with the team to see how openCypher and Gremlin queries run over warehouse and lakehouse tables, with no graph-specific ETL, adding relationship traversal to the open-format tables already in your lake.

