Zum Hauptinhalt springen

Immer öfter wird Power BI nicht nur als Self-Service-Tool eingesetzt, sondern bildet auch die Grundlage von operationalisierten Analytics-Anwendungen vieler international agierender Unternehmen oder sogar im B2B-Bereich. Gerade hier entsteht der Bedarf, Power BI Reports in mehreren Sprachen anzuzeigen. Nun muss man sich entscheiden: Erstelle ich einen Report pro Sprache oder versuche ich, meinen Report nach einer Sprache filterbar zu gestalten? Wir wollen uns in diesem Beitrag letzteren Ansatz anschauen.

Power BI bietet für Premium-User die Möglichkeit, Metadaten (z. B. Tabellen- oder Spaltennamen) zu übersetzen. Wenn es aber um die anzuzeigenden Daten geht, müssen wir als Power-BI-Entwickler kreativ werden. Hierbei stehen wir vor der Herausforderung, sowohl die Daten der Tabellen als auch die Überschriften und Texte übersetzen zu müssen.

Datenmodellierung für Mehrsprachigkeit

Der Kern der Mehrsprachigkeit ist das Datenmodell. Wir betrachten hier ein einfaches Modell, das lediglich eine Faktentabelle und eine Datumsdimension beinhaltet, und möchten die Monate auf Deutsch und Englisch anzeigen.
 

Um dies zu erreichen, benötigen wir die Datumsdimension in einer Struktur, die pro Sprache und Datumswert je eine Zeile aufweist. Dadurch wird allerdings die One-to-many-Beziehung zwischen Dimension und Fakt verletzt.
 

Diese können wir implizit über eine Bridge-Tabelle in Kombination mit einem Filter für die Sprache wiederherstellen. Die zentrale Herausforderung ist es nun, den Filter von der „Language“-Tabelle auf die „Date“-Tabelle zu übertragen, ohne jedoch eine Ambiguität im Modell zu erzeugen. Dies können wir mit sogenannten virtuellen Beziehungen in unseren DAX-Measures erreichen (Relationships in Power BI and Tabular Models – SQLBI). Hierbei ist es wichtig zu wissen, dass virtuelle Beziehungen als Inner Join agieren.

Damit wir später auch die Titel übersetzen können, benötigen wir eine Tabelle analog der Datumsdimension. Diese ist nicht mit den Fakten verbunden und kann deshalb physisch in Beziehung gesetzt werden.
 

ETL für das Mehrsprachenmodell

Die übersetzten Texte der Daten und Titel können in einer zentral abgelegten Tabelle „Translation“ gespeichert werden. Hierbei bietet sich eine Struktur an, die neben der Übersetzung auch die Sprache, die Tabelle, die Spalte und deren ursprüngliche Ausprägung des Spaltenwerts beinhaltet. Diese Tabelle kann dann z. B. in Power Query weitertransformiert werden. Hierbei erfolgt die Transformation in zwei Schritten.

Für die Datumsdimension wird „Translation“ zunächst auf TableName = „Date“ gefiltert und dann über den „ColumnName“ mit der Monatsspalte der Datumstabelle verbunden. Dadurch erweitert sich eine Zeile der Datumstabelle um die Anzahl der Sprachen. Dabei müssen wir aufgrund der virtuellen Beziehungen beachten, dass jeder Wert in jeder Sprache übersetzt ist (referenzielle Integrität).

Kann das nicht garantiert werden, muss über etwaige Rückfalllösungen nachgedacht werden. Als Beispiel können hier durch einen rechten Antijoin die Ausprägungen ohne Übersetzungen ermittelt werden, und durch einen Crossjoin lässt sich mit der Sprachentabelle ein Standardwert definieren.

Die Transformation für die Titel ist vergleichsweise einfach. Für die Titeltabelle wird die „Translation“-Tabelle referenziert und auf TableName = „Title“ gefiltert.

Mehrsprachigkeit im Report

Im Report profitieren wir nun von der Vorarbeit bei der Datenmodellierung und -transformation.

Wir können die Monatsspalte, den Sprachenfilter und das DAX-Measure für den Umsatz (inkl. virtueller Beziehung) nutzen, um einen übersetzten Zeitverlauf darzustellen. Für die Überschrift nutzen wir die Funktion der dynamischen Titel

Durch einfaches Umstellen des Sprachfilters können wir nun sowohl Titel als auch die Monatsnamen auf den Achsen auf Englisch stellen.
 

Überlegungen und Limitierungen

Der vorgestellte Ansatz zeigt, wie man Daten und Überschriften in Power BI skalierbar in mehreren Sprachen nutzen kann. Allerdings gibt es einige Aspekte, die es bei einer Implementierung zu berücksichtigen gilt.
Zum einen muss bedacht werden, dass virtuelle Beziehungen verglichen mit physischen Beziehungen mit einem Performanzverlust einhergehen. Des Weiteren erhöhen wir die Kardinalität der Dimensionen, wodurch sich die Kompression im Datenmodell verschlechtert. Es wird größer und einige Operationen wie z. B. nicht-additive Berechnungen verlangsamen sich überproportional. Hier kann eine optimierte Verteilung der Last von der Storage Engine und Formular Engine unter Umständen entgegensteuern (Analyzing the performance of DISTINCTCOUNT in DAX – SQLBI).
Zum anderen sind die Möglichkeiten der dynamischen Beschriftungen begrenzt. Achsentitel, Legendentitel, Spaltennamen und Measurenamen können mit dieser Technik nicht übersetzt werden. Hier kann jedoch die Metadatenübersetzung Abhilfe schaffen.

Mehrsprachigkeit in Power BI umfasst neben Übersetzungen von Metadaten auch die der angezeigten Daten und Texte. Da dies derzeit nicht „out of the box“ verfügbar ist, verlangt die Mehrsprachigkeit der Daten eine intelligente Datenmodellierung. Diese geht mit einem erhöhten Komplexitätsgrad einher, bietet jedoch eine skalierbare und performante Lösung.

 

 

Mehrsprachigkeit in Power BI? Geht nicht? Geht doch – mit uns gemeinsam!

Schreib uns einfach an!

 

 

 

 

Jan Schönfelder
Senior Consultant
Jan ist Power-BI-Enthusiast seit der ersten Stunde. Insbesondere komplexe Datenmodellierungen und DAX-Problemstellungen motivieren ihn täglich über den Tellerrand zu schauen und neue Power-BI-Wege zu beschreiten. Im Moment konzentriert er sich vor allem auf Analytics-Projekte im Bereich Reinsurance.
#PowerBI #DAX #PowerQuery