This is a really good question that gets to the heart of good design.
The data we want to analyse in data warehouse comes from the transactional systems that run the enterprise (HR, finance, CRM etc.)
Pulling that data together and turning it into information for analysis is the job of the warehouse and, in creating a warehouse, we face essentially four problems:
- The data is in incompatible formats
- It is usually of poor quality
- It is dispersed in different systems
- It is not structured for analysis.
To cure these ills we use extract, transform and load (ETL) routines to move data into a data warehouse. The extraction and transformation processes address the incompatibility and data quality issues. Plus, placing the data in a single warehouse removes the dispersal problem.
We can either structure the warehouse for analysis (as Teradata does) in which case there need be no data marts. However, data marts are often employed and typically contain subsets of data from the warehouse, organized to provide a particular analytical view and delivered to groups or individuals in an organization. For example, a mart of marketing data could be provided for the advertising department and one of staff data to the HR department.
So, even if you have a warehouse you don't have to use data marts. Equally, it is possible to create marts without a warehouse. You can put the data from a particular system, a finance system for example, into a data mart and structure the data for analytical purposes.
Once you understand the problems that warehouses and marts are designed to address, it is much easier to decide which you need.
This was first published in June 2009