Définir le DAG
Dans les exercices précédents, vous avez réalisé séparément les phases d’extraction, de transformation et de chargement. À présent, tout est regroupé dans une fonction etl() claire que vous pouvez découvrir dans la console.
La fonction etl() extrait les données brutes de cours et d’évaluations depuis les bases pertinentes, nettoie les données corrompues et renseigne les valeurs manquantes, calcule la note moyenne par cours et crée des recommandations selon les règles de décision prévues, puis charge enfin ces recommandations dans une base de données.
Comme vous vous en souvenez peut-être de la vidéo, etl() accepte un seul argument : db_engines. Vous pouvez le transmettre à la tâche via op_kwargs dans le PythonOperator. Vous pouvez lui passer un dictionnaire qui sera injecté comme kwargs dans la fonction appelée.
Cet exercice fait partie du cours
Introduction au data engineering
Instructions
- Complétez la définition du DAG pour qu’il s’exécute quotidiennement. Utilisez la notation cron.
- Complétez le
PythonOperator()en passant les bons arguments. En plus deetl,db_enginesest aussi disponible dans votre espace de travail.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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={"____": ____},
)