일일 작업 예약하기

데이터 엔지니어링 입문

Vincent Vankrunkelsven

Data Engineer, DataCamp

지금까지 진행한 작업

 

  • extract_course_data()extract_rating_data()로 추출
  • transform_fill_programming_language()로 결측값(NA) 정리
  • 코스별 평균 평점: transform_avg_rating()
  • 추천 대상 사용자-코스 ID 쌍 가져오기: 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_engines)
데이터 엔지니어링 입문

DAG 생성하기

from airflow.sdk import dag, task

@dag(dag_id="recommendations",
     start_date=datetime(2024, 1, 1),
     schedule="0 0 * * *")
def recommendations():

@task(task_id="recommendations_task") def recommendations_task(): etl(db_engines) recommendations_task() recommendations()
데이터 엔지니어링 입문

연습해 봅시다!

데이터 엔지니어링 입문

Preparing Video For Download...