DP-750 · 3.1.7 · Prepare and process data
Choose granularity
Choose granularity on a column or table based on requirements
Set row and column granularity from the business event being modeled and the detail consumers actually need.
Define what one row means
- 1Business processWhat event or entity is modeled?
- 2Row grainWhat exactly does one row represent?
- 3KeyWhat uniquely identifies that row?
- 4MeasuresWhat aggregates correctly at this grain?
Grain is the real-world level represented by one row. An order-line table is one row per item in an order, not one row per order.
Avoid mixed grain
Consistent
- Rows
- Same business level
- Measures
- Aggregate correctly
- Keys
- Clear
Mixed
- Rows
- Different levels
- Measures
- Risk double counting
- Keys
- Ambiguous
Keep detailed facts at their natural grain, then create aggregate tables or views for summarized consumption.
Grain determines keys
Choose the business key only after row meaning is explicit.
Key points
- Row grain: Defines what one row represents
- Column grain: Keep fields at consistent semantic detail
- Aggregation: Higher grain reduces detail and storage
- Keys: Must uniquely identify the chosen row grain
Exam trap
Mixing multiple row grains in one fact-like table creates ambiguous measures and duplicate-looking data.
Sources · 1 Microsoft Learn page Show ▾
Checked on October 4, 2026. Report a problem
Go deeper on Microsoft Learn
Checked against Microsoft Learn on October 4, 2026. Report a problem with this card