ETL คืออะไร? มารู้จักกับภารกิจสำคัญของ Data Engineer

Share on facebook
Share on twitter
Share on linkedin

โพสนี้เป็นภาคต่อสั้น ๆ ของบทความ ทำไมโลกนี้ไม่ได้ต้องการ Data Scientist แต่ต้องการ Data Engineer

เนื่องมาจากว่าแอดเพิ่งจบโปรเจค Consult กับลูกค้า 6 เดือน ตอนนี้กลับมาที่บริษัทเพื่อเทรนนิ่ง + เตรียมสอบ Google Cloud Cert ก็เลยมีโอกาสได้มานั่งเรียน Full-day Workshop สอนใช้เครื่องมือทำ ETL ชื่อ Talend

งาน ETL เป็นงานที่สำคัญอย่างมากในบริษัททุกแห่ง เลยอยากเอามาบอกต่อกันเผื่อใครสนใจหันมาทำงานสายนี้ครับ เงินดี งานท่วมแน่นอน

ETL คืออะไร? ทำไมต้องมี?

ETL ย่อมาจาก Extract-Transform-Load

ในบริษัททั่วไป ก็มักจะมีระบบที่เก็บข้อมูลแยกจากกันในแต่ละ Business Unit การทำ ETL ก็คือ:

  • เค้าจะทำการรวบรวมข้อมูลที่แยกจากกันนี้ (Extract)
  • มาปรับแต่งให้หน้าตามันเหมือนกัน (Transform)
  • แล้วเอาไปเก็บไว้ในสถานที่ที่เตรียมไว้ (Load)

ซึ่งจะทำให้ข้อมูลจากทุก BU มารวมกันในแหล่งเดียว เอาไปใช้งานต่อได้ง่าย

ประโยชน์ของการทำ ETL

การทำ ETL มีประโยชน์มาก เช่น เราสามารถเอาข้อมูลชุดไฟนอลนี้ไปให้ทีม Analytics ประมวลผลต่อ หรือเอาไปทำ Dashboard สรุปให้ผู้บริหาร หรือแม้แต่จะเอาข้อมูลระบบเก่า (Legacy System) มารวมกับระบบใหม่ก็ยังได้

การทำ ETL มีปัญหาอะไร

พื้นฐานงานของ ETL สามารถอธิบายได้ว่าเป็นการ “ดึงข้อมูลมาเก็บ” แค่นั้นเองครับ ฟังดูง่าย ๆ

แต่… ปัญหาที่แท้จริงก็จะตามมาหลังจากเราพบว่า:

  • ข้อมูลใหญ่มาก เก็บไว้ไหนดี (Cloud หรือ On-Premise Data Lake) ใช้อะไรประมวลผลดี (Data Warehouse หรือ Spark)
  • ข้อมูลมาจากหลายต้นทาง (Data Sources) หน้าตาข้อมูลก็จะแตกต่างกัน เราจะทำความสะอาดข้อมูลยังไง รวมข้อมูลยังไง (Data Integration) และจะทำยังไงเพื่อให้เราเช็คได้ว่าข้อมูลมีการประมวลผลอะไรไปบ้าง (Data Lineage)
  • ข้อมูลมาด้วยความเร็วไม่เท่ากัน (Batch หรือ Streaming Data) เราจะรู้ได้ยังไงว่าอันไหนประมวลผลไปแล้ว
  • บริษัทบางที่มีกฏว่าข้อมูลลูกค้าต้องถูกเข้ารหัสก่อนเก็บ (PII – Personally Identifiable Information) เราจะทำอย่างไรเพื่อให้เข้ารหัสแล้วเอาออกมาถอดรหัสต่อได้สะดวก (Key Management)

ฯลฯ และยังมีปัญหาอื่น ๆ อีกมากมาย ขึ้นอยู่กับแต่ละองค์กรเลยครับ

ทำไมต้องให้ Data Engineer ทำ ETL แทนที่จะให้ Data Scientist ทำ

การทำ ETL ไม่ใช่เรื่องเล่น ๆ ครับ จำเป็นต้องใช้คนที่มีความรู้ และประสบการณ์ (โดยเฉพาะด้านระบบ Big Data ต่าง ๆ เช่น Hadoop, Airflow ฯลฯ)

ถามว่าจ้าง Data Scientist มาแล้วให้ทำ ETL ได้มั้ย? ได้ครับ คือมันเป็นงานที่เรียนรู้ได้ แต่เค้าอาจจะไม่ถนัด ทำให้ต้องใช้เวลาขุดความรู้เยอะ ความสามารถของ Data Scientist จะเน้นการวิเคราะห์ข้อมูล การสร้างโมเดล มากกว่าให้มาเขียนโค้ด ETL

เพราะฉะนั้น งานด้าน ETL จึงควรไว้วางใจให้ Software Engineer / Data Engineer ที่มีความรู้ความสามารถทำ จะทำให้งานเสร็จเร็ว ประหยัด Manhour ขององค์กรได้มากกว่านั่นเองครับ

สรุปคือ ถ้าใครสนใจอยากมาทำงานสาย Data แล้วมีสกิลเขียนโปรแกรม (ยิ่งจบ Com Eng หรือ Com Sci ยิ่งดี) ลองไปหัดพวก Big Data Technologies (NoSQL, Hadoop) หรือ Cloud แล้วหันมาสาย Data Engineer ก็น่าสนใจไม่น้อยเลยครับ

ป.ล. Data Engineer เผลอ ๆ เริ่มต้นเงินเดือนสูงกว่า Data Analyst / Scientist อีกครับ

ป.ล.2 ใครสนใจด้าน Data Engineer แนะนำให้ลองอ่าน Google Cloud สำหรับ Big Data & Machine Learning ดูนะครับ

แอดเพิร์ธ

Join the Conversation

1 Comment

Leave a comment

อ่านจบแล้วอยากพูดคุยต่อ? พิมพ์ไว้ตรงนี้ได้เลย แอดมาอ่านทุกอันครับ