แก้ปัญหา "Error: DAG Import Errors" ยังไง?

สวัสดีครับ :pray:
ผมมือใหม่มากๆสำหรับ DE อยากจะลองสร้าง Data Pipeline ด้วย Apache Airflow เองดู
แล้วได้ลองดูคลิปของพี่กานต์คลิปนี้
ทำ Data Pipeline แบบง่ายๆ ด้วย เครื่องมือสุดฮิตอย่าง Apache Airflow
แล้วก่อนหน้านี้ก็ดูคลิปที่ติดตั้ง Apache Airflow ไว้บนเครื่องของตนเอง ติดตั้ง Apache Airflow บน Windows 10

  • จากคลิปแรก ผมก็ลองทำตามโดยใช้ code ใน github ที่พี่กานต์แปะไว้ใต้คลิป
    แล้วผมก็มาดูใน Apache Airflow ก็เจอ Error แบบนี้ครับ ผมลองใช้ Error ไปค้นหาหลายเว็บแล้ว แต่ก็ยังไม่ทราบวิธีแก้เลยครับ :joy: ฝากรบกวนพี่ๆช่วย DE มือใหม่คนนี้หน่อยค้าบ :heart:

  • ปล. ปัญหาของผมมันอาจจะดูเล็กเกินไปสำหรับสร้างโพสต์นี้ขึ้นมา แต่อย่างน้อยผมคิดว่าโพสต์นี้ อาจจะเป็นตัวช่วยสำหรับ DE มือใหม่ในอนาคตได้ครับ :child: (หรือมีช่องทางอื่นที่ให้สอบถามปัญหาย่อยๆ บอกได้นะครับ)

  • ปล2. :pray:ขอบคุณพี่กานต์ที่สร้างเว็บบอร์ดแบบนี้ขึ้นมามากครับบบ ผมตามหามานานมากเว็บบอร์ดดีๆแบบนี้ พัฒนาต่อไป เป็นกำลังใจให้ครับ :heart_eyes:

จาก error ที่บรรทัดสุดท้าย ใน screenshot นะครับ

ModuleNotFoundError: No module named: 'airflow.providers.mysql'

ตรงนี้จะหมายความว่ายังขาดโมดูลที่เอาไว้เชื่อมต่อกับ MySQL อยู่ครับผม ทำให้ยังไม่สามารถใช้งาน DAG ที่ผมทำไว้ได้

พอดีในวีดีโอผมไม่ได้พูดถึงวิธีติดตั้งแพคเกจหรือโมเดลไว้ (ต้องขออภัยด้วยครับ :pray: แหะ ๆ) ทีนี้ใน repo ของผมจะมีไฟล์ requirements.txt อยู่ครับ อยากให้ลองคำสั่งด้านล่างนี้

