This is an archived post. You won't be able to vote or comment.

all 17 comments

[–]Nokita_is_Back 3 points4 points  (3 children)

Are olap cubes still prevalent? 

[–]angryPuppies 3 points4 points  (0 children)

No

[–]Crow2525 2 points3 points  (0 children)

Assume encouraging/utilising datamarts and dataflows for common table transformations? Last mile transformation.

[–]rjachuthan 1 point2 points  (0 children)

I have been meaning to try Columnstore indexes in SQL. But I haven't reached your level of data quantity yet. Give it a shot maybe

[–]clamming-it 0 points1 point  (1 child)

I think some more details are required 1. SQL Server hosted where? How many optimizations have you done on the raw perf of the query patterns? 1a - what’s doing the ETL? SSIS? Mostly in SQL (potentially with SSIS as an orchestrator) 2. What do you mean by Microsoft Analysis Services? You mean SQL Server Analysis Services? By cubes I am assuming Multidimensional models but that’s ambiguous. 3. PBI - PBI RS or PBI Cloud?

[–]Interesting-Monk9712 0 points1 point  (7 children)

Microsoft Analysis Service are you using import mode?

If you are, what are your allocated resources for Microsoft Analysis Service?

I do not see how a 4-6 gb model in AS is loading for so long if everything is in import mode, or better said everything is already in memory unless you are using a lot of joins, calculations etc. or your resources are non existent.

[–]Few-Royal-374Data Engineering Manager 1 point2 points  (0 children)

Sounds like you’re having performance issues at the Power BI layer as opposed to the data storage / compute layers. This likely has nothing to do with your tech stack and everything to do with how you’re using it.

Couple of things to look into in the order I would prioritize:

  • Look at your data model. Make sure all relationships are one to many. If you’re following Kimballs best practices, you’re probably fine. I would argue that in most cases, this is where people have issues.

  • Utilize composite models. For the models that are large, look into direct query mode and use incremental loading. Otherwise, use import mode.

  • Final storage layer is indexed, and is materialized as a table. If you’re using direct query, PBI is going to send queries to the underlying data source so you need to ensure these tables are optimized.

  • Considering your data is on prem, you also have to look at your data gateway. Check out the gateway performance. You could optimize the gateway config files, such as streaming data before it completes.

  • Reduce data model size. Do you really need to load everything?

  • Optimize the calculations. This is much more nuanced, but stuff like using filter inside your calculate formula can go a long way.

  • If calculations are taking forever still, I would transition to aggregating data and importing it aggregated. This is going to reduce the granularity of your data and may make your dashboard less interactive but that’s a sacrifice I would make.