Definiowanie DAG-a
W poprzednich ćwiczeniach ukończyłeś fazy extract, transform i load osobno. Teraz połączymy to wszystko w jedną zgrabną funkcję etl(), którą znajdziesz w konsoli.
Funkcja etl() wyodrębnia surowe dane o kursach i ocenach z odpowiednich baz danych, czyści uszkodzone dane i uzupełnia brakujące wartości, wylicza średnią ocenę dla każdego kursu i tworzy rekomendacje na podstawie reguł decyzyjnych, a na końcu zapisuje te rekomendacje w bazie danych.
Jak pamiętasz z filmu, etl() przyjmuje jeden argument: db_engines. Zarówno etl, jak i db_engines są już dostępne w twoim środowisku pracy, więc wystarczy, że w definiowanym zadaniu wywołasz jedno drugim.
To ćwiczenie jest częścią kursu
Wprowadzenie do inżynierii danych
Instrukcje do ćwiczenia
- Uzupełnij definicję DAG-a, tak aby wykonywał się codziennie. Pamiętaj o użyciu notacji cron.
- Uzupełnij zadanie, tak aby wywoływało funkcję
etl()z odpowiednimi silnikami baz danych.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()