สรุปคอร์ส Intro to Data Engineering จาก DataCamp เข้าใจง่าย ครบ เหมือนเรียนเอง

data engineer intro course

วันก่อนแอดทอย DataRockie โพสเรื่องคอร์สด้าน Data Engineer ของ DataCamp ครับ ด้วยความที่ผมทำงานสายนี้อยู่แล้ว แต่เริ่มเรียนจากแบบครูพักลักจำ เลยลองไปเรียนใหม่ให้พื้นฐานแน่น ๆ

วันนี้นั่งว่าง ๆ เลยเรียนคอร์ส Introduction to Data Engineering จนจบ คอร์สนี้แบ่งเป็น 4 บทครับ ใช้เวลาเรียนประมาณบทละ 1 ชั่วโมง (เรียนจริง 30 นาที อีก 30 นาทีคือนั่งเงียบ ๆ ประมวลผล เพราะเนื้อหาเค้าล้นมาก บางทีเจอคำถามแล้วสงสัยว่าเค้าพูดถึงตอนไหน ?)

สำหรับใครที่อยากรู้ว่าในคอร์สนี้เค้าสอนอะไรบ้าง ผมสรุปมาให้แล้วแบบคร่าว ๆ ครับ ถ้าอยากลองเขียนโค้ดจริง แนะนำให้ไปสมัครคอร์สของ DataCamp เค้านะครับ เพราะมีโจทย์ให้เรานั่งทำสลับกับวีดิโอทฤษฎี ทำออกมาได้ค่อนข้างดีเลยครับ

บทที่ 1) Intro to Data Engineering

บทนี้พูดเล่ากว้าง ๆ ว่า Data Engineer ต่างกับ Data Scientist ยังไง

งาน Data Engineer เกิดมาจากว่าในองค์กรมีข้อมูลที่กระจัดกระจายกันมาก ขาดคนที่มีความสามารถในการเอาข้อมูลมารวมกัน ทำความสะอาด และจัดเก็บไว้ในฐานข้อมูลที่เหมาะกับการวิเคราะห์ข้อมูล

Data Engineer เป็นตำแหน่งที่ต้องทำงานร่วมกับ Data Scientist เพราะ Data Scientist มีหน้าที่ทำความเข้าใจในตัวข้อมูลเพื่อนำมาสร้างโมเดล Machine Learning ส่วน Data Engineer เป็นคนจัดการให้โมเดลเหล่านี้ทำงานได้อย่างไม่มีปัญหา

เครื่องมือที่ Data Engineer ใช้ แบ่งเป็น 3 ประเภทหลัก ๆ นั่นคือ

  • Database เครื่องมือเก็บข้อมูล เช่น MySQL / PostgreSQL
  • Processing เครื่องมือประมวลผลข้อมูลขนาดใหญ่ เช่น Spark / Hive
  • Scheduling เครื่องมือจัดกำหนดการประมวลผลข้อมูล เช่น Airflow, Oozie

งานหลัก ๆ ของ Data Engineer คือ การสร้าง Data Pipeline หมายถึง การนำข้อมูลจากแหล่งข้อมูลประเภทต่าง ๆ ไม่ว่าจะเป็นไฟล์ ฐานข้อมูล หรือ API ไปทำความสะอาด และนำไปเก็บไว้ใน Data Warehouse เพื่อให้ Data Scientist หรือ Business User นำไปใช้ต่อได้ง่าย

และสุดท้ายมีการพูดถึง Cloud Computing ครับ เพราะการจะประมวลผลข้อมูลขนาดใหญ่ บริษัทจำเป็นต้องมีเซิร์ฟเวอร์ขนาดใหญ่ ซึ่งในปัจจุบันเราสามารถใช้บริการ Cloud Computing เพื่อลดจำนวนเงินที่ต้องลงทุนกับเซิร์ฟเวอร์ในช่วงต้น ซึ่งเจ้าใหญ่ ๆ ในตลาดตอนนี้ ก็คือ AWS, Azure, GCP

บทที่ 2) Data Engineer Toolbox

hadoop ecosystem
ตัวอย่างเครื่องมือส่วนหนึ่งของ Data Engineer ครับ แค่นี้ก็เรียนไม่ทันแล้ววว

บทนี้พูดถึงเครื่องมือต่าง ๆ ที่ Data Engineer ต้องใช้ครับ โดยเริ่มจากการพูดถึงข้อมูลและฐานข้อมูลที่มีหลายประเภทกันก่อน

ข้อมูลมีทั้งแบบ Structured เช่น MySQL, Unstructured เช่น รูปภาพ เสียง, และ Semi-Structured เช่น JSON

ฐานข้อมูลก็มีทั้งแบบ SQL ที่เป็นตารางแบบฐานข้อมูลทั่วไป และ NoSQL ที่สามารถเก็บข้อมูลได้ทั้งแบบ Structured และ Semi-Structured

