Power BI meets Access + WordPress: Reporting-Plattform für gemischte Datenquellen

Warum ich diese KomBI nutze

In KMU-Projekten liegt oft ein Teil der Daten in WordPress (Bestellungen, Formulare, Mitglieder), ein anderer Teil in Access (Artikelstamm, Vertriebsdaten, Kalkulationen).
Power BI eignet sich gut, um beides zusammenzubringen – ohne alles erst in ein zentrales DWH zu überführen.

Ich zeige Dir, wie ich die Datenquellen verbinde, bereinige und visualisiere.

Übersicht: Architektur

  • WordPress-Daten: per MySQL-ODBC
  • Access-Daten: lokal oder im Netzwerk
  • Power BI: verbindet beides direkt
  • Datenmodell mit Transformationen in Power Query
  • Veröffentlichung auf Power BI Service (optional)

1. WordPress-Daten via ODBC

ODBC-Treiber installieren: MySQL ODBC 8.0 Unicode Driver
Dann in Power BI Desktop:

Start → Daten abrufen → ODBC → DSN auswählen

Tabelle wp_posts als Beispiel:

SELECT ID, post_title, post_date, post_type
FROM wp_posts
WHERE post_type IN ('post', 'shop_order')

Diese Abfrage kannst Du direkt in Power Query einfügen (Erweiterter Editor).
Bei vielen Custom Fields: zusätzlich wp_postmeta joinen.

Typischer Merge in Power Query:

SELECT p.ID, p.post_title, p.post_date, m.meta_key, m.meta_value
FROM wp_posts p
LEFT JOIN wp_postmeta m ON p.ID = m.post_id
WHERE p.post_type = 'shop_order'

Tipp: In Power BI kannst Du mit Parametern (z. B. let) flexibel filtern, z. B. nur Bestellungen der letzten 30 Tage laden.

2. Access-Daten einbinden

Start → Daten abrufen → Access-Datenbank → Datei auswählen

Ich bereite die Access-Daten immer in separaten Abfragen vor.
Beispiel: Tabelle tbl_Artikel mit Netto-Preisen, Kategorien, Lagerstatus

Zusätzlicher Query in Access (Jet-SQL):

SELECT ArtikelNr, Bezeichnung, Kategorie, PreisNetto, Bestand
FROM tbl_Artikel
WHERE Aktiv = True

In Power Query kannst Du daraus dann Dimensionstabellen bauen (Artikel, Kategorien, Preisgruppen).

3. Gemeinsames Datenmodell

Power BI eignet sich gut für Sternschemata.
Ich baue:

  • Fakten: Bestellungen (aus WordPress)
  • Dimensionen: Artikel, Kunde, Kategorie (aus Access)

Beziehungen:

TabelleVerknüpft mitBeziehung
wp_orderstbl_KundeKunde_ID = Kundennr
wp_order_itemstbl_ArtikelArtikel_ID = ArtikelNr
wp_ordersDatumskalenderpost_date = Datum

Dazu nutze ich eine eigene Datumstabelle in Power BI:

let
    StartDate = #date(2022, 1, 1),
    EndDate = DateTime.Date(DateTime.LocalNow()),
    Dates = List.Dates(StartDate, Duration.Days(EndDate - StartDate), #duration(1,0,0,0))
in
    Table.FromList(Dates, Splitter.SplitByNothing(), {"Datum"})

4. Transformationen und Berechnungen

Typische Berechnungen in DAX:

UmsatzNetto = SUMX(wp_order_items, wp_order_items[qty] * wp_order_items[preis])
AnzahlBestellungen = DISTINCTCOUNT(wp_orders[ID])
LetzteBestellung = CALCULATE(MAX(wp_orders[post_date]), ALLEXCEPT(wp_orders, wp_orders[kunde_id]))

Zeitzonenprobleme bei post_date löse ich per Power Query:

= Table.TransformColumns(#"Vorherige Schritte", {{"post_date", each DateTimeZone.ToLocal(_), type datetime}})

5. Veröffentlichung im Power BI Service

Wenn Du die Datei regelmäßig aktualisieren willst, brauchst Du ein Gateway.
ODBC auf WordPress und Access auf dem Netzlaufwerk müssen auf dem Gateway-Server verfügbar sein.

Ich empfehle:

  • Datenreduzierung in Power Query
  • Datenflüsse bei größeren Projekten
  • Trennung von Modell und Berichtsseite (per thin reports)

Fazit zwischendurch

Diese Kombi funktioniert gut, wenn Du keinen zentralen SQL-Server hast.
Access und WordPress ergänzen sich, Power BI baut die Brücke.
Die Abfragen sind anspruchsvoll – aber stabil, wenn man sich an ein Schema hält.

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert