Was Power BI ist

Power BI Desktop ist ein Programm für Windows, das Daten lädt, zu einem Modell verbindet und daraus interaktive Berichte baut. Es besteht aus drei Teilen, die man auseinanderhalten sollte: Power Query holt und formt die Daten, das Modell hält Tabellen, Beziehungen und Measures, der Bericht zeigt Visuals auf Seiten. Desktop ist kostenfrei; wer einen Bericht im Power-BI-Dienst veröffentlichen will, braucht ein Konto der Organisation.

TeilWas er tutIm Projekt
Power QueryVerbindung, Spalten formen, Typen setzenneun Tabellen aus hotel_bi; is_canceled und is_repeated_guest von true/false zu 1/0 gewandelt
ModellBeziehungen, Measures, Sortierungneun Beziehungen, 13 Measures in DAX
BerichtSeiten, Visuals, Filter (Slicer)vier Seiten: Management-Übersicht, Saisonalität und Herkunft, Vertrieb und Kundensegmente, Stornoanalyse

Hinweis. Bei den in dieser Lernumgebung gezeigten Tools handelt es sich um eine Auswahl – diese ist weder als Empfehlung noch als Werbung zu verstehen. Power BI steht hier, weil Desktop kostenfrei ist und das Sternschema ohne Umwege anbindet. Alternativen auf derselben Ebene: Tableau (Lizenz, für Studierende über das Academic-Programm), Apache Superset und Metabase (Open Source). Angaben zu Lizenzen Stand 09/2026.

Die Datenbank anbinden

Dieselben sechs Angaben wie in Lab 05, verteilt auf drei Dialoge. Eine Entscheidung kommt dazu: Import oder DirectQuery. Import kopiert alle Zeilen in die PBIX-Datei – schnell, unabhängig von der Datenbank, aber ein Abbild vom Ladezeitpunkt. DirectQuery lässt jede Interaktion als SQL an die Datenbank gehen – immer aktuell, aber langsamer und mit Einschränkungen in DAX. Das Projekt nimmt Import: 119.390 Zeilen sind klein, und die Daten ändern sich nicht.

Power BI Desktop – PostgreSQL-Datenbank2.152
Serversupabase.butscher.cloud:5433 1
Datenbankhotel
Datenkonnektivitätsmodus● Import   ○ DirectQuery 2
OK Abbrechen
— nächster Dialog —
Windows
Datenbank
Microsoft-Konto
Benutzernamestudi_hotel
Kennwort••••
☐ Verbindung verschlüsseln 3
Verschlüsselungsunterstützung: Es konnte keine verschlüsselte Verbindung hergestellt werden. Unverschlüsselt verbinden?   OK 4

Nachbildung der Oberfläche, Stand 09/2026 – Beschriftungen wie im Original (deutsche Oberfläche).

  1. 1Server und Port in einem Feld, mit Doppelpunkt. Ohne :5433 versucht Power BI den Standardport und scheitert.
  2. 2Import. Die Daten werden beim Laden kopiert; Aktualisieren holt sie neu.
  3. 3Links Datenbank wählen, nicht Windows. Das Häkchen Verbindung verschlüsseln abwählen – die Instanz hat kein Zertifikat.
  4. 4Beim ersten Verbinden fragt Power BI, ob es unverschlüsselt verbinden soll. Für diese öffentliche Leserolle: OK (Lab 05, Abschnitt Sicherheit).

Im Navigator dann das Schema hotel_bi aufklappen, alle neun Tabellen ankreuzen, Laden. Power Query lädt die Tabellen und übernimmt die Spaltentypen aus PostgreSQL; die beiden Wahrheitswerte werden im Projekt zusätzlich in 0/1 gewandelt, damit sich ihr Mittelwert bilden lässt.

Das Modell: neun Beziehungen

Nach dem Laden zeigt die Modellansicht das Sternschema aus Lab 04 als Bild: FACT_BOOKINGS in der Mitte, die Dimensionen außen, jede Beziehung als Linie mit 1 auf der Dimensions- und * auf der Faktenseite. Power BI hat die Beziehungen aus den Fremdschlüsseln erkannt; prüfen muss man sie trotzdem – vor allem die zwei zu DIM_DATE.

