De DAG definiëren
In de vorige oefeningen heb je de extract-, transform- en load-fase apart voltooid. Nu is alles samengebracht in één nette functie etl() die je in de console kunt bekijken.
De functie etl() haalt ruwe cursus- en beoordelingsgegevens op uit de relevante databases, schoont corrupte data op en vult ontbrekende waarden aan, berekent de gemiddelde beoordeling per cursus en maakt aanbevelingen op basis van de beslisregels voor aanbevelingen, en laadt ten slotte de aanbevelingen in een database.
Zoals je je uit de video herinnert, accepteert etl() één argument: db_engines. Je kunt dit aan de taak doorgeven via op_kwargs in de PythonOperator. Je kunt hier een dictionary aan doorgeven die wordt ingevuld als kwargs in de callable.
Deze oefening maakt deel uit van de cursus
Introductie tot Data Engineering
Oefeninstructies
- Maak de DAG-definitie af zodat deze dagelijks draait. Gebruik hiervoor de cron-notatie.
- Maak de
PythonOperator()af door de juiste argumenten mee te geven. Naastetlisdb_enginesook beschikbaar in je workspace.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Define the DAG so it runs on a daily basis
dag = DAG(dag_id="recommendations",
schedule_interval="____")
# Make sure `etl()` is called in the operator. Pass the correct kwargs.
task_recommendations = PythonOperator(
task_id="recommendations_task",
python_callable=____,
op_kwargs={"____": ____},
)