Einleitung
Der Tankstellenmonitor ist ein datengetriebenes System zur Erfassung, Verarbeitung und Analyse von Tankstelleninformationen. Ziel ist die Erstellung einer konsistenten, aktuellen und historisierten Datenbasis für Geschäftsanalysen und Reports. Dieses Dokument beschreibt die Architektur, Datenmodellierung und Implementierung des Systems.
Architektur
Das System basiert auf einer mehrschichtigen Architektur mit folgenden Komponenten:
- Datenquelle: Externe Datenfeeds mit Tankstelleninformationen (z. B. Standort, Marke, Preise, Öffnungszeiten)
- Datenintegration: ETL-Prozesse für den Import und die Transformation der Daten
- Datenbank: SQL Server mit einer SCD-Typ-2-Tabellenstruktur zur Historisierung
- Datenbereitstellung: Reporting Services (SSRS) für Dashboards und Berichte
- Automatisierung: SQL-Prozeduren und SSIS-Pakete zur kontinuierlichen Verarbeitung
Datenmodellierung
Die zentrale Datenbank enthält folgende Tabellen:
- dbo.stations: Enthält Stammdaten mit SCD-Typ-2-Tracking
- sur_stations: Temporäre Staging-Tabelle für neue Daten
- error_log: Fehlerhafte Datensätze werden hier protokolliert
- historical_prices: Historische Kraftstoffpreise mit Zeitstempel
Wichtige Spalten der Tabelle dbo.stations
Spalte | Typ | Beschreibung |
---|---|---|
Station_SID | INT | Eindeutige ID der Station |
uuid | VARCHAR | Externe eindeutige ID |
name | VARCHAR | Name der Tankstelle |
brand | VARCHAR | Marke |
street | VARCHAR | Straße |
city | VARCHAR | Stadt |
post_code | VARCHAR | PLZ |
latitude | FLOAT | Breitengrad |
longitude | FLOAT | Längengrad |
first_active | DATETIME | Erstmalige Erfassung |
openingtimes_json | TEXT | Öffnungszeiten im JSON-Format |* |
HashValue | VARCHAR | Hash für SCD-Typ-2-Tracking |
ValidFrom | DATETIME | Gültigkeitsbeginn |
ValidTo | DATETIME | Gültigkeitsende |
IsCurrent | BIT | Aktueller Datensatz (1 = Ja) |
Datenimport und Aktualisierung
ETL-Prozess
- Datenabruf: Externe Daten werden per API oder CSV importiert.
- Staging: Speicherung in
sur_stations
, um Änderungen zu erkennen. - Vergleich: Hash-Werte zur Identifikation geänderter Datensätze.
- SCD-Typ-2-Update:
- Falls keine Änderungen: Kein Update erforderlich.
- Falls Änderungen: Alter Datensatz wird geschlossen (
ValidTo
gesetzt), neuer Datensatz wird eingefügt.
- Fehlerbehandlung: Ungültige oder fehlerhafte Daten werden in
error_log
gespeichert.
Reporting
Mithilfe von SQL Server Reporting Services (SSRS) werden interaktive Berichte erstellt, u. a.: - Standortübersicht: Kartenbasierte Anzeige aller Tankstellen - Preisanalysen: Historische und aktuelle Preisentwicklungen - Öffnungszeiten: Analyse der Verfügbarkeit von Tankstellen - Fehlerberichte: Identifikation fehlerhafter oder fehlender Daten
Fazit Das Tankstellenmonitor-Projekt ermöglicht eine robuste Datenanalyse und historische Verfolgung von Änderungen. Die
Architektur stellt sicher, dass sich Datenaktualisierungen effizient und konsistent verwalten lassen. Durch die Kombination aus SQL Server, SSRS und automatisierten ETL-Prozessen wird eine leistungsfähige und skalierbare Lösung bereitgestellt.