BeziehungKardinalitätStatusWozu
FACT_BOOKINGS[hotel_id] → DIM_HOTEL[hotel_id]* : 1aktivFilter und Gruppierung nach Hotel
FACT_BOOKINGS[arrival_date_key] → DIM_DATE[date_key]* : 1aktivalle Kennzahlen nach Anreisemonat
FACT_BOOKINGS[reservation_status_date_key] → DIM_DATE[date_key]* : 1inaktiv (gestrichelt)gebuchter Umsatz nach Stornodatum, per USERELATIONSHIP
sechs weitere → DIM_MARKET_SEGMENT, DIM_DISTRIBUTION_CHANNEL, DIM_CUSTOMER_TYPE, DIM_MEAL, DIM_DEPOSIT_TYPE, DIM_COUNTRY* : 1aktivFilter und Gruppierung

Warum eine Beziehung inaktiv sein muss

Zwischen zwei Tabellen darf in Power BI nur ein Pfad aktiv sein – sonst wüsste ein Visual nicht, ob „August 2016“ die Anreise oder das Stornodatum meint. Die zweite Beziehung bleibt deshalb inaktiv und wird nur in dem einen Measure eingeschaltet, das sie braucht. Das ist die Role-Playing Dimension aus Lab 04, in der Sprache von Power BI.

Measures in DAX

Ein Measure ist eine Kennzahl, die Power BI im Kontext des Visuals berechnet: dasselbe Measure liefert im Kachel-Visual den Gesamtwert, im Säulendiagramm den Wert je Monat, in der Matrix den Wert je Segment und Kundentyp. Geschrieben wird es in DAX. Die 13 Measures des Projekts liegen in der Tabelle FACT_BOOKINGS; sechs davon stehen unten mit ihrem SQL-Gegenstück aus Lab 06.

MeasureDAXIn SQL (Lab 06)
Anzahl BuchungenCOUNTROWS(FACT_BOOKINGS)count(*)
Gebuchter UmsatzSUM(FACT_BOOKINGS[revenue])sum(revenue)
UmsatzCALCULATE(SUM(FACT_BOOKINGS[revenue]), FACT_BOOKINGS[is_canceled] = 0)sum(revenue) FILTER (WHERE NOT is_canceled)
Stornoquote %DIVIDE(CALCULATE(COUNTROWS(FACT_BOOKINGS), FACT_BOOKINGS[is_canceled] = 1), COUNTROWS(FACT_BOOKINGS))avg(is_canceled::int)
Ø ADRAVERAGE(FACT_BOOKINGS[adr])avg(adr)
Ø gebuchter Umsatz je BuchungDIVIDE([Gebuchter Umsatz], [Anzahl Buchungen])sum(revenue) / count(*)

DIVIDE statt /: Bei einem Nenner von null liefert DIVIDE ein leeres Ergebnis statt eines Fehlers – etwa in einem Monat ohne Buchungen im gewählten Filter. Und Measures dürfen andere Measures verwenden: [Gebuchter Umsatz] in eckigen Klammern ist ein Verweis, keine Kopie der Formel.

Der Bericht: Felder und Regale

Ein Visual entsteht, indem man Felder aus dem Datenbereich auf die Regale des Visuals zieht: bei einem Säulendiagramm X-Achse, Y-Achse und Legende. Eine Dimension auf der X-Achse und ein Measure auf der Y-Achse ergeben Säulen; eine geordnete Dimension wie der Monat ergibt eine Linie; zwei Dimensionen und ein Measure eine Matrix. Was auf welchem Regal liegt, ist das ganze Handwerk.

Power BI Desktop – Hotel.pbixBerichtsansicht
Management-Übersicht
Saisonalität & Herkunftsländer
Vertrieb & Kundensegmente
Stornoanalyse
Anzahl Buchungen je Anreisemonat 1
▁▂▃▅▆▇▆▅▃▂▁▂▃▅▆█▇▆▅▃
FilterHotel: alle · Anreisejahr: alle 2
Visualisierungen
X-AchseDIM_DATE · full_date (Monat)
Y-AchseAnzahl Buchungen 3
Legende
Daten
  • ▾ FACT_BOOKINGS
  • Σ adr 4
  • Σ booking_id
  • ▦ Anzahl Buchungen
  • ▦ Umsatz
  • ▦ Stornoquote %
  • ▸ DIM_DATE
  • ▸ DIM_HOTEL

