Skip to content

Data Warehouse

When revenue in the sales report doesn't match the finance report, the data usually has no common home. We build data warehouses from scratch and move grown ones to the cloud.

The data is spread across ERP, CRM, the online shop and spreadsheets, and every analysis gathers it again from scratch. Depending on the source, a different number comes out. What applied before the last reorganization often can’t be reconstructed.

A data warehouse is the answer to that: a central database that exists only for analysis. The source systems keep recording transactions and orders. The warehouse loads a cleaned copy on a schedule, keeps the history and makes it available for reports, analyses and AI. The semantic model with the metrics sits on top of it; how it is built is covered under data modeling.

When a warehouse pays off

At the latest when reports need data from several systems and someone merges it by hand. Other signs are reports that run directly on the production database and slow it down, numbers that differ from report to report because each carries its own logic, and a current system that only one person still understands. With a single source, a BI tool can connect directly, and a warehouse would be overkill.

This is how we separate it from the data lakehouse. The warehouse holds structured, prepared data for reporting. For most companies whose data comes mainly from ERP, CRM and shop, it is the simplest solution. Raw files, logs, documents or training data for AI are more a case for the lakehouse, which has its own page. The two can be combined.

Three layers, so errors have a fixed place

We build a warehouse in layers. First come the raw data, taken over from the sources unchanged. That looks like wasted space but is the insurance: if something goes wrong in processing, we recompute without touching the source again.

The second layer cleans. Types are aligned, duplicates removed, keys matched. This is where the unified view of customers, products and orders is created. The third layer is the business layer. It is modeled for analysis, usually as facts and dimensions, and BI tools and metric models read from here.

In the Databricks world the stages are called bronze, silver and gold, known as the medallion architecture. What they are called doesn’t matter. They have to be cleanly separated.

Loading, transforming, keeping history

Data used to be transformed before loading (ETL), usually in a separate tool. In cloud warehouses ELT has become the norm: load raw first, then transform inside the warehouse. The compute power is already there, and the raw data stays available for later questions. How data gets out of the sources is a topic of its own, covered under data pipelines.

We maintain the transformations as SQL code in a repository, usually with dbt. The code is versioned, tested and runs automatically. It stays traceable who changed what and when, and several people can work in parallel. Wherever possible, only what is new or changed gets processed, not the whole data set every night.

History is handled with slowly changing dimensions. When a customer changes region, you can overwrite the old value (type 1), or the old record stays with a validity period and a new one is added (type 2). Type 2 is the standard when reports should also show the state at the time, such as the revenue of a region before the reorganization. Every tracked field costs storage and maintenance, so we agree with the business teams which fields really need it.

Data Vault or dimensional model

For the layer between raw data and business view there is Data Vault. It separates business keys (hubs), relationships (links) and descriptive attributes with their history (satellites). New sources or fields can be added without reworking existing structures, and every change stays traceable. The price is considerably more tables and more effort in modeling and loading.

We recommend it for many sources, frequent changes and strict audit requirements. With a manageable number of sources, a classic dimensional model is simpler and faster to finish. A common mix is Data Vault at the core with dimensional models on top for reporting.

Which platform

Modern cloud warehouses separate storage from compute. Both scale independently, and you only pay for compute while data is loaded or queried. The choice depends less on feature lists than on the surroundings: which cloud is already in house, what can the team operate, where may the data live, and how is it billed, by data scanned, by compute time or by reserved capacity? With moderate data volumes, a classic database such as PostgreSQL is often enough.

Moving out of a grown warehouse

Many companies still run a warehouse on an on-premises database or in SAP BW that has grown over the years. A move to the cloud makes sense when hardware would have to be replaced, load runs no longer fit the time window, or new requirements such as AI can’t be met. We work in steps: an inventory of load processes and reports first, then a target picture, then the move in topic blocks with parallel operation and a comparison of the numbers.

Most often this fails because everything is copied one to one. Old logic that nobody understands simply moves along. It is better to review it and simplify where possible. Just as common is the old system that keeps running because nobody set a shutdown date, until two systems are being maintained. And without an owner for each metric, conflicting definitions survive in the new system too. Unplanned queries and overly frequent load runs also drive up consumption, which is why budgets and monitoring are in place from the start.

Tests on every load

A warehouse is only useful if people believe the numbers. That is why automated tests run on every load. Are the keys unique? Are required fields missing? Does every order have a customer? Are totals within the expected range, did the data arrive on time, and do the totals match the source system?

If a test fails, the error is reported. The faulty data then either doesn’t reach the reports or is clearly flagged. Broader rules on ownership, catalog and access belong to data governance.

What you get

  • One number per metric

    Every report reads from the same cleaned copy of the source systems instead of its own extract.

  • Past states stay available

    When a customer's region changes, the earlier value is kept with its validity period.

  • Tests before the report

    Automated checks run on every load and hold back faulty data before anyone sees it.

  • Costs you can plan

    Load frequency, queries and budgets are considered from the start, so the cloud bill holds no surprises.

Platforms & tools

We are not tied to any vendor and work with what is already running in the company. The list is a selection.

  • Snowflake
  • Google BigQuery
  • Microsoft Fabric Warehouse
  • Databricks SQL
  • Amazon Redshift
  • Azure Synapse Analytics
  • SQL Server
  • Oracle
  • PostgreSQL
  • SAP BW
  • dbt

How we work

  1. Collect sources and questions

    Which systems deliver data, which reports exist already, and what should the warehouse be able to answer? That decides what gets loaded first.

  2. Choose platform and modeling

    Data volume, number of sources and the skills in the team decide platform, layers and modeling approach.

  3. Build topic by topic

    We load, transform and test one area after another, sales first for example, and put it into production early.

  4. Hand over

    We document the architecture, train the team and, if wanted, support operations and further development.

Frequently asked questions

What is a data warehouse?
A data warehouse is a central database built for analysis. It collects data from different source systems, cleans it and keeps it ready for reports and analyses. It is not meant to run day-to-day business operations.
When do you need a data warehouse?
Usually once data from several systems has to be combined, data needs to stay traceable over time, or many reports rely on the same figures. With a single source, a BI tool can also connect to it directly.
What is the difference between ETL and ELT?
With ETL, data is transformed outside the data warehouse before it is loaded. With ELT, it is loaded raw first and transformed inside the warehouse. On cloud platforms ELT is the usual choice today, because the compute power is already there and the transformations can be maintained as version-controlled code.
Which cloud data warehouse is the right one?
That depends on the existing systems, the skills in the team and the data protection requirements. If you already work deep inside one cloud ecosystem, you are usually well served there. We are vendor-neutral.
Can we move our old data warehouse to the cloud?
Yes, and it is a common reason for a project. The data is loaded into the new environment step by step, the reports run in parallel for a while, and only then is the old system switched off. It is worth revising old logic along the way instead of carrying it over unchanged.
What does running a cloud data warehouse cost?
Costs usually consist of storage and compute, and depend heavily on how often data is loaded and queried. Planned loading, economical queries and monitoring of consumption keep them in check. Actual amounts depend on the vendor and your usage.
What is the difference between a data warehouse and a data lakehouse?
A data warehouse holds structured, prepared data for reporting. A lakehouse keeps data in open file formats and also covers unstructured data, data science and AI. The two can be combined.