Code & Queries

Code & Queries: Your Source for SQL, Python, and AI Insights

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:

  1. Datenquelle: Externe Datenfeeds mit Tankstelleninformationen (z. B. Standort, Marke, Preise, Öffnungszeiten)
  2. Datenintegration: ETL-Prozesse für den Import und die Transformation der Daten
  3. Datenbank: SQL Server mit einer SCD-Typ-2-Tabellenstruktur zur Historisierung
  4. Datenbereitstellung: Reporting Services (SSRS) für Dashboards und Berichte
  5. 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

  1. Datenabruf: Externe Daten werden per API oder CSV importiert.
  2. Staging: Speicherung in sur_stations, um Änderungen zu erkennen.
  3. Vergleich: Hash-Werte zur Identifikation geänderter Datensätze.
  4. SCD-Typ-2-Update:
    • Falls keine Änderungen: Kein Update erforderlich.
    • Falls Änderungen: Alter Datensatz wird geschlossen (ValidTo gesetzt), neuer Datensatz wird eingefügt.
  5. 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.