Data Engineer ทำหน้าที่ออกแบบ Data Pipeline ตั้งแต่การนำข้อมูลจากแหล่งข้อมูลต่างๆ มาเก็บไว้รวมกันใน Data Lake และจะมีการจัดโครงสร้างของข้อมูลก่อนที่จะนำไปเก็บไว้ที่ Data Warehouse รวมไปถึงการออกแบบ Data Mart สำหรับข้อมูลผลลัพธ์ที่พร้อมสำหรับการแสดงผล
Data Engineer จะเป็นผู้ออกแบบว่าจะใช้เทคโนโลยีอะไรเพื่อให้ Pipeline ทำงานได้อย่างมีประสิทธิภาพ ดังนั้น Data Engineer จะต้องมีความรู้ด้านระบบและรู้จักเครื่องมือที่หลากหลาย
คำว่า ETL ย่อมาจาก Extract-Transform-Load โดย Extract คือ การนำข้อมูลเข้า, Transform คือ การปรับแต่งให้ข้อมูลอยู่ในรูปแบบที่เหมาะสม และ Load คือ การนำข้อมูลไปเก็บไว้ในสถานที่ที่จัดเตรียมเอาไว้
กระบวนการ ETL โดยส่วนใหญ่จะอยู่ในส่วนของ Data Warehouse เนื่องจากใน Data Warehouse เป็นส่วนที่จำเป็นต้องมีการ Transform ข้อมูลก่อนที่จะเข้า Warehouse ในขณะที่ Data Lake จะเก็บเป็น Raw File ทำให้อาจไม่จำเป็นต้อง Transform
ดังนั้น ETL Developer จึงทำหน้าที่พัฒนากระบวนการ ETL นั่นเอง ซึ่งแตกต่างจาก Data Engineer ตรงที่ Data Engineer จะ Focus ทั้ง Pipeline ของระบบข้อมูลตั้งแต่การออกแบบ Data Lake การออกแบบ Data Warehouse การเขียน ER-Diagram การพัฒนา ETL และการทำความเข้าใจในเชิงธุรกิจ ในขณะที่ ETL Developer จะทำงานในส่วนของ ETL อย่างเดียวเท่านั้น
สาเหตุที่บางองค์กรมีการแยกตำแหน่ง ETL Developer ออกมาจาก Data Engineer ก็อาจจะเป็นเพราะงาน Query ข้อมูลและการพัฒนางานในส่วนของ ETL มีปริมาณงานจำนวนมาก เป็นงานที่ไม่ได้ต้องการ Skill เยอะเท่า Data Engineer ในขณะเดียวกัน การเป็น ETL Developer สามารถต่อยอดไปเป็น Data Engineer ได้ในอนาคต แต่นั่นก็ขึ้นอยู่กับความสามารถของคนแต่ละคน เพราะงานด้าน Data Engineer จะมีส่วนของการออกแบบ Flow ของข้อมูลที่มิได้เป็นงานด้านการพัฒนาโปรแกรมเพียงอย่างเดียว
ข้อสรุปคือ Data Engineer จะทำงานทั้งในแนวลึกและแนวกว้าง กล่าวคือคนที่เป็น Data Engineer จะต้องมีความรู้ด้านการบริหาร Database และ Data Management อย่างครบวงจรและควรมีความรู้ในด้านอื่นที่เกี่ยวข้องอีกด้วย เช่น Data Governance, Data Privacy Policy, Security และ Data Analytics ส่วน ETL Developer จะทำงานเป็นส่วนย่อยของ Data Engineer ทั้งนี้สิ่งที่เหมือนกันก็คือทั้ง 2 ตำแหน่ง ต้องการความรู้พื้นฐานด้าน Database นั่นเอง
Comments