Dieses Projekt demonstriert die Konzeption und Implementierung eines relationalen Data Warehouses für Finanz- und Bankdaten. Es umfasst ein automatisiertes ETL-Skript zur Erzeugung synthetischer Transaktions- und Kundendaten sowie erweiterte SQL-Reporting-Queries zur Datenanalyse und Risikoerkennung.
Das System basiert auf einem relationalen Data-Warehouse-Modell mit automatisiertem ETL-Prozess:
[ Python Script: generate_data.py ]
│
▼ (ETL Pipeline)
[ Rohdaten (CSV / RAW) ]
│
▼
[ SQLite / PostgreSQL DWH ]
├── kunden (Stammdaten) ── (1:N) ──> transaktionen (Fakten)
│
▼
[ SQL Reporting Engine (02_reporting_queries.sql) ]
├── Monatlicher gleitender Durchschnitt (Window Functions)
└── Risiko- & Anomalieanalyse (Ausreißererkennung).
kunden(1) ─── (N)transaktionen
- Programmiersprache: Python (Pandas)
- Datenbank & SQL: PostgreSQL / MySQL (DDL-Schema, CTEs, Window Functions)
- Tools: VS Code, Git
Die enthaltenen SQL-Analysen (sql/02_reporting_queries.sql) decken folgende Anwendungsfälle ab:
- Gleitender 3-Monats-Durchschnitt: Berechnung des monatlichen Transaktionsvolumens pro Kundentyp zur Identifizierung von Trends.
- Anomalie- & Risikoerkennung: Identifizierung ungewöhnlich hoher Transaktionsbeträge (Ausreißer > 3 Standardabweichungen) zur Unterstützung von Audit- und Compliance-Prozessen.
Auszug aus den Ergebnissen der aggregierten Reporting-Queries (sql/02_reporting_queries.sql):
| kundentyp | monat | gesamtvolumen | gleitender_durchschnitt_3m |
|---|---|---|---|
| Privatkunde | 2026-01 | 14,250.00 € | 14,250.00 € |
| Privatkunde | 2026-02 | 18,900.00 € | 16,575.00 € |
| Geschäftskunde | 2026-01 | 45,100.00 € | 45,100.00 € |
| transaktions_id | kunden_id | betrag | status | abweichung_faktor |
|---|---|---|---|---|
| TX-9921 | CUST-4021 | 12,500.00 € | ERFOLGREICH | 3.42σ (> 3σ) |
- Abhängigkeiten installieren:
pip install -r requirements.txt
- Datenbank-Schema initialisieren und ETL-Pipeline ausführen:
python src/etl_pipeline.py
- Reporting-Queries ausführen: Führen Sie die Skripte im Ordner sql/ über Ihr bevorzugtes Datenbank-Tool (z. B. DBeaver, pgAdmin) oder direkt via CLI aus.