This content originally appeared on DEV Community and was authored by Bharath Prasad
When working with data warehouses, one question comes up often: how do we give context to raw numbers? That’s where dimensions come in. They provide the “who, what, where, and when” around facts.
For example, a sales figure of ₹50,000 on its own doesn’t mean much. Add product type, customer details, and location — suddenly the number tells a story.
In any data warehouse, there are two key table types:
Fact Table → Stores the actual numbers like sales, revenue, or quantity.
Dimension Table → Stores descriptive details such as product name, customer ID, region, or time.
Common Types of Dimensions
Here’s a quick breakdown of the major dimension types you’ll see in real-world projects:
Conformed Dimension – shared across multiple reports (like Date or Customer).
Junk Dimension – groups small indicators (payment status, return flag).
Degenerate Dimension – no separate table, lives in fact table (e.g., invoice number).
Role-Playing Dimension – one dimension used in multiple roles (Order Date, Ship Date).
Slowly Changing Dimension (SCD) – tracks changes over time (customer address history).
Snowflake Dimension – normalized into sub-tables (Product → Category → Department).
Outrigger Dimension – linked to another dimension (Store → Region).
Inferred Dimension – placeholder row created when some data is missing.
Why It Matters
Dimensions aren’t just theory — they’re how industries build reports, dashboards, and decision systems. From e-commerce tracking customer behavior to healthcare monitoring patient records, dimensions make analytics possible.
If you’re exploring data engineering or analytics, practicing dimension design is a great starting point. For hands-on learning, check out Learning Labb and try building your own data models.
This content originally appeared on DEV Community and was authored by Bharath Prasad