Ever seen something like this ...?

The Power BI „Composite“-Modell ist da! (Derzeit Preview)

The community is in ecstatic euphoria, including me. We had burning desire for it, waited a long time, voted for it.

A milestone, a game changer.

And then why this title!?

Let's start at the beginning ...

Was ist „Composite“ überhaupt?

Die effizientes und schnellste Speicher- und Abfrageart ist die von Power BI selbst, nämlich „Tabular“ – die Daten liegen hoch komprimiert im Memory und sind somit schnell und sicher abzufragen und alle Relationen zwischen den Daten sind auch enthalten für rasche Filterung, dieses Tabular Modell ist das „Dataset“.
Auch wenn es zuvor einmal Datenbanktabellen waren oder Excel-Dateien, einmal importiert werden sie zum Tabular Model, daher ist der „Import“-Mode immer zu bevorzugen.

But there was one major disadvantage!

Mit der Verwendung eines zentralen Dataset für mehrere Reports mit der Quelle als AAS oder PowerBI (sogenannte „Live-Connection“), konnte man keine weiteren Quellen mehr dazu anbinden.

And now it's possible!

Was ist der große Vorteil von „Composite“?

It is not only technically possible to connect tabular models in the memory with other sources and models.

The milestone is that self-service BI is truly coming to life from a business perspective.
There can be a central, aproved enterprise model and the possibility for key users to connect further business sources, whether it is the budget figures from Excel or raw material prices from the Internet.

Another possibility is to add more detailed data to the fast online data with direct database queries, so that not all very granular lines have to be in the model.
Etwas ähnliches gibt es zwar als „Aggregations“, aber auch nicht für Live-Connections.

Where is the danger now?

There can be major performance problems with Direct Query.

Not because the technology is slow, but because a model needs to be well thought out and designed and you have to understand what happens when you query it.

It is tempting to add a table right away.

A little example

Our central enterprise model has summarized sales per product per day.

This is loaded as a dataset to Power BI Service and is available as a base for all reports.

The very detailed individual booking lines, per customer, shop and product, are rarely needed.
These can be added to the model as direct database queries.

Both can be used in the report and same filters are also used for both.

The query

The online model is linked to the tables for direct queries via relations.

And that is the key point!
How can a tabular model join with a relational table?
Power BI tries to generate an efficient and high-performance query here, sometimes it works with DAX alone, sometimes a combination with SQL.

And sometimes it doesn't work very well ...

The danger: the join

This simple model produces DAX statements with 3,000 lines!

The join is sometimes resolved using single value lists and unions ...

In this example model, there are still relatively quick results.

Of course, we always come across with models that are poorly designed and therefore slow, but here it is a perfect and correct model.

The next attempt was with a real complex model.

I only integrated one external table via an integer key and the DAX statement had 50.000 rows! The query became extremely slow.

And this is not about the size of the connected object, but the tabular model, depending on the relation and of course the query itself.

Solutions

Eine ganz einfache Lösung ist grundsätzlich „Import“ zu wählen, somit wird jede weitere Quelle auch Teil des Tabular-Modells.

The exact same query becomes a simple DAX again.

Das wird nicht immer möglich sein, insbesondere wenn man eben große Datenmengen im Modell vermeiden möchte, dafür könnte man aber eventuell „Aggregations“ verwenden und den Mode „Dual“.

Conclusion

„Composite“ für Datsets und AAS ist eine große Innovation und bringt enorme Möglichkeiten für die Geschäftsanwendung und Self-Service BI, ein Meilenstein von Power BI!

But the model has to be designed and tested with great care, which in turn contradicts spontaneous self-service.
Even perfect models can generate strange queries.

Derzeit ist das Feature auch noch in „Preview“, es wird hier bestimmt auch noch Verbesserungen geben.

Richtig eingesetzt wird „Composite“ mit Datasets zur grenzenlosen Möglichkeit für Enterprise-Modelle mit Self-Service BI.

Share your experience with a comment below!