Danil Sidorov
RU EN DE
Telegram

Data Lake für Verkaufsexporte

CSV-Upload aus Warenwirtschaftssystemen mit Qualitätsprüfung, Schichten von der Quelldatei bis Parquet und Diagrammen

Case-Study-Titelbild „Data Lake für Verkaufsexporte“

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

Quellen

Die Links belegen die Zahlen in diesem Projekt

Erzählen Sie von Ihrer Aufgabe

Telegram