Aufgabe
Verkaufsexporte kamen aus verschiedenen Systemen mit unterschiedlichen Kodierungen und Trennzeichen, mit Wiederholungen und leeren Zellen. Sie sollten an einem Ort landen, ohne defekte Dateien durchzulassen, und die Daten sollten sich ohne Excel ansehen lassen.
Lösung
Eine Webanwendung mit Django und pandas gebaut. Beim Speichern wird die Datei in die Raw-Schicht kopiert, mit mehreren Kodierungen gelesen und geprüft. Schlägt eine Prüfung fehl, werden alle Schichten dieses Uploads gelöscht und der Nutzer sieht die Fehlerliste. Sonst landen die Daten in Ingest, Table und Destilled, woraus Vorschau, Diagramme und Export lesen.
Umgesetzte Aufgaben
- CSV-Upload im Admin mit wählbarem Trennzeichen gebaut
- Kodierung automatisch erkannt: UTF-8, UTF-8 mit BOM oder Windows-1251
- Datei vor dem Speichern geprüft: doppelte Zeilen und Lücken lehnen den Upload ab
- Daten in Schichten abgelegt: Quelle, UTF-8-CSV, typisiertes und dedupliziertes Parquet
- Vorschau der ersten Zeilen eines Datensatzes gebaut
- Diagrammbaukasten gebaut, Spalten werden auf die Achsen gezogen
- Spaltenstatistik gezeigt und Export des Datensatzes zurück nach CSV ermöglicht
Ergebnis
Ein defekter Export gelangt nicht in die Daten: die Prüfung stoppt ihn und zeigt, was zu korrigieren ist. Ein Datensatz lässt sich ohne Excel ansehen, als Diagramm darstellen und zurück exportieren. Der Code ist offen auf GitHub.
Technologien
PythonDjangopandaspyarrowParquetPlotlyBootstrap