pip install -r requirements.txt`

จะเป็นการติดตั้งแพคเกจทั้งหมดที่มีชื่ออยู่ในไฟล์ requirements.txt หรืออาจจะติดตั้งแค่แพคเกจที่เกี่ยวข้องแพคเกจเดียวก็ได้ครับ ใช้คำสั่งด้านล่างนี้

pip install apache-airflow-providers-mysql

ประมาณนี้ครับผม ถ้ายังติด error อีก สามารถมาคอมเม้นต์เพิ่มเติมได้เลย ยินดีช่วยเหลือเต็มที่ครับ ^^


ปล. ปัญหาของผมมันอาจจะดูเล็กเกินไปสำหรับสร้างโพสต์นี้ขึ้นมา แต่อย่างน้อยผมคิดว่าโพสต์นี้ อาจจะเป็นตัวช่วยสำหรับ DE มือใหม่ในอนาคตได้ครับ :child: (หรือมีช่องทางอื่นที่ให้สอบถามปัญหาย่อยๆ บอกได้นะครับ)

ตรงนี้ไม่มีปัญหาเลยครับ ต้องขอบคุณมาก ๆ ด้วยที่มาแปะปัญหาที่เจอไว้ ไม่ว่าจะเล็กหรือใหญ่ หรือไร้สาระ สามารถสร้างโพสต์ขึ้นมาพูดคุยกันได้เลยนะครับ มาร่วมสร้าง knowledge + community กัน :blush:

ปล2. :pray:ขอบคุณพี่กานต์ที่สร้างเว็บบอร์ดแบบนี้ขึ้นมามากครับบบ ผมตามหามานานมากเว็บบอร์ดดีๆแบบนี้ พัฒนาต่อไป เป็นกำลังใจให้ครับ :heart_eyes:

Love ครับ :heart_eyes:

ตรงนี้ไม่มีปัญหาเลยครับ ต้องขอบคุณมาก ๆ ด้วยที่มาแปะปัญหาที่เจอไว้ ไม่ว่าจะเล็กหรือใหญ่ หรือไร้สาระ สามารถสร้างโพสต์ขึ้นมาพูดคุยกันได้เลยนะครับ มาร่วมสร้าง knowledge + community กัน :blush:

ฮืออออ ขอบคุณค้าบบ :blush:

แต่ว่าาา…
:cry: มัน Error เพราะอะไรหรอครับบ

โอ้ ต้องติดตั้ง MySQL ลงบนเครื่องก่อนครับ ลองสั่งคำสั่งตามนี้ครับผม เพื่อติดตั้งลงบนเครื่อง

sudo apt install mysql-server

แอบถามเพิ่มเติมครับ ไม่แน่ใจว่าเคยใช้ Docker มาก่อนหรือเปล่า แต่ถ้าไม่เคย เดี๋ยวผมช่วยแก้ปัญหา error ที่กำลังเจออยู่นี้ให้สามารถรัน Airflow ให้ได้ก่อนนะครับ แล้วเดี๋ยวจะแนะนำให้ไปท่า Docker แทน :smiley:

ติดตั้งตาม code นี้แล้วครับ แต่ Error ก็ยังเป็นเหมือนเดิมอะครับ :smiling_face_with_tear:

ไม่เคยใช้เลยครับ แต่เห็นคลิปที่พี่กานต์ทำไว้อยู่
หรือตอนนี้ผมควรเปลี่ยนไปใช้ Docker แทนเลยดีครับ :face_with_raised_eyebrow:

:face_with_monocle:ผมลองทำตามคลิปพี่กานต์ตอนนี้ติดปัญหาตรงที่หลังจากใช้คำสั่ง

docker-compose up

ผมก็ลองทำตามคลิปพี่กานต์ต่อ เปิดอีก Terminal เพื่อรันคำสั่ง

airflow db init

แต่ก็ขึ้น Error แบบนี้อะครับ

แล้วพอจะใช้คำสั่งเพื่อ exec อีกรอบ

docker-compose exec airflow-scheduler bash

  • ก็ Error แบบนี้ครับ (ผมอาจจะยังไม่เข้าใจเรื่อง container ด้วย ไม่รู้ว่าผมพลาดอะไรตอนใช้ Docker หรือเปล่า)

อยากแนะนำให้ไปทาง Docker จะดีกว่า เพราะว่าจะไม่ค่อยติดปัญหาแนว ๆ เพราะว่าเป็นเครื่อง Mac บ้าง หรือเป็น Windows บ้างอะไรแบบนี้ครับผม

แล้วก็ตามรูปที่สั่ง airflow db init ไม่ได้ จากรูป screenshot ที่แปะมานะครับ เป็นเพราะว่าจังหวะที่กำลังจะรันคำสั่ง ตัว shell ได้หลุดออกมาจาก container แล้ว เพราะว่า container ตายเลยรันไม่ได้ครับ

ส่วนสาเหตุที่ container ตาย อันนี้ต้องดู log อย่างเดียวเลยว่าเป็นเพราะอะไร T-T พอจะลองสั่ง

docker-compose logs airflow-scheduler

แล้วแปะ log ที่พ่นออกมาทั้งหมดมาให้ดูสักหน่อยครับผม

นี่ครับผม :bowing_man:

เอ… ถ้ามีประมาณนี้ก็ไม่น่ามีปัญหาอะไรนะครับ รอสัก 5-10 นาที ลองสั่ง exec อีกสักรอบดู

ปล. การ up ขึ้นมาครั้งแรกจะค่อนข้างนานครับผม

ได้แล้วครับพี่กานนนต์ ขอบคุณครับบ :grin:

ตอนนี้ก็เริ่มต้นทำ Data Pipeline ตามคลิปนี้ได้แล้ววว :confetti_ball:

ทำ Data Pipeline แบบง่ายๆ ด้วย เครื่องมือสุดฮิตอย่าง Apache Airflow By Data Engineer Cafe

แต่ว่าตอนนี้ยังไม่รู้วิธีใช้ Database ร่วมกับ Docker เดี๋ยวผมลองศึกษาเรื่อยๆ
ถ้าเจอปัญหาอะไรอีก ผมขอกลับมารบกวนพี่กานต์ และพี่ๆท่านอื่นๆใน Data Engineer Cafe แห่งนี้อีกครั้งนะค้าบ :heart_eyes:

ขอบคุณทุกคนอีกครั้งค้าบบบ :pray:

2 Likes

เย้ ๆๆ :tada: ยินดีมากครับบบ มาถามได้เรื่อย ๆ เลยครับผม

1 Like