Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
TallArnie
Frequent Visitor

Create single-column dimension or leave in fact table?

My question is whether I should separate out single-column dimensions into a dimension tabel or whether to leave them just as-is in the fact table?

 

I have a list of >1M water assets: pumps, valves, tanks, etc, and one of the fields is its operational status: "In Use", "Abandoned", "Demolished", "Future", "Mothballed" (and more). This field is going to be used a slicer in my Power BI report.

Should I split this field off into a seperate dimension table, given that that dimension table would only have two columns: primary key and the aforementioned descriptions?

 

I understand the concepts of Star Schema and all that, and the rule of thumb that "fact tables contain data you aggregate on, dimension tables contain data you filter on". At the same time, I also understand that the Power BI engine would create some sort of lookup under the bonnet for such low-cardinality fields anyway, therefore would be pointless and actually having a separate dimension table would create (minor) additional overhead.


So, in the end: is there any reason why I should create single-column dimension tables? 

(and would you call this a degenerate dimension or is that something slightly different?)

2 REPLIES 2
Idrissshatila
Super User
Super User

Hello @TallArnie ,

 

I would made a dimension table with one column of values and a column for key and used the key in the fact table.

since when you refresh, instead of refreshing several characters per row which are the words, its better to refresh 1 or 2 character per row as a key.

 

check the normalization part in this article https://learn.microsoft.com/en-us/power-bi/guidance/star-schema

 

If I answered your question, please mark my post as solution, Appreciate your Kudos 👍

 

Follow me on Linkedin

 

 



Did I answer your question? Mark my post as a solution! Appreciate your Kudos
Follow me on LinkedIn linkedIn
Vote for my Community Mobile App Idea

Proud to be a Super User!




Thank you @Idrissshatila 

 

All my data is currently in a flat CSV file, with the operational status being one of the columns. And  re-reading/refreshing that data will only need to be done on an occasional basis.
Leaving it as-is means I don't need to do anything to this column in Power Query, whilst moving it into a dimension table means I would need to split it off and generate a key. I am not sure if refreshing the latter would be faster than the former.

Helpful resources

Announcements
Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.