Start with the job the data must do

Imagine a small online service that collects orders, application events and customer-support messages. The team wants a weekly revenue report, but it may also want to investigate user journeys or analyze message text later. Those tasks do not place the same demands on data. A revenue report needs consistent definitions and dependable queries. Exploratory work benefits from keeping detailed records, even when their future use is unclear.

A data warehouse, data lake and lakehouse are three ways to organize data for such work. The names describe architectural approaches, not guarantees about a particular product. Each can be implemented well or poorly, and many organizations use more than one. The useful question is not “Which is newest?” but “Where will raw data live, where will it become trustworthy, and who needs to query it?”

Data warehouses: structure for repeatable answers

A data warehouse stores data prepared for analysis, commonly in tables with defined columns and relationships. Data from operational systems is copied or loaded into it, cleaned and modeled into useful concepts such as customers, orders and daily sales. Analysts can then use SQL to answer recurring questions without rebuilding the same joins and definitions each time.

This approach suits dashboards, scheduled reports and shared business metrics. If “revenue” has an agreed meaning, a warehouse model can apply it consistently. The tradeoff is that preparing data takes work. New sources may require changes to loading pipelines and models before they are easy to use. Warehouses can retain detailed data, but loading every event, file and document without a clear purpose may increase complexity and cost.

For the online service, a warehouse might hold an orders table, a customer table and a daily sales summary. That gives the team a stable place to ask, “How many orders were completed last week?” It does not necessarily need to hold every application log line or support attachment.

Data lakes: flexibility for varied inputs

A data lake is a place to store large amounts of data in files, often using object storage. It can accommodate structured tables, event records, logs, images and other formats. Data may arrive before the team has decided exactly how to analyze it. Instead of forcing everything into a shared table model at ingestion, users can apply structure when they process or query the files.

That flexibility is useful for exploration, archival and workloads that need detailed source records. The online service could keep raw application events and support exports in a lake, then build new analyses from them as questions emerge. A lake is not automatically inexpensive or easy to use, however. Storage is only one part of the cost; processing, movement and maintenance matter too.

Without ownership and basic controls, a lake can become difficult to navigate. Teams need to know what each dataset contains, when it was updated, whether it includes sensitive information and which version to trust. A folder full of files does not provide those answers on its own.

Lakehouses: file-based storage with managed tables

A lakehouse aims to combine the flexible, file-based storage associated with lakes and some of the table-management capabilities expected from warehouses. Typically, data remains in files while an additional table layer tracks information such as schema and file changes. Depending on the implementation, that layer can support reliable updates, concurrent work and queries against consistent table versions.

This can help when a team wants to keep detailed data in one storage environment while serving both exploratory and repeatable analytical workloads. For example, the online service might retain raw events, transform them into a managed events table and publish a curated sales table for reporting. The stages still have different purposes, even if they share an underlying storage platform.

A lakehouse does not remove the need for modeling or governance. Someone must still define metrics, test transformations, control access and manage data quality. Capabilities also vary across tools, especially when different query engines read or write the same tables. Before adopting one, check how the chosen tools handle updates, permissions and compatibility.

Choose a starting point, then design the data flow

If the main need is dependable reporting on well-understood business data, a warehouse is often a straightforward starting point. If the team primarily needs to retain varied raw inputs for later exploration, a lake may be appropriate. If it needs file-based storage alongside managed analytical tables, a lakehouse may fit. These are starting hypotheses, not rules: workload, team skills, existing systems and operational effort all affect the choice.

Sketch a simple flow before selecting tools: source systems feed a raw area; transformations produce cleaned datasets; curated tables support reports or applications. For each stage, decide who owns it, how errors are detected, how long data is retained and who may access it. Keep sensitive fields out of broad-access datasets where possible.

Finally, test a small real workload. Load one representative source, build one trustworthy metric and run one exploratory query. Measure the effort to correct bad records and explain results to another team member. An architecture earns its place when people can use it reliably, not merely when it can store the data.

Back to category ↗