ต่อจากเรื่องของฐานข้อมูล ก็เป็นเรื่องของการประมวลผล (Data Processing) ซึ่งในการประมวลผลข้อมูลขนาดใหญ่ เราไม่สามารถรันบนคอมพิวเตอร์เครื่องเดียวได้ครับ เค้าเลยคิดค้นสิ่งที่เรียกว่า Parallel Computing ขึ้นมา

Parallel Computing คือ การที่เราแบ่งการประมวลผลไปให้คอมพิวเตอร์หลาย ๆ เครื่องทำ แล้วค่อยเอาผลลัพธ์มารวมกันอีกรอบ เพื่อให้ได้ความเร็วในการประมวลผลที่สูงขึ้น เทคโนโลยีที่รองรับก็เช่น Hadoop MapReduce, Spark, หรือ Dask (Pandas เวอร์ชั่น Parallel Computing)

Workflow Scheduling Framework เป็นเครื่องมือที่ทำให้เรากำหนดตารางงานได้ ว่าต้องการให้ประมวลผลข้อมูลอะไรในตอนไหน เช่น ตั้งเวลาให้ดึงข้อมูลมาทุก ๆ วัน เวลาเที่ยงคืน เครื่องมือที่ใช้กันเยอะ คือ Airflow ซึ่งใช้คอนเซปต์ของการสร้างกราฟที่ไปทางเดียว (Directed Acyclic Graph) ในการสร้าง Workflow

บทนี้มีสอนใช้ PySpark นิดหน่อยด้วยครับ เป็นการเขียน Python เพื่อใช้งาน Spark ซึ่งใครอยากทำงานสาย Data Engineer แอดแนะนำให้เรียนพื้นฐาน Python กันก่อนเลยครับ ได้ใช้แน่นอน เพราะเครื่องมือของ Data Eng ส่วนใหญ่ก็จะมี Python SDK มาให้เราใช้ครับ (ส่วนสาย R นี่หายากนิดนึงครับ ?)

บทที่ 3) Extract, Transform, Load (ETL)

สำหรับการทำ ETL ซึ่งเป็นงานหลักของ Data Engineer ผมเคยอธิบายไปแล้วในบทความ ETL คืออะไร ครับ ในคอร์สนี้ก็มีการพูดถึงเช่นกัน

  • Extract คือ การดึงข้อมูลดิบออกมา ซึ่งอาจจะมาเป็นไฟล์ ฐานข้อมูล หรือ API ก็ได้ มีการแนะนำการเขียนโค้ดดึงข้อมูลจากฐานข้อมูล PostgreSQL ในคอร์สนี้ด้วยครับ
  • Transform คือ การแปลงข้อมูลดิบออกมาให้เป็นระเบียบมากขึ้น เช่น การดึงชื่อบริษัทออกมาจากชื่ออีเมล, การเช็คความถูกต้องของวันเวลา, การแปลงชื่อเมืองให้อยู่ในรูปแบบเดียวกัน ฯลฯ ซึ่งขั้นตอนนี้หลาย ๆ คนก็รู้จักในชื่อของ “การทำความสะอาดข้อมูล” (Data Cleaning / Data Wrangling) นั่นเอง
  • Load คือ การนำข้อมูลที่เรา Transform เรียบร้อยแล้ว มาจัดเก็บใส่ฐานข้อมูลให้นำไปใช้ต่อง่าย ซึ่งฐานข้อมูลที่เรา Load ใส่ก็มักจะเป็นฐานข้อมูลแบบ OLAP ที่เหมาะกับการทำ Analytics (ฐานข้อมูลที่เราใช้สำหรับทำ Application ส่วนใหญ่จะเป็นแบบ OLTP ซึ่งเหมาะกับข้อมูลแบบ Transaction มากกว่า) เช่น RedShift หรือ PostgreSQL

เรามักจะนำ Extract, Transform, Load มารวมกันเป็น Data Pipeline 1 อัน โดยในคอร์สนี้เค้าสอนใช้ Airflow ในการสร้าง Data Pipeline ที่ใช้รัน ETL และมีให้ลองเล่น Interface ของ Airflow เล็ก ๆ น้อย ๆ ด้วยครับ

ขอเสริมจากประสบการณ์: การทำ Data Pipeline จริง ๆ จะซับซ้อนกว่าในคอร์สนี้นิดหน่อย ตรงที่เราจะต้องทำการ Log และดักจับ Error ด้วยครับ เพราะเป็นตกกะปิที่ Data Pipeline รันได้ปกติ แล้วอยู่ดี ๆ มันก็จะพังแบบงง ๆ ?

บทที่ 4) Case Study: DataCamp

บทสุดท้ายนี้ จะเป็นการเอาความรู้ที่เรียนมาทั้งหมด มาลองทำ Data Pipeline ของระบบแนะนำคอร์สเรียนของ DataCamp หรือ Recommendation System นั่นเอง

Data Pipeline อันนี้ก็จะมีโครงสร้างง่าย ๆ เลย คือ:

ดึงข้อมูล (Extract) ▶ ทำความสะอาด (Transform) ▶ คำนวณหาคอร์สแนะนำ (Process) ▶ เก็บใส่ Data Warehouse (Load)

ในการคำนวณหาคอร์สแนะนำ เค้าอธิบายเรื่อง Matrix Factorization ให้แบบเบื้องต้น ซึ่งถือเป็นพื้นฐานของการทำระบบ Recommendation System เลยครับ ในคอร์สนี้เค้าจะไม่ได้สอนเขียนระบบนี้ (เพราะอันนี้งานของ Data Scientist ครับ อย่าไปแย่งงานเค้า) แต่สอนการดึงข้อมูล กับทำความสะอาดด้วย Pandas ซึ่งเป็นงานของ Data Engineer ครับ

พอเราสร้างระบบ ETL เสร็จแล้ว ก็ได้เวลาเอามาตั้งตารางการทำงาน ซึ่งเค้าสอนเขียน Python สำหรับสร้าง Data Pipeline ใน Airflow (อันนี้คล้าย ๆ บทที่แล้วเลย)

จบแล้วครับ สรุปคือ คอร์สนี้สอนคอนเซปต์ของ Data Engineer ค่อนข้างครบเลยทีเดียว เรียนจบแล้วไปหัดใช้ Cloud ต่อเพื่อต่อยอดความรู้ได้เลยครับ

ข้อมูลเพิ่มเติมเกี่ยวกับคอร์สนี้

data engineer intro datacamp
คอร์ส Introduction to Data Engineer สอนโดย Data Engineer ที่ DataCamp ครับ

สำหรับใครที่สนใจเรียนเอง คอร์สนี้บทแรกเรียนฟรีครับ และใครซื้อสมาชิก DataCamp กันไว้แล้วก็เรียนได้จนจบเลย ส่วนถ้าใครยังไม่ได้เป็นสมาชิก แนะนำให้รอช่วงลดราคา เช่น Black Friday เค้าชอบมีส่วนลดปีละ $99 ออกมาครับ

ไปเรียนคอร์สนี้กันได้เลยที่ >> DataCamp: Intro to Data Engineering

และใครที่อยากอ่านด้านนี้เพิ่ม แอดเคยเขียนเรื่อง Data Engineer เป็นภาษาไทยให้อ่านกันหลายบทความแล้วครับ อันหลัก ๆ ที่อยากแนะนำก็คือ:

นอกจากนั้นก็มีสัมภาษณ์กับคุณฝน ซึ่งเป็น Machine Learning Engineer ที่บริษัท Sertis ถ้าใครอยากรู้ว่างาน Data Engineer จริง ๆ เป็นยังไง อ่านในบทความด้านล่างได้เลยครับ

เช่นเคยนะครับ ถ้าอ่านแล้วมีคำติชมอะไร หรืออยากให้เขียนถึงเรื่องไหน หรืออยากพูดคุยกับแอด ก็ทักมาได้ที่ เพจ DataTH ได้ตลอดเวลาครับ :D ติดตามเนื้อหาดี ๆ ใหม่ ๆ เกี่ยวกับเรื่อง Data ได้ทางเพจเช่นกันครับ

ทีมงาน DataTH เราทำงานกันเต็มที่ เพื่อสร้างคอนเท้นท์ดี ๆ มีสาระประโยชน์ ให้กับทางผู้อ่านเข้าถึงได้ฟรี บนเว็บไซต์ และบน Youtube Channel สินค้าและบริการที่ทีมงานแนะนำทั้งหมด มาจากความเห็นของทีมงาน เราแนะนำเฉพาะของดีที่เราเห็นว่ามีประโยชน์จริงเท่านั้นครับ

หากคุณชอบเนื้อหาแบบนี้ และอยากสนับสนุนให้ทีมงานมีแรงสร้างคอนเท้นท์ดี ๆ เพิ่ม ในอนาคต สามารถซื้อสินค้าหรือบริการผ่านลิงค์บนบทความของเราได้ สำหรับบางลิงค์ ทางทีมงานจะได้รับส่วนแบ่งเล็กน้อย ซึ่งจะไม่เป็นการเพิ่มภาระค่าใช้จ่ายให้กับทางผู้อ่านครับ ขอบคุณมากเลยนะครับที่ให้ความสนับสนุนทีมงาน DataTH มาโดยตลอด

บทความอื่น ๆ ที่เกี่ยวข้อง

PDPA Icon

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save