
A data warehouse stores cleaned, structured data organised for reporting, while a data lake stores raw data of any kind, structured or not, to be shaped later. Most growing businesses need a warehouse, or even just a replica of their database, long before they need a lake. Choose based on the questions you must answer, not on fashion.
Key takeaways
- A warehouse is for trusted, structured reporting; a lake is for large volumes of raw or varied data.
- Many small companies are well served by spreadsheets or a read-only copy of the production database.
- A warehouse pays off when data lives in several systems and people argue about whose number is right.
- ELT and modern cloud tools have made warehouses easier, but governance and cost control still need attention.
- Avoid over-engineering: start with one question, one source and one dashboard, then grow.
The definitions in plain English
Data warehouse
Think of a warehouse as a well-organised library. Data is collected from your systems, such as the website, CRM, accounting and orders, then cleaned and arranged into tables with agreed definitions, like "customer" and "order". Analysts and dashboards query it quickly and get consistent answers.
Data lake
A lake is more like a large storage room where everything is dropped in its original form: files, logs, images, exports and raw event streams. It is cheap and flexible for storage, but someone must work out the structure when they use the data.
Lakehouse
A lakehouse is a newer approach that tries to combine the two: lake-style storage with warehouse-style tables and management on top. It is worth knowing the term, but it is rarely where a growing business should begin.
Structured vs unstructured data
Structured data fits neatly into rows and columns: orders, invoices, customers and inventory. Unstructured data does not: emails, PDFs, call recordings, images and free-text notes. Semi-structured data, such as JSON from an app, sits between them.
Most business reporting uses structured data, which is why the warehouse is the usual first step. Lakes become more relevant when you hold large volumes of logs, media or machine data, or when data scientists need raw material for models.
Schema-on-write vs schema-on-read
These two phrases capture the real difference.
- Schema-on-write (warehouse). You decide the structure before loading. Data is checked and cleaned as it goes in. Reports are fast and consistent, but changing the structure takes planning.
- Schema-on-read (lake). You store first and decide the structure when you read it. This is flexible and good for exploration, but quality problems can surface late, and different people may interpret the same file differently.
Neither is better in general. Warehouses favour trust and repeatability; lakes favour flexibility and volume.
ETL vs ELT
Both describe moving data from sources into a destination.
- ETL extracts data, transforms it on the way and loads the finished result.
- ELT extracts and loads the raw data first, then transforms it inside the warehouse using its processing power.
ELT is popular with cloud warehouses because raw data remains available if your definitions change, and transformations can be managed as code. ETL still makes sense when you must remove sensitive fields before data lands anywhere. Our guide on data pipelines for growing companies covers how these pipelines are built and monitored.
When a spreadsheet or replica is enough
Do not build infrastructure you do not need. You may be fine with simpler options when:
- You have one main system and your questions are about that system.
- Data volumes are modest, and reports run without slowing the application.
- A few people maintain a handful of reports, and the definitions are not disputed.
A spreadsheet fed by exports can carry a small business a long way. The next step is often a read-only replica of the production database, so reports do not slow down the live application. Take care with permissions, and keep heavy analytical queries away from the main database.
When a warehouse pays off
A warehouse starts to earn its keep when several of these are true:
- Data lives in multiple systems, such as website, CRM, finance and inventory, and you need to combine it.
- Different teams report different numbers for the same metric.
- Reports are built manually every month and take hours.
- You need history that source systems do not keep, such as past states of a record.
- Dashboards are slow or break the live application.
A warehouse gives you one place for agreed definitions. It supports questions like "which marketing channels produce the most profitable customers?" that no single system can answer alone. Our analytics and BI dashboard product and our data analytics service are built around this kind of work.
When a lake makes sense
A lake becomes useful when you collect large volumes of raw or varied data, such as application logs, sensor readings, documents or media, and you do not yet know how it will be used. It also suits machine learning teams who need raw data to experiment. For many growing companies, a modest cloud storage bucket holding raw exports, feeding into a warehouse, is as much "lake" as they need.
Governance and cost control
Whichever you choose, govern it from the start.
- Ownership. Name an owner for each dataset and each key metric definition.
- Access. Give people the least access they need, and mask personal data where possible.
- Quality checks. Test for missing values, duplicates and sudden changes, and alert on failures.
- Documentation. Keep a plain-language data dictionary.
- Retention. Decide how long to keep data and how to delete it; privacy rules differ by country, so ask a qualified adviser.
- Cost. Cloud warehouses often charge for storage and for compute used by queries. Set budgets and alerts, schedule heavy jobs sensibly, avoid selecting everything from huge tables and review expensive queries. Our guide to cloud cost optimisation has more habits that carry over.
Connecting your BI tool
The warehouse is only useful if people can see the results. Connect a BI tool, whether a commercial one or a custom dashboard, to curated tables rather than raw source data. Build a small set of trusted metrics first and keep calculations in the warehouse, not scattered across individual reports. Our post on choosing the right dashboard metrics shows how to pick measures that drive decisions.
A sensible migration path
- Pick one question. For example, revenue by channel and month.
- Identify the sources. Usually two or three systems.
- Load raw data with a managed connector or a simple script, and keep it unchanged.
- Model it. Build clean tables with agreed definitions.
- Connect a dashboard and compare it with the existing numbers to build trust.
- Add sources and questions gradually, with documentation and tests.
People and skills
You need someone who understands both the business and the data: an analyst or analytics engineer at the least, with engineering support for pipelines and security. Small teams can use a consultancy or partner at the start and move to a hybrid arrangement. Be realistic about ongoing maintenance, since pipelines break when source systems change.
Avoiding over-engineering
- Do not adopt a lakehouse, streaming platform and machine learning stack for a handful of reports.
- Do not move everything at once; migrate by question.
- Do not skip definitions: technology cannot settle an argument about what "active customer" means.
- Do not forget to switch off unused resources and old copies.
A worked example
Imagine a growing online retailer with a website platform, a payment provider, an email tool and an accounting system. The founder wants a monthly view of profit by channel, but the numbers come from four exports that never quite match. The team sets up a small cloud warehouse, loads the four sources, agrees definitions for "order" and "returning customer" and builds one dashboard. They keep raw exports in cheap storage, but do not build a full lake. Months later, when product browsing logs become important, they can extend the setup rather than start again. Our analytics dashboards and data pipelines use case follows a similar path.
FAQ
What is the main difference between a data warehouse and a data lake?
A warehouse holds structured, cleaned data organised for reporting, while a lake holds raw data in many formats, to be structured when it is used. Warehouses prioritise consistency; lakes prioritise flexibility and volume.
Do small businesses need a data warehouse?
Not always. If you have one or two systems and simple questions, spreadsheets or a replica of your database may be enough. A warehouse helps once data is spread across systems and people disagree about numbers.
Is a data lakehouse better than a warehouse?
It depends. A lakehouse suits organisations that need both raw data and managed tables at scale. For most growing businesses, a straightforward warehouse is simpler to run and understand.
How do I keep warehouse costs under control?
Set budgets and alerts, limit who can run heavy queries, schedule large jobs sensibly and remove unused tables and copies. Review the biggest costs regularly.
Related reading
- Data Pipelines 101: A Plain-English Guide for Growing Firms
- BI Dashboards: How to Choose Metrics That Drive Decisions
- Cloud Cost Optimisation: How to Reduce Your Cloud Bill Safely
Next steps
Write down the three decisions you most want data to support, list where the data lives and ask whether a replica or a small warehouse would do. If you would like a second opinion on your setup, contact us and we can talk through the options, and you can also read about our work for startups and SaaS companies.



