Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 2.8 KB

README.md

File metadata and controls

49 lines (38 loc) · 2.8 KB

Project_Data_Engineering_DLMDWWDE02

Hintergrund

  • Zu erstellen war eine Batch-Pipeline, welche für eine datenintensive Applikation mindestens eine Millionen Datensätze zu einem fiktiven Use_Case einließt, verarbeitet und speichert.
  • Diese Daten sollen im weiteren Verlauf, welcher nicht Teil dieses Moduls ist, für die Aktualisierung eines ML-Alogirhtmus genutzt werden.

Anforderungen Use-Case

  • Zu berücksichtigende Aspekte waren die Verlässlichkeit, Skalierbarkeit und Wartbarkeit des Systems.
  • Die Versionierung des Codes sollte über Github erfolgen.
  • Im Sinne der Microservice Architektur sollte auf das Prinzip der Containerisierung zurückgegriffen werden.

Anforderungen Host-System

  • Auf dem Hostsystem sollte Docker installiert sein, idealerweise mit der Docker Desktop komponente. Diese dient der visuellen Überwachung der Container. Auch können über diesen die Logs der Container eingesehen werden.
  • Das gesamte Repository muss im selben Verzeichnis des Hostsystems liegen. Hierzu muss auch folgende CSV-Rohdatei "nyc_yellow_taxi_trip_records.7z" heruntergeladen werden. Auch diese muss im besagten Verzeichnis liegen und vor Nutzung entpackt werden. Hierfür kann beispielsweise 7zip genutzt werden.
  • Die Installation von Python ist nicht notwendig, da dies bereits über die jeweiligen Container bereitgestellt wird.

Architektur

Skizze der Datenarchitektur

Ausführen der Pipeline

  1. Docker starten.
  2. Im lokalen Verzeichnis "CMD" ausführen. Im Ordner "Project Data Engineering II IU" liegen beispielsweise alle Dateien.
C:\Users\PycharmProjects\Project Data Engineering II IU>
  1. Docker-Container Images erstellen:
docker-compose build --no-cache
  1. Pipeline Ausführen.
docker-compose up
  1. Pipeline führt alle zuvor definierten Schritte aus. Die angezeigten Logs in CMD geben Auskunft über den aktuellen Status. Es wurden verschiedene Informationen für den Endnutzer hinzugefügt. Beispielsweise:
jupyter-pyspark-notebook               | Verbindung zur PostgreSQL-Datenbank cleaned_data erfolgreich hergestellt.
jupyter-pyspark-notebook               | Es wurden 63417 Ausreißer entfernt.
jupyter-pyspark-notebook               | Schreiben der Daten in die Tabelle cleaned_data erfolgreich.

Insight Plots

Trip_Distance_vs_Fare_Amount_Color-coded_by_Trip_Duration Fahrten_pro_Stunde Umsatz_nach_VendorID