Skip to content

sikwel/data-engineering-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

siːkwəl: Data Engineering Challenge 🚀

Moin moin! Willkommen zum Data Engineering Projekt – hier geht's um Docker, Python, Open-Meteo API und ein paar Daten! Lies dir die Anleitung sorgsam durch und starte direkt mit dem Projekt.

Was du brauchst

Git

Kein Git? Kein Problem! Schnapp es dir hier: Git Downloads

Docker Desktop

Für die Challenge benötigst du Docker Desktop: Docker Desktop

Für Windows-Nutzer: WSL2 ist ein Muss

Falls du Windows nutzt, vergewissere dich, dass WSL2 installiert ist. Hier findest du eine Anleitung: WSL2 Installation Guide

VSCode

Als Entwicklungsumgebung nutzen wir einen vordefinierten Docker-Container. Hier haben wir dir schonmal ein paar hilfreiche Pakete vorinstalliert. Damit das läuft, benötigst du VSCode. Falls du bereits eine andere IDE hast, die sich mit einem Docker-Container verbindet, auch gut!

Projekt-Setup

  1. Klone das Repo:

    git clone https://github.com/sikwel/data-engineering-challenge.git
    cd data-engineering-challenge
  2. Öffne das Projekt in Visual Studio Code – der Devcontainer regelt!

  3. Falls etwas fehlt installiere es dir einfach per pip.

Was wir machen

Unser Test-Projekt hat ein paar Aufgaben für dich vorgesehen:

  1. Mit der Open-Meteo API das Wetter checken:

    • Schnapp dir die Wetterdaten mit der Open-Meteo API.
    • Nutze Pythons request library
    • Wir wollen uns historische Wetterdaten (auf Stundenbasis) für Oldenburg anschauen. Uns interessieren vor allem folgende Parameter:
      • Temperature
      • Relative Humidity
      • Rain
      • Weather Code
      • Wind Speed
      • Surface Pressure
    • Überlege dir ein geeigntes Logging im Fehler- oder Erfolgsfall. Das hilft nicht nur beim Debugging sondern freut den Benutzer 👍
    • Zeige deine Skills im Umgang mit APIs und Datenextraktion.
  2. Daten in DuckDB pumpen:

    • Lade die Daten in ein lokales DuckDB
    • Damit es nicht zu langweilig wird, soll beim Start entschieden werden, welche Lade-Strategie man verwenden möchte.
      • Full-Refresh: Alle Daten im Data Warehouse werden überschrieben und neu eingefügt.
      • Incremental: Nur neue Daten werden werden in das Data Warehouse geladen
    • Schau dir den Response an und überlege dir, wie die Daten sinnvoll in DuckDB geschrieben werden müssen.
  3. Steuerung des Python-Skripts:

    • Folgende Parameter des API-Aufrufs sollten per Kommandozeile überschrieben werden können:
      • Latitude
      • Longitude
      • Start Date
      • End Date
      • Timezone
  4. Docker-Container:

    • Packe deine Python-Anwendung in einen Docker-Container.
    • Am Ende wollen wir deine Anwendung im Docker-Container starten und die Parameter für den API Aufruf übergeben. Die Ausgabe des Loggings sollten in der Konsole zu sehen sein.
  5. ...and beyond:

    • Halt den Code clean und kommentiere klug.
    • Definiere Funktionen und Klassen wo sinnvoll.
    • Nutze git um dein Projekt zu versionieren und am Ende wieder in das Repository zu pushen, damit wir uns dein Ergebnis anschauen können.

Let's Code!

Viel Erfolg und vor allem viel Spaß beim Coden! Bei Fragen stehen wir dir zur Verfügung. Happy coding! 🚀✨

Anhang

Nützliche Links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published