Планирование ежедневных задач

Введение в дата-инжиниринг

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Что уже сделано

 

  • Извлечение с помощью extract_course_data() и extract_rating_data()
  • Очистка пропусков через transform_fill_programming_language()
  • Средние оценки курсов: transform_avg_rating()
  • Подходящие пары пользователь–курс: transform_courses_to_recommend()
  • Расчёт рекомендаций: transform_recommendations()
Введение в дата-инжиниринг

Загрузка в Postgres

 

  • Использование результатов в продуктах данных
  • Ежедневное обновление
  • Пример: рассылка писем с рекомендациями
Введение в дата-инжиниринг

Фаза загрузки

 

recommendations.to_sql(
    "recommendations",
    db_engine,
    if_exists="append",
)
Введение в дата-инжиниринг
def etl(db_engines):
    # Extract the data
    courses = extract_course_data(db_engines)
    rating = extract_rating_data(db_engines)
    # Clean up courses data
    courses = transform_fill_programming_language(courses)

# Get the average course ratings avg_course_rating = transform_avg_rating(rating)
# Get eligible user and course id pairs courses_to_recommend = transform_courses_to_recommend( rating, courses, )
# Calculate the recommendations recommendations = transform_recommendations( avg_course_rating, courses_to_recommend, )
# Load the recommendations into the database load_to_dwh(recommendations, db_engine))
Введение в дата-инжиниринг

Создание DAG

from airflow.models import DAG
from airflow.operators.python_operator import PythonOperator

dag = DAG(dag_id="recommendations",
          scheduled_interval="0 0 * * *")

task_recommendations = PythonOperator( task_id="recommendations_task", python_callable=etl, )
Введение в дата-инжиниринг

Давайте потренируемся!

Введение в дата-инжиниринг

Preparing Video For Download...