← Zurück zur Startseite
Data-Warehouse-Architektur

Data Warehouse für den Handel – Architektur aus der Praxis

Kasse, Warenwirtschaft und Excel-Listen liefern jeden Tag Daten, aber selten Antworten. Ein Data Warehouse führt diese Daten an einer Stelle zusammen und macht daraus belastbare Kennzahlen. Hier steht, wie ich das für mittelständische Händler aufbaue: im eigenen Haus, ohne Cloud-Abo und ohne die vorhandenen Programme abzulösen.

Kurzfassung
  • Das Data Warehouse liest Kasse und Warenwirtschaft nur aus; beide laufen unverändert weiter.
  • Ein nächtlicher Import bereinigt die Daten und schreibt sie in eine eigene Datenbank (MariaDB oder SQL Server).
  • Kennzahlen werden einmal zentral definiert und überall gleich gerechnet.
  • Dashboards, Board-Pack und eine lokale KI greifen auf dieselben Zahlen zu.

Warum die Warenwirtschaft allein nicht reicht

Eine Warenwirtschaft ist für den Tagesbetrieb gebaut: Artikel anlegen, Ware buchen, Bons speichern. Sie ist nicht dafür gebaut, fünf Jahre Bonpositionen nach Warengruppe, Lieferant und Filiale gegeneinander zu stellen. Wer das trotzdem versucht, kennt die Folgen:

  • Große Abfragen bremsen die Kasse und den Wareneingang.
  • Jede Auswertung wird von Hand in Excel nachgebaut, jedes Mal ein bisschen anders.
  • Zwei Leute nennen für denselben Monat zwei verschiedene Rohgewinne.
  • Daten aus mehreren Systemen (Kasse, Warenwirtschaft, Lieferantenlisten) passen nicht zusammen.

Ein Data Warehouse trennt das Arbeiten vom Auswerten. Die operative Datenbank bleibt schnell, die Auswertungsdatenbank ist für lange Zeiträume und große Gruppierungen optimiert.

Die Architektur im Überblick

Der Aufbau hat fünf Schichten. Jede Schicht hat genau eine Aufgabe; dadurch lässt sich jede einzeln austauschen, ohne den Rest anzufassen.

1. Quellen

Kasse, Warenwirtschaft, Listen. Sie bleiben, wie sie sind; das DWH braucht nur Lesezugriff.

2. Import

Liest neue und geänderte Daten, vereinheitlicht Schreibweisen und lädt sie in die Zieldatenbank.

3. Datenbank

Eigene MariaDB oder SQL Server. Faktentabelle plus Dimensionen und fertige Sichten für häufige Fragen.

4. Schnittstelle

Eine schlanke API liefert JSON an alle Oberflächen. Kennzahlen werden nur hier gerechnet.

5. Nutzung

Dashboards im Browser, PDF für die Geschäftsleitung und eine KI, die Fragen in Abfragen übersetzt.

Der Import: vom Kassenbon zur sauberen Zeile

Die meiste Arbeit steckt nicht in den Diagrammen, sondern im Import. Hier entscheidet sich, ob die Zahlen stimmen.

  1. Auslesen: Nur neue oder geänderte Bons seit dem letzten Lauf. Ein Zeitstempel oder eine laufende Nummer in der Quelle genügt.
  2. Vereinheitlichen: Warengruppen, Lieferanten- und Markennamen in eine einheitliche Schreibweise bringen. „Müller GmbH“, „Mueller“ und „MUELLER GMBH“ sind ein Lieferant, nicht drei.
  3. Ergänzen: Einkaufspreis zum Verkaufszeitpunkt an jede Bonposition hängen. Nur so lässt sich der Rohgewinn später korrekt rechnen.
  4. Prüfen: Summen je Tag gegen den Kassenabschluss abgleichen. Weicht etwas ab, bricht der Lauf ab, statt falsche Zahlen zu laden.
  5. Laden: In die Faktentabelle schreiben, Sichten aktualisieren, Datenstand vermerken. Jedes Dashboard zeigt an, bis wann die Daten reichen.

Personenbezogene Daten (Kundennamen, Bankverbindungen) gehören nicht ins Auswertungssystem, wenn sie für die Auswertung nicht gebraucht werden. Für Demo- und Testsysteme werden sie pseudonymisiert.

