Datenbankstatistiken
Die Datenbankstatistiken-Funktion bietet Systemadministratoren einen Überblick über Datenbankdatensatzzahlen und Importaktivitäten. Diese Daten helfen bei der Überwachung des Systemzustands, der Wachstumsverfolgung und der Überprüfung von Datenimportoperationen.
Zugriff auf Datenbankstatistiken
Navigieren Sie zu Admin > Datenbanktools über die Admin-Navigation. Die Statistiken werden oben auf der Seite in Zusammenfassungskarten angezeigt.
Zugriffsvoraussetzungen
Zugriff auf den Admin-Bereich ist erforderlich. Admin-Rollen werden für die Anzeige von Datenbankstatistiken empfohlen.
Übersicht
Die Datenbankstatistiken zeigen vier wichtige Metriken an:
| Metrik | Beschreibung | Symbolfarbe |
|---|---|---|
| Gesamtkunden | Anzahl aller Kundendatensätze | Blau |
| Gesamtfahrten | Anzahl aller Fahrtdatensätze | Grün |
| Gesamtfahrzeuge | Anzahl aller Fahrzeugdatensätze | Lila |
| Letzter Import | Zeitstempel des letzten Datenimports | Grau |
Jede Metrik verstehen
Gesamtkunden
Was gezählt wird: Alle Zeilen in der customers-Tabelle
Beinhaltet:
- Aktive Kunden
- Gesperrte Kunden
- Kunden mit Identitätsverifizierungsmarkierungen
- Alle Status und Zustände
Beinhaltet NICHT:
- Hart gelöschte Datensätze (falls vorhanden)
- Weich gelöschte Datensätze SIND in der Zählung enthalten
Format: Zahl mit Tausendertrennzeichen (z.B. "12.450")
Gesamtfahrten
Was gezählt wird: Alle Zeilen in der rides-Tabelle
Beinhaltet:
- Aktive Fahrten
- Abgeschlossene Fahrten
- Stornierte Fahrten
- Pausierte Fahrten
- Alle Fahrtstatus
Beinhaltet NICHT:
- Hart gelöschte Datensätze (falls vorhanden)
Format: Zahl mit Tausendertrennzeichen (z.B. "156.789")
Gesamtfahrzeuge
Was gezählt wird: Alle Zeilen in der vehicles-Tabelle
Beinhaltet:
- Verfügbare Fahrzeuge
- In Benutzung befindliche Fahrzeuge
- Wartungsfahrzeuge
- Offline-Fahrzeuge
- Alle Status
Format: Zahl mit Tausendertrennzeichen (z.B. "342")
Letzter Import
Was angezeigt wird: Zeitstempel der letzten Datenimportoperation
Verfolgte Importtypen:
customers_csv_import- Kunden-CSV-Importerides_csv_import- Fahrten-CSV-Importecsv_import- Allgemeine CSV-Importemanual_sync- Stripe-API-Synchronisationsoperationen
Format: Lokalisierte Datums- und Zeitzeichenkette (z.B. "25.12.2025, 14:30:45")
Falls keine Importe: Zeigt "Nie" an
Wie Statistiken berechnet werden
Echtzeit-Abfragen
Jede Statistik wird in Echtzeit über Datenbankabfragen berechnet:
- Kundenanzahl:
SELECT COUNT(*) FROM customers - Fahrtenanzahl:
SELECT COUNT(*) FROM rides - Fahrzeuganzahl:
SELECT COUNT(*) FROM vehicles - Letzter Import:
SELECT processed_at FROM stripe_webhook_logs WHERE event_type IN (...) ORDER BY processed_at DESC LIMIT 1
Abfrageleistung
- Verwendet PostgreSQLs optimierte
COUNT(*)-Operation head: true-Option gibt nur Metadaten zurück (keine Zeilendaten)- Indizierte Spalten unterstützen schnelle Abfragen
- Typische Antwortzeit: 200-500ms
Die Datenbanktools-Seite
Seitenlayout
Die Datenbanktools-Seite ist in Abschnitte unterteilt:
- Statistikkarten (oben) - Die vier oben beschriebenen Metriken
- Importtools-Raster - Schaltflächen für Kunden-, Fahrten- und Stripe-Importe
- Hilfebereich - Anweisungen und Dateiformatanforderungen
Anzeige der Statistikkarten
Jede Karte zeigt:
- Symbol: Visueller Indikator mit farbigem Hintergrund
- Wert: Große numerische oder Datumswert
- Beschriftung: Beschreibung der Metrik
Aktualisierungsverhalten
Statistiken:
- Laden beim Seitenbesuch
- Manuelle Aktualisierung für Updates erforderlich
- Keine automatische Aktualisierung (um Serverlast zu reduzieren)
Dateninterpretation
Wachstumsüberwachung
Verfolgen Sie Metriken über die Zeit, um zu überwachen:
- Kundenakquisitionsraten
- Fahrtvolumentrends
- Flottenerweiterung
Importe verifizieren
Nach einem Import:
Vorherige Zahlen notieren
Notieren Sie die aktuellen Zahlen vor dem Import
Import durchführen
Führen Sie Ihre Importoperation aus
Seite aktualisieren
Aktualisieren Sie die Datenbanktools-Seite
Zahlen vergleichen
Überprüfen Sie, ob die neuen Zahlen dem erwarteten Anstieg entsprechen
Zeitstempel prüfen
Bestätigen Sie, dass der "Letzter Import"-Zeitstempel Ihrer Operation entspricht
Probleme identifizieren
| Symptom | Mögliche Ursache | Maßnahme |
|---|---|---|
| Plötzlicher Rückgang der Zahlen | Datenverlust oder Löschung | Sofort untersuchen |
| Stagnierender "Letzter Import" | Importoperationen könnten fehlschlagen | Import-Logs prüfen |
| Unerwartetes Wachstum | Doppelte Importe aufgetreten | Import-Historie überprüfen |
Zugriffskontrollen
Aktueller Zustand
Die Datenbankstatistik-API (/api/admin/database/stats) ist ohne explizite Rollenprüfung zugänglich.
Empfehlung
Diese Funktion sollte in Produktionsumgebungen nur auf Admin-Rollen beschränkt werden.
Empfohlener Zugriff
| Rolle | Empfohlener Zugriff |
|---|---|
| Super Admin | Vollzugriff |
| Global Admin | Vollzugriff |
| Admin | Lesezugriff |
| Flottenmanager | Kein Zugriff |
| Andere Rollen | Kein Zugriff |
Integration mit Importtools
Vor-Import-Verifizierung
Vor der Durchführung eines Imports:
- Notieren Sie aktuelle Zahlen aus den Statistikkarten
- Berechnen Sie erwartete Zahlen nach dem Import
- Fahren Sie mit dem Import fort
Nach-Import-Verifizierung
Nach Abschluss des Imports:
- Aktualisieren Sie die Datenbanktools-Seite
- Überprüfen Sie, ob die Zahlen um den erwarteten Betrag gestiegen sind
- Prüfen Sie, ob der "Letzter Import"-Zeitstempel aktualisiert wurde
- Überprüfen Sie die Importjob-Details auf Fehler
Technische Details
API-Endpunkt
URL: GET /api/admin/database/stats
Antwortformat:
{
"totalCustomers": 12450,
"totalRides": 156789,
"totalVehicles": 342,
"lastImport": "2025-12-25T14:23:15.000Z"
}
Caching
- Kein Caching implementiert: Frische Abfragen bei jeder Anfrage
Cache-Control: no-cache, no-store, must-revalidateHeader gesetztforce-dynamic-Modus verhindert Next.js-Static-Caching
Fehlerbehandlung
Falls Datenbankabfragen fehlschlagen:
- Gibt HTTP 500-Status zurück
- Fehlermeldung in der Antwort enthalten
- Statistikkarten zeigen "0" oder "Nie" als Fallback
Datenbanktabellen
customers-Tabelle
Primäre Tabelle für Kundendatensätze mit 40+ Feldern einschließlich:
- Persönliche Informationen
- Kontaktdaten
- Identitätsverifizierungsstatus
- Wallet-Guthaben
- Fahrthistorie-Statistiken
rides-Tabelle
Primäre Tabelle für Fahrtdatensätze mit 50+ Feldern einschließlich:
- Fahrtzeitstempel
- Strecke und Dauer
- Preisinformationen
- Kunden- und Fahrzeugreferenzen
- Zoneninformationen
vehicles-Tabelle
Primäre Tabelle für Fahrzeugdatensätze mit 45+ Feldern einschließlich:
- Fahrzeugidentifikation
- IoT-Geräteverknüpfung
- Batteriestatus
- Standortdaten
- Status und Verfügbarkeit
stripe_webhook_logs-Tabelle
Prüfprotokoll für Stripe-Ereignisse und Importe:
event_id: Eindeutige Ereignis-IDevent_type: Ereignistyp (Importtyp für Statistiken)processed_at: Zeitstempel der Verarbeitungstatus: Verarbeitungsstatus
Bewährte Praktiken
Regelmäßige Überwachung
- Tägliche Prüfung: Werfen Sie einen Blick auf die Zahlen während des täglichen Betriebs
- Vor/nach Import: Überprüfen Sie immer die Zahlen rund um Importoperationen
- Anomalie-Untersuchung: Untersuchen Sie unerwartete Zahlenänderungen
Dokumentation
Führen Sie Aufzeichnungen über:
- Erwartete Zahlen nach jedem Import
- Zeitstempel wichtiger Importe
- Eventuelle Zahlenabweichungen und deren Behebung
Import-Hygiene
- Importe zuerst testen: Verwenden Sie kleine Testdateien vor großen Importen
- Baseline aufzeichnen: Notieren Sie Zahlen vor jedem Import
- Erfolg verifizieren: Überprüfen Sie immer die Zahlen nach dem Import
Fehlerbehebung
Statistiken werden nicht geladen
Mögliche Ursachen:
- Datenbankverbindungsprobleme
- API-Endpunkt nicht erreichbar
- Netzwerk-Timeout
Lösungen:
- Seite aktualisieren
- Browser-Konsole auf Fehler prüfen
- Datenbankverbindung verifizieren
Zahlen entsprechen nicht den Erwartungen
Mögliche Ursachen:
- Import hatte Fehler (teilweiser Import)
- Duplikate wurden übersprungen
- Filter wurden während des Imports angewendet
Lösungen:
- Importjob-Fehlerdetails prüfen
- Import-Logs überprüfen
- Quelldatenintegrität verifizieren
Letzter Import zeigt "Nie"
Mögliche Ursache: Keine Import-Ereignisse in stripe_webhook_logs protokolliert
Hinweis
Nur Importe, die in stripe_webhook_logs protokolliert werden, erscheinen hier. Einige manuelle Operationen werden möglicherweise nicht erfasst.
Veraltete Daten nach Import
Ursache: Seite muss nach Abschluss des Imports aktualisiert werden
Lösung: Aktualisieren Sie die Seite manuell nach Abschluss der Importoperationen
Einschränkungen
Aktuelle Einschränkungen
- Keine historischen Daten: Nur aktuelle Zahlen, keine Trends
- Keine Aufschlüsselung nach Status: Nur Gesamtzahlen
- Keine Unterkonto-Filterung: Zeigt alle Datensätze über alle Unterkonten
- Keine Exportfunktionalität: Statistiken können nicht exportiert werden
Nicht enthalten
- Filterung nach weicher Löschung (deleted_at-Datensätze werden gezählt)
- Statusbasierte Zählungen (z.B. aktive vs. abgeschlossene Fahrten)
- Zeitreihendaten
- Aufschlüsselungen pro Unterkonto
Was kommt als Nächstes?
Nachdem Sie Datenbankstatistiken verstehen, erkunden Sie diese verwandten Themen:
- Analysen-Dashboard - Betriebsmetriken und Diagramme anzeigen
- Identitätsanalysen - Kundenverifizierungsmetriken
- Stripe-Integration - Zahlungs- und Importkonfiguration
Systemzustand-Überwachung
Datenbankstatistiken bieten eine schnelle Zustandsprüfung für Ihr System. Machen Sie es sich zur Gewohnheit, diese Zahlen vor und nach größeren Datenoperationen zu überprüfen, um die Datenintegrität sicherzustellen.