02-dimension-patterns

Guide dimension table design patterns for Gold layer data warehousing.

5|6|Updated Jan 26, 2026
One-click install
npx skills add https://github.com/databricks-solutions/vibe-coding-workshop-template --skill 02-dimension-patterns
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: 02-dimension-patterns
Source: https://github.com/databricks-solutions/vibe-coding-workshop-template/tree/main/data_product_accelerator/skills/gold/design-workers/02-dimension-patterns
Command: npx skills add https://github.com/databricks-solutions/vibe-coding-workshop-template --skill 02-dimension-patterns

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill addresses the complexity of designing robust and efficient dimension tables in a data warehouse by providing patterns for various scenarios, preventing common modeling pitfalls.

Core Features & Use Cases

  • Dimension Pattern Selection: Guides users on choosing the right pattern (role-playing, degenerate, junk, mini, outrigger, denormalized hierarchies) based on specific needs.
  • NULL Handling: Enforces best practices for handling NULLs in dimensions by using dedicated "Unknown" member rows.
  • Flag Management: Ensures low-cardinality flags are stored as textual attributes for better BI readability.
  • Use Case: When designing a dim_product table, this skill helps decide whether to flatten brand information directly or use an outrigger, and how to handle product types with vastly different attributes.

Quick Start

Apply the dimension design patterns to create a robust gold layer dimension table.

Frequently Asked Questions about 02-dimension-patterns

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the best way to handle NULL values in dimension tables?

Handle NULL values in dimension tables by using dedicated "Unknown" member rows. This enforces best practices for NULL handling in dimensional data warehousing, ensuring referential integrity and preventing BI reporting errors.

How do I choose between junk, mini, and outrigger dimensions for my gold layer?

Choose between junk, mini, and outrigger dimensions by evaluating your specific modeling needs. Use junk dimensions for low-cardinality flags, mini dimensions for rapidly changing attributes, and outrigger dimensions to normalize dimension hierarchies.

What is a role-playing dimension and when should I use it in data warehousing?

A role-playing dimension is a single dimension table referenced multiple times in a fact table using different foreign keys. Use it in data warehousing when the same dimension context applies to multiple business events, such as order date and ship date.

Should I flatten brand hierarchies directly or use an outrigger dimension?

Flatten brand hierarchies directly for simplified BI querying, or use an outrigger dimension to normalize data and reduce storage. The choice depends on whether you prioritize query performance or data normalization in your dimensional model.

How do I manage low-cardinality flags in a dimensional model?

Manage low-cardinality flags in a dimensional model by storing them as textual attributes. This approach improves BI readability and allows them to be grouped efficiently into junk dimensions for better gold layer organization.

What is a degenerate dimension and how does it fit into dimensional modeling?

A degenerate dimension is a dimension key that has no corresponding dimension table, typically stored as a transaction number in the fact table. It fits dimensional modeling by preserving control numbers without creating redundant gold layer tables.