Nachbildung der Oberfläche, Stand 09/2026 – Beschriftungen wie im Original.

  1. 1Das Visual trägt einen Titel, der sagt, was gezeigt wird – Kennzahl, Einheit, Zeitbezug.
  2. 2Zwei Slicer (Hotel, Anreisejahr) filtern alle Visuals der Seite – Kreuzfilterung über die Beziehungen des Modells.
  3. 3Auf der Y-Achse liegt ein Measure (Symbol ▦), keine Spalte. Measures rechnen im Kontext; Spalten werden nur summiert.
  4. 4Das Σ vor adr und booking_id heißt: Power BI würde diese Spalten summieren. Σ von booking_id ist die klassische Falle – die Summe von Kennnummern.
SeiteVisualsFrage aus Lab 00
Management-Übersichtvier Kacheln, Buchungen und gebuchter Umsatz je Anreisemonat als Linien, zwei Sliceralle vier, auf einen Blick
Saisonalität und HerkunftsländerBuchungen nach Anreisemonat und Jahr, Top-10-Länder als Balken, Treemap der Länderanteile, LändertabelleSaisonalität, Herkunft
Vertrieb und KundensegmenteUmsatz nach Kanal, Buchungen nach Segment, Segment × Kundentyp, drei KachelnVertrieb
StornoanalyseStornoquote nach Hotel, Kautionstyp, Marktsegment und Vorlaufzeit; gebuchter Umsatz nach Anreise- und nach StornodatumStornorisiko

Stolpersteine

Σ von booking_id

Zieht man eine Zahlenspalte auf ein Regal, summiert Power BI sie. „Summe von booking_id“ ist eine sinnlose Zahl mit elf Stellen. Zählen heißt: Measure Anzahl Buchungen verwenden oder die Aggregation der Spalte auf Anzahl stellen.

Monate alphabetisch

Der Monatsname sortiert sich als Text: April, August, Dezember. Abhilfe: Nach Spalte sortierenmonth_name nach month. Die Datumsdimension hat die Zahl genau dafür.

Die Beziehung ist inaktiv

Ein Visual nach Stornodatum zeigt dieselben Werte wie nach Anreisedatum? Dann läuft es über die aktive Beziehung. Nur das Measure mit USERELATIONSHIP nutzt die zweite.

Verbindung verschlüsseln

Bleibt das Häkchen gesetzt, meldet Power BI, dass der Server SSL nicht unterstützt. Abwählen und die Rückfrage bestätigen – für diese Leserolle vertretbar, für eigene Daten nicht.

Spalte statt Measure

Eine berechnete Spalte rechnet je Zeile und speichert das Ergebnis; ein Measure rechnet im Kontext des Visuals. Eine Quote als Spalte (0 oder 1 je Buchung) kann man nicht mitteln, ohne dass Power BI sie summiert. Quoten sind Measures.

Veröffentlichen

Veröffentlichen lädt den Bericht in den Power-BI-Dienst und braucht ein Konto der Organisation. Die Datei Hotel.pbix lässt sich ohne Konto öffnen und ansehen – sie enthält die importierten Daten.

Spielplatz

Ein nachgebildetes Feldfenster mit den Feldern des Projekts und einer Stichprobe von 5.000 Buchungen. Legen Sie Felder auf X-Achse, Y-Achse und Legende; das Diagramm folgt aus der Belegung wie in Power BI. Die Stichprobe liefert andere absolute Zahlen als das Dashboard, aber dieselben Muster – und die Σ-Falle ist eingebaut.

Übungen

Fünf Übungen: zwei am Feldfenster, eine Zuordnung von Measures zu DAX, die Reihenfolge der Anbindung und Verständnisfragen zu Import, Beziehungen und Measures.

Zusammenfassung