Forum Discussion

HSpeelman's avatar
HSpeelman
Frequent Visitor
3 years ago
Solved

Best Practice Solution Architecture using dataflows and datasets

Hi,   I am wondering what the best approach would be where my customer would have a data warehouse and they want to use power BI. Their only source is the data warehouse, and there are several area...
  • m_alireza's avatar
    3 years ago

    Hi HSpeelman ,

    When you mentioned Datasets -> Reports, do you mean every report will just have its own dataset? Or  are you referring to a shared dataset? (i.e. you create one 'master' published dataset and then multiple reports connect to that one dataset via live connection...)

    This article explains the problems of having every report connected to a different dataset and recommends the concept of a golden dataset (i.e. shared dataset):
    https://exceleratorbi.com.au/new-power-bi-reports-golden-dataset/

    I believe this works fine for small organisations. However, once you grow larger, our team personally found issues with the golden dataset approach as well. It soon became unmanageable as more tables were added. Refresh times were becoming too slow. Also, if one developer was using the golden dataset, no one else could access it so it was inefficient. 

    Due to that, we decided to go for a data flow -> dataset -> report model. 
    This provided us with the following benefits:
    1) multiple developers can work on different data flows at the same time (for example, one person can work on the 'contracts' data flow, another on the 'cost' data flow) 
    2) We could control refreshes better. For example, refreshing cost data flow every 3 hours, but' contract data flow only once a month, etc. 

    I think data flows are useful if you have the same table (like a  master date table) that you want to use across multiple reports.
    This article explains the data flow -> dataset -> report architecture quite well: 
    Power BI Architecture for Multi-Developer - RADACAD 

    so I dont think there is a one size fits all approach to this. It really depends on the organisation size, how Power BI is governed there, etc. 

    But I think those two articles will give you a good basis as to whether you should go for a shared dataset approach vs data flow - > dataset approach or neither and just stick with each report having its own dataset.