Skip to content

stroeer/scg-data-coding-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Aufgaben

Aufgabe 1: CTR- und Engagement-Analyse mit SQL

Gegeben sei folgende Tabelle user_events:

Spaltenname Typ
user_id INTEGER
teaser_id INTEGER
event_type STRING (impression, click, share)
timestamp TIMESTAMP
device_type STRING (mobile, desktop, tablet)
country STRING (DE, FR, US, …)

Teil A – CTR

Schreibe eine SQL-Query, die für das Jahr 2022 die CTR je teaser_id berechnet:

CTR = Clicks / Impressions

Exemplarische Ausgabe:

teaser_id clicks impressions ctr
123 450 35000 0.01
456 789 25000 0.03
789 123 15000 0.01

Teil B – Länder CTR-Vergleich

Schreibe eine SQL-Query, die für jede teaser_id die CTR in den Top-2-Ländern (nach Klicks) berechnet und die prozentuale CTR-Differenz zwischen diesen beiden Ländern ermittelt.

Exemplarische Ausgabe:

teaser_id top_country_1 ctr_country_1 top_country_2 ctr_country_2 ctr_diff
123 DE 0.045 US 0.032 28.88
456 FR 0.038 DE 0.035 7.89
789 FR 0.026 DE 0.015 42.31

Anforderungen:

  • Nur Daten aus dem Jahr 2022 berücksichtigen
  • Nur Teaser berücksichtigen, die mindestens 2 Länder haben

Aufgabe 2: AB-Test-Zwischenergebnisse analysieren und speichern

Problemstellung

Ein Python-Lambda empfängt über SNS eine Nachricht mit einem AB-Test-Zwischenstand. Es analysiert die Daten, ermittelt die Variante mit der besten Leistung gemäß definierten Kriterien und speichert das Ergebnis in einer PostgreSQL-RDS-Datenbank.


Aufgabenstellung

Erstelle ein Git-Repository mit:

1. Python Lambda

  • Eingabedaten verarbeiten
  • Gewinner ermitteln
    • Eine Variante ist Gewinner, wenn sie mindestens 20 % höhere CTR hat als alle anderen Varianten
  • Ergebnis in die Datenbank schreiben

2. Fehlerbehandlung und Logging

  • Fehler loggen
  • Statusmeldungen loggen

3. Dokumentation

  • Struktur der Lösung beschreiben
  • Funktionsweise erklären

Testprojekt

Ein Rumpfprojekt zur lokalen Simulation des SNS-Aufrufs steht bereit: todo

Start: docker compose up --build

Beispiel-Daten befinden sich im Ordner sample-requests


Zwischenergebnis

Das Ergebnis soll enthalten:

  • CTR
  • Gewinner-Variante zum aktuellen Zwischenstand

Wichtiger Hinweis zur Bearbeitung

Bitte arbeite nicht direkt in diesem Repository.

Damit Lösungen anderer Bewerber nicht einsehbar sind, gehe bitte wie folgt vor:


Repository klonen

git clone <repo-url>
cd <projektname>

Eigenes privates Repository erstellen

  • Erstelle ein neues privates Repository in deinem GitHub-Account
  • Entferne die bestehende Remote-Verbindung und füge dein eigenes Repository hinzu:
git remote remove origin
git remote add origin <dein-privates-repo>
git push -u origin main

Bearbeitung

  • Arbeite ausschließlich in deinem privaten Repository
  • Committe regelmäßig, damit dein Arbeitsprozess nachvollziehbar ist

Abgabe

Sende uns nach Fertigstellung:

  • den Link zu deinem Repository

👉 Stelle sicher, dass folgende Accounts Zugriff haben:

  • cmzr
  • tpietsc1

About

SCG-DATA Coding Challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors