การกำหนด DAG
ในแบบฝึกหัดก่อนหน้านี้ คุณได้ทำขั้นตอน extract, transform และ load แยกกันจนครบแล้ว ตอนนี้ทุกขั้นตอนถูกรวมไว้ในฟังก์ชัน etl() ฟังก์ชันเดียวอย่างเรียบร้อย ซึ่งสามารถดูได้ในคอนโซล
ฟังก์ชัน etl() จะดึงข้อมูลคอร์สและคะแนนรีวิวดิบจากฐานข้อมูลที่เกี่ยวข้อง ทำความสะอาดข้อมูลที่เสียหายและเติมค่าที่หายไป คำนวณคะแนนเฉลี่ยของแต่ละคอร์ส สร้างคำแนะนำตามกฎการตัดสินใจสำหรับการสร้างคำแนะนำ และสุดท้ายโหลดคำแนะนำเหล่านั้นเข้าสู่ฐานข้อมูล
ตามที่คุณอาจจำได้จากวิดีโอ etl() รับอาร์กิวเมนต์เพียงตัวเดียวคือ db_engines ทั้ง etl และ db_engines มีอยู่ในเวิร์กสเปซของคุณแล้ว ดังนั้น task ที่คุณกำหนดขึ้นมาแค่ต้องเรียกใช้ตัวหนึ่งด้วยอีกตัวหนึ่งเท่านั้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Data Engineering เบื้องต้น
คำแนะนำการฝึกหัด
- กำหนด DAG ให้สมบูรณ์เพื่อให้ทำงานทุกวัน โดยต้องใช้รูปแบบ cron notation
- กำหนด task ให้สมบูรณ์เพื่อให้เรียกใช้ฟังก์ชัน
etl()พร้อมกับ database engines
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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()