Introduction
This book serves as a consolidated and practical digest of the three Kimball books:
- The Data Warehouse Toolkit - Third Edition
- The Data Warehouse Lifecycle Toolkit - Second Edition
- The Data Warehouse ETL Toolkit
What is a Data Warehouse?
A Data Warehouse (DW) is a central repository designed to store integrated data from one or more disparate operational sources.
The operational systems are the software applications and underlying databases that run the day-to-day, minute-by-minute operations of a business. They are optimized to process transactions (inserting, updating and deleting data) quickly and almost always deal with one transaction record at a time.
Unlike operational databases, a data warehouse is optimized for fast and complex querying, reporting, and data analysis. It stores historical data and acts as the "single source of truth" for an organization.
What is Business Intelligence?
Business Intelligence (BI) refers to the front-end tools, applications, processes, and interfaces that business users interact with to analyze data and make decisions.
While the data warehouse is the backend storage and processing engine, BI represents the front-end where the data is consumed to gain actionable insights.
The DW/BI Synergy
In the Kimball methodology, you rarely hear the term "Data Warehouse" in isolation; instead, Kimball frequently uses the combined acronym DW/BI. This is because a data warehouse has no inherent value if its data cannot be easily consumed by business users.
The Data Warehouse provides the clean, structured, and historical data, while Business Intelligence provides the lens to view it. They are two halves of the same system designed to support decision-making.
Goals of a DW/BI System
These are the fundamental goals of a DW/BI system:
- Simple and Fast: Data must be intuitive and understandable for business users, not just engineers. Data labels should mimic the business's own vocabulary rather than obscure technical jargon. Furthermore, the BI tools must be easy to use, and the underlying database must return query results quickly, at the speed of the user's thought process.
- Consistency: Data must be credible. Data ingested from various operational sources must be cleansed, quality-assured, and released only when it is strictly fit for consumption. Furthermore, consistency demands that common labels, metrics, and definitions mean the exact same thing across the entire organization.
- Adaptability: The DW/BI system must gracefully handle evolving business needs and new data sources. Existing data and reports should not be disrupted when new features are added. Furthermore, when descriptive data must be modified, those changes must be systematically tracked and made transparent to the users.
- Timeliness: The system must present information in a timely way. Beyond just returning fast query results, the data itself must be made available as quickly as the business demands it - whether that means overnight batch processing for next-day analysis or near real-time availability.
- Security: It must be a secure bastion that protects the organization's information assets. While access controls must effectively secure confidential data, security must not create unnecessary friction that prevents legitimate users from easily accessing what they need.
- Single Source of Truth: It must serve as the authoritative and trustworthy foundation for improved decision-making. The system must act as the indisputable "single version of the truth" so users do not revert to relying on their own isolated spreadsheets and data silos.
- Business Acceptance: The business community must accept the DW/BI system to deem it successful. No matter how elegant the technical architecture is, if business users have not embraced the system to make decisions, the initiative is a failure.
An Example in Practice
TBD: Add a picture showing operational data sources + Snowflake Data Warehouse + SnowSight & Tableau as BI tools.
Operational Systems vs DW/BI
At the most fundamental level, the difference between these two systems can be summarized by the flow of data:
- Operational Systems are where data is put in. They are designed to create, capture, and record the day-to-day transactions of the business.
- DW/BI Systems are where data is pulled out. They are designed to extract, integrate, and analyze that recorded data to support decision-making.
Key Differences
| Feature | Operational Systems | DW/BI Systems |
|---|---|---|
| Primary Goal | Fast transaction processing (Data In) | Complex querying and reporting (Data Out) |
| Data Nature | Current, highly volatile (constantly updating) | Historical, relatively static (batch loaded) |
| Data Structure | Highly normalized (to avoid redundancy) | Dimensional/De-normalized (for intuitive querying) |
| Query Profile | Simple queries touching one or two records at a time | Heavy queries aggregating millions of records |
| User Base | Clerks, operational apps, automated systems | Managers, analysts, executives |
Beware of Pseudo Data Warehouses
A common and disastrous mistake is attempting to build a Data Warehouse by simply copying the exact tables and relationships from the operational database into a new reporting environment.
Because operational databases are highly normalized (data is fragmented across dozens of complex tables to make writing fast), they are incredibly difficult for business users to understand and painfully slow when running analytical queries. A true Data Warehouse must be restructured (usually dimensionally) to support fast and intuitive reading.
OLTP and OLAP
You will frequently hear operational systems referred to as OLTP (Online Transaction Processing) and DW/BI systems referred to as OLAP (Online Analytical Processing). While this shorthand is common, there is an important nuance:
- OLTP systems are heavily optimized for speed, data integrity, and high concurrency when writing data (inserting, updating, deleting). Almost all operational databases fall into this category.
- OLAP traditionally refers to specialized multidimensional databases (often called "OLAP cubes") optimized for reading and slicing aggregated data.
However, not all DW/BI systems are strictly OLAP. Modern cloud data warehouses (like Snowflake or BigQuery) often rely on columnar relational database structures rather than traditional multidimensional OLAP cubes to achieve massive analytical performance.