Das Datenmodell: Star-Schema oder flache Tabelle?

Lehrbücher empfehlen das Star-Schema: eine Faktentabelle in der Mitte (Bonpositionen mit Menge, Umsatz, Einkaufswert), darum herum Dimensionen (Zeit, Artikel, Warengruppe, Lieferant, Filiale). Das ist sauber und bei vielen Quellen die richtige Wahl.

In der Praxis des Mittelstands geht es oft einfacher. Bei einer Quelle und einigen Millionen Bonpositionen reicht eine breite Faktentabelle, die Artikel, Warengruppe, Marke und Lieferant direkt mitführt, plus eine Zeit-Dimension und ein paar Sichten. Das ist schneller gebaut, leichter zu verstehen und mit passenden Indizes schnell genug.

Star-SchemaBreite Faktentabelle
Geeignet fürmehrere Quellen, wechselnde Stammdateneine Hauptquelle, stabile Stammdaten
Aufwandhöher, mehr Tabellen und Schlüsselgering
HistorieStammdatenänderungen sauber abbildbarStand zum Verkaufszeitpunkt steckt in der Zeile
AbfragenJoins nötigdirekt gruppierbar

Wichtig ist bei beiden Varianten dasselbe: Der Einkaufspreis wird zum Verkaufszeitpunkt gespeichert, nicht später aus dem Artikelstamm nachgeschlagen. Sonst ändert jede Preiserhöhung rückwirkend den Rohgewinn der Vorjahre.

Kennzahlen mit Formeln

Eine Kennzahl ist nur so gut wie ihre Definition. Deshalb steht jede Formel an genau einer Stelle, in der Schnittstelle, und alle Oberflächen übernehmen das Ergebnis.

Umsatz, Rohgewinn, Marge

Rohgewinn = Umsatz − (Einkaufspreis × Menge)
Marge in % = Rohgewinn ÷ Umsatz × 100

So sieht das als Abfrage je Warengruppe aus:

SELECT  WG                                         AS warengruppe,
        SUM(ENDPREIS)                              AS umsatz,
        SUM(ENDPREIS - EKPREIS * STCK)             AS rohgewinn,
        ROUND(SUM(ENDPREIS - EKPREIS * STCK)
              / NULLIF(SUM(ENDPREIS), 0) * 100, 1) AS marge_prozent
FROM    umsatz
WHERE   DATUM BETWEEN '2026-01-01' AND '2026-09-30'
GROUP BY WG
ORDER BY rohgewinn DESC;

Durchschnittlicher Bonwert

Ø Bonwert = Umsatz ÷ Anzahl Bons

Lagerumschlag

Lagerumschlag = Wareneinsatz (zu EK) ÷ Ø Lagerbestand (zu EK)

Das ist die Lehrbuchformel. Fehlen historische Bestände, wird oft vereinfacht mit Umsatz ÷ Ø Bestand gerechnet. Das geht für Vergleiche zwischen Warengruppen, ergibt aber höhere absolute Werte. Wichtig ist, dass die Variante dabeisteht.

Abverkaufsquote

Abverkaufsquote in % = verkaufte Menge ÷ (Anfangsbestand + Zugang) × 100

Flächenproduktivität

Rohgewinn je m² = Rohgewinn der Fläche ÷ Verkaufsfläche in m²

Warenkorb-Verbindungen

Support(A,B) = Bons mit A und B ÷ alle Bons
Lift(A,B) = Support(A,B) ÷ (Support(A) × Support(B))

Ein Lift über 1 bedeutet: A und B landen häufiger zusammen im Korb, als der Zufall erwarten lässt. Das ist die Grundlage für Platzierung und Zusatzverkäufe.

Vorjahresvergleich

Verglichen wird immer der gleiche Zeitraum des Vorjahres, nicht das ganze Vorjahr. Wer Januar bis Oktober gegen ein volles Vorjahr stellt, sieht scheinbar einen Einbruch.

Im eigenen Haus oder in der Cloud?

Cloud-Data-Warehouses sind für sehr große, schnell wachsende Datenmengen gebaut. Die Bonpositionen eines mittelständischen Händlers passen dagegen bequem in eine gewöhnliche Datenbank. Die Entscheidung hängt deshalb weniger an der Technik als an Kosten, Abhängigkeit und Datenschutz.

