Reply
TallArnie
Frequent Visitor
Partially syndicated - Outbound

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

Syndicated - Outbound

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!




Syndicated - Outbound

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.

avatar user

Helpful resources

Announcements
March PBI video - carousel

Power BI Monthly Update - March 2025

Check out the March 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)