Git für Power BI: Versionierte BI-Entwicklung mit PBIP
In der Softwareentwicklung ist es selbstverständlich, Änderungen zu versionieren, zu reviewen und notfalls zurückzurollen. In der klassischen Power-BI-Welt ist davon wenig übrig: Eine .pbix-Datei ist ein Binär-Blob. Wer sie öffnet, sieht nicht, was sich geändert hat. Und zwei Personen können nicht gefahrlos parallel arbeiten.
Die Ausgangslage
Ein Reporting wuchs über mehrere Modelle und Berichte. Solange alles in .pbix-Dateien lag, fehlte jede Nachvollziehbarkeit: keine sinnvollen Diffs, kein Code-Review, kein verlässliches Rollback. Jede Änderung war ein Vertrauensakt.
Das Problem: Binärformat verhindert Disziplin
Ein Binär-Blob lässt sich weder zeilenweise vergleichen noch mergen. Damit entfallen genau die Praktiken, die Qualität sichern: Man sieht nicht, was sich geändert hat, kann Änderungen nicht im Review besprechen und einen Fehler nicht gezielt zurücknehmen.
Die Lösung: PBIP + TMDL als Textformat
Power BI Projects (.pbip) speichern Modell und Bericht als Textdateien. Das Semantikmodell im TMDL-Format. Damit wird BI git-fähig: Diffs zeigen jede Measure- und Spaltenänderung, Pull Requests ermöglichen Review, und die Historie erlaubt gezieltes Zurückrollen.
Ein Bundle gehört dabei zusammen: .pbip, der .Report-Ordner und der .SemanticModel-Ordner. Werden sie gemeinsam verschoben, erkennt git das zuverlässig als Rename. Und Power BI Desktop öffnet sie weiter, weil die Pfadreferenz relativ ist.
Die Stolperfallen
TMDL ist Text. Und Text ist unbarmherzig. Ein paar Regeln entscheiden, ob das Modell lädt:
- Einrückung und Eindeutigkeit. TMDL ist einrückungssensitiv (Eigenschaften eine Ebene tiefer als ihr Objekt), jeder
lineageTagmuss innerhalb einer Tabelle einmalig sein, und referenzierte Gruppen (queryGroup) müssen existieren. Kleine Textfehler führen zu stummen Lade- oder Parser-Fehlern. - Strukturelle Löschungen gehören in Desktop. Eine ganze Tabelle durch Entfernen ihrer
.tmdl-Datei zu löschen hält nicht. Power BI Desktop stellt sie aus seinem internen Zustand wieder her. Solche strukturellen Eingriffe (Tabelle, Beziehung) im Desktop vornehmen. Spalten-Diäten per M-Query (Table.SelectColumns) halten dagegen, weil sie beim Refresh ausgeführt werden. - Whitelist-
.gitignorepflegen. Arbeitet das Repo mit „alles ignorieren plus gezielte Ausnahmen", muss ein neuer Top-Level-Ordner explizit freigeschaltet werden. Sonst ist sein Inhalt für git unsichtbar und erscheint nicht einmal als untracked.
Das Takeaway
PBIP und TMDL bringen die Disziplin der Softwareentwicklung in die BI-Welt: nachvollziehbare Diffs, echtes Review, verlässliches Rollback und gefahrloses Arbeiten im Team. Der Preis sind ein paar TMDL-Regeln, die man kennen muss. Einrückung, eindeutige Tags, strukturelle Änderungen im Desktop. Wer sie beherzigt, entwickelt Power BI wie Code: überprüfbar, versioniert und teamfähig.