Definiera DAG:en
I de tidigare övningarna har du slutfört extraherings-, transformerings- och laddningsfaserna var för sig. Nu sätts allt detta ihop i en enda smidig funktion, etl(), som du hittar i konsolen.
Funktionen etl() extraherar rådata om kurser och betyg från relevanta databaser, rensar korrupt data och fyller i saknade värden, beräknar genomsnittligt betyg per kurs och skapar rekommendationer utifrån beslutsreglerna för att ta fram rekommendationer, och laddar slutligen in rekommendationerna i en databas.
Som du kanske minns från videon tar etl() emot ett enda argument: db_engines. Både etl och db_engines finns tillgängliga i din arbetsyta, så uppgiften du definierar behöver bara anropa den ena med den andra.
Den här övningen är en del av kursen
Introduktion till datatekniker
Övningsinstruktioner
- Slutför DAG-definitionen så att den körs dagligen. Se till att använda cron-notation.
- Slutför uppgiften så att den anropar funktionen
etl()med databasmotorerna.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Define the DAG so it runs on a daily basis
@dag(dag_id="recommendations",
start_date=datetime(2024, 1, 1),
schedule="____")
def recommendations():
# Make sure the task calls etl() with the database engines
@task(task_id="recommendations_task")
def recommendations_task():
____(____)
recommendations_task()
# Run the DAG
recommendations()