Eigene Datenbank (On-Premises oder gemieteter Server)Cloud-Data-Warehouse
Kostenfeste, gut planbare Serverkostennutzungsabhängig; jede Abfrage kann kosten
Datenhaltungim eigenen Haus oder bei einem deutschen Hosterbeim Anbieter, oft außerhalb der EU möglich
AbhängigkeitStandard-SQL, jederzeit umziehbaranbieterspezifische Funktionen und Preise
Skalierungfür typische Händler-Datenmengen ausreichendnahezu unbegrenzt
BetriebBackups und Updates in eigener Handvom Anbieter übernommen

Auch eine hybride Lösung ist möglich: Datenbank im eigenen Haus, Dashboards über einen abgesicherten Webserver erreichbar. Welche Variante passt, ergibt sich aus Datenmenge, Anzahl der Nutzer und den Anforderungen an den Datenschutz, nicht aus einem Werbeprospekt.

Lokale KI: Fragen stellen, ohne Zahlen herzugeben

Mit einem Data Warehouse wird eine KI im Unternehmen erst richtig nützlich: Statt Excel-Dateien hochzuladen, fragt man „Welche Warengruppe hat im dritten Quartal am meisten Marge verloren?“ und bekommt eine Antwort aus den echten Zahlen.

Damit dabei keine Geschäftszahlen das Haus verlassen, sieht der Aufbau so aus:

  • Lokales Sprachmodell auf einem eigenen Rechner oder Server, kein Cloud-Dienst.
  • MCP-Server (Model Context Protocol) als Bindeglied zwischen Modell und Datenbank.
  • Nur lesender Datenbank-Benutzer, der nur freigegebene Sichten sieht und keine Kundendaten.
  • Nur Summen und Kennzahlen als Ergebnis, keine Einzeldatensätze mit Personenbezug.

Mehr dazu: MCP-Server-Entwicklung, RAG verständlich erklärt und KI-Agent-Demo.

So läuft ein Projekt ab

  1. Fragen sammeln: Welche Entscheidungen sollen die Zahlen stützen? Daraus folgen die Kennzahlen, nicht umgekehrt.
  2. Quellen prüfen: Welche Daten liegen wo, in welcher Qualität, seit wann?
  3. Prototyp mit echten Daten: Ein Ausschnitt (z. B. ein Jahr, eine Filiale) zeigt schnell, wo die Daten haken.
  4. Import automatisieren: Nächtlicher Lauf mit Prüfsummen und Datenstand-Anzeige.
  5. Ausbauen: Weitere Dashboards, Board-Pack für die Geschäftsleitung, KI-Abfragen.

Live-Demo

Die Demo läuft mit pseudonymisierten Daten eines Fahrrad- und Gartenfachhandels. Sie zeigt, wie die beschriebene Architektur in der Oberfläche aussieht.

Häufige Fragen

Ab wann lohnt sich ein eigenes Data Warehouse?

Sobald Auswertungen regelmäßig von Hand aus Kasse und Warenwirtschaft zusammengesucht werden, mehrere Filialen oder mehrere Jahre verglichen werden sollen oder die Warenwirtschaft bei großen Abfragen langsam wird.

Muss die Warenwirtschaft dafür ersetzt werden?

Nein. Das Data Warehouse liest die vorhandenen Daten nur aus. Kasse und Warenwirtschaft laufen unverändert weiter.

Braucht man dafür eine Cloud?

Nein. Eine MariaDB- oder SQL-Server-Datenbank im eigenen Haus oder auf einem gemieteten Server reicht für die Datenmengen typischer mittelständischer Händler aus.

Wie aktuell sind die Zahlen?

So aktuell wie der letzte Import. Üblich ist ein nächtlicher Lauf; kürzere Abstände sind möglich, wenn die Quellsysteme das hergeben.

Kann eine KI die Zahlen abfragen, ohne dass Daten das Haus verlassen?

Ja, mit einem lokalen Sprachmodell und einem MCP-Server, der nur lesend und nur auf freigegebene Sichten zugreift.

Fertiges Modul oder eigene Architektur?

Wer WinLager oder QuickKasse nutzt, bekommt das Data Warehouse als fertiges Zusatzmodul. Für andere Systeme plane ich die Architektur passend zu den vorhandenen Daten.