เห็นมีหลายคนถามเข้ามาว่างานของ Data Engineer ทำอะไรบ้าง? เรียนที่ไหนดี? งานสายนี้เป็นสายที่เงินเดือนดีมาก (เงินเดือนเฉลี่ยสูงกว่า Data Scientist อีก) แต่หาเรียนยากมาก ๆ เพราะเป็นสายงานที่มีเทคโนโลยีให้เลือกใช้เยอะ แต่ละบริษัทก็ใช้ไม่เหมือนกัน
วันนี้เลยจะมาสรุป Conceptให้ฟังกัน อันนี้เป็นการสร้าง Data Pipeline สำหรับระบบ Data Science แบบ End-to-End ก็คือ ตั้งแต่เริ่มเก็บข้อมูล ไปจนถึงนำข้อมูลไปทำ Analytics เลย ถ้าอ่านจบแล้วไปเรียนจนทำได้ครบ สมัครงานที่ไหนเค้าก็รับ!
ขั้นตอนการทำงานของ Data Pipeline แบบ End to End
โพสนี้แนะนำให้ดูรูปประกอบก่อน เพราะแอดตั้งใจวาดม๊ากกกกกกกกก ดูเสร็จแล้วอ่านต่อข้างล่างได้เลย เริ่มจากซ้ายไปขวาเด้อ มาดูกันว่า Data Engineer ต้องทำอะไรบ้าง
1) เขียนโค้ดเก็บข้อมูลจากแหล่งต่าง ๆ = ข้อมูลมาได้จากหลายทาง เช่น เซ็นเซอร์เก็บข้อมูล, โปรแกรมต่าง ๆ เช่น Point of Sale (เครื่องคิดเงินตามร้านค้า) หรือแม้แต่ Excel ที่คนกรอก งานนี้อาจจะต้องเขียน NodeJS ดึงจาก API บ้าง, เขียน JavaScript ไปดักข้อมูลในเว็บบ้าง, หรือแม้แต่เขียน Bash Script ไปดึงไฟล์
2) เขียนโค้ด Ingestion = ข้อมูลที่เก็บมาส่วนใหญ่จะเป็นไฟล์ดิบ ๆ ใน Landing Zone (เช่น HDFS) เอาไปทำอะไรยังไม่ได้ เราก็ต้องทำการโหลดข้อมูลเรานี้เข้าระบบฐานข้อมูลที่เราเอามาจัดการต่อได้ง่ายก่อน งานในส่วนนี้ก็คือการโหลดข้อมูลเข้าฐานข้อมูลที่เป็น Staging Layer หรือ Data Lake (เช่น Hive)
3) เขียนโค้ด Integration = ข้อมูลใน Staging Layer จะเป็นข้อมูลที่ค่อนข้างดิบ แต่อยู่ในฐานข้อมูลทำให้เราดัดแปลงได้ง่ายแล้ว ส่วนนี้ก็จะเป็นการแปลงข้อมูลให้เหมาะสมกับ Data Warehouse ที่เราจะเก็บ เช่น แปลงหน่วยของวันที่ให้เหมาะสม หรือแปลงเลขให้มีทศนิยมตามที่ต้องการ พอแปลงเสร็จก็เก็บลง Data Warehouse ซึ่งองค์กรใหญ่ ๆ จะเรียกว่า EDW (Enterprise Data Warehouse) และบางครั้งก็มีการแบ่งย่อยไปเป็น Data Mart ตามหน่วยธุรกิจอีก ขั้นตอนนี้แหละที่เค้ามักจะเรียกกันว่า ETL (อ่านเพิ่มเติมได้ที่บทความ ETL คืออะไร)
4) นำข้อมูลไปวิเคราะห์, ทำ Report, ทำ Dashboard = งานส่วนนี้ Data Scientist จะเป็นคนทำมากกว่า แต่ก็อาจจะมีบางส่วนที่ยังต้องใช้ความช่วยเหลือจาก Data Engineer เพื่อเตรียมข้อมูลให้พร้อมไปทำ Data Wrangling (ทำความสะอาดข้อมูล) ซึ่งส่วนนี้เป็นส่วนที่เราพูดถึงกันบ่อย ๆ ไม่ว่าจะเป็นการทำ Data Visualization, Predictive Model, Neural Network, Deep Learning ฯลฯ
สรุป การสร้าง Data Pipeline
จากที่เล่ามาด้านบน จะเห็นได้ว่าจริง ๆ งาน Data Science เป็นส่วนปลายน้ำของทั้ง Flow นี้เลย เพราะฉะนั้นสำหรับองค์กรไหนที่อยากเริ่มต้น แต่ไม่รู้จะเริ่มต้นยังไง ก็จ้างแอดได้ #ผิด
สำหรับองค์กรไหนที่อยากเริ่มต้นทำ Data Science ทำโมเดล Machine Learning เก๋ ๆ ก็เริ่มจากสร้างทีม Data Engineer ที่แข็งแกร่งขึ้นมาก่อนครับ
ตอนนี้ลองอ่านบทสัมภาษณ์ฝน Machine Learning Engineer กันก่อน จะได้เข้าใจงานของสายนี้มากขึ้นครับ
บทความแนะนำสำหรับอ่านด้าน Data Pipeline เพิ่มเติม:
สำหรับท่านที่อ่านมาจนจบ ขอกราบขอบพระคุณ และอยากให้ช่วยคอมเม้นท์ไว้ด้านล่างหน่อยครับว่าสนใจอยากอ่านเรื่องไหนแบบเจาะลึกเป็นพิเศษ เดี๋ยวจะได้จัดให้ครับ :D
แอดเพิร์ธ