คู่มือเปลี่ยนอาชีพ: Data Engineer คือใคร ต้องเรียนพื้นฐานอะไรบ้าง

data engineer career guide

ในบทความที่แล้วเรื่อง สายงาน Data Science ต้องทำอะไรบ้าง แอดได้เล่าถึงภาพรวมของงานต่าง ๆ ตั้งแต่ต้นจนจบ Flow ของงานด้าน “วิทยาศาสตร์ข้อมูล” (เห็นที่ไทยคนเรียกกันแบบนี้ แอดว่าคล้าย ๆ Computer Science = วิทยาศาสตร์คอมพิวเตอร์ ดีฮะ)

วันนี้จะมาเล่าถึงสายอาชีพหนึ่งที่ทุกบริษัทด้าน Data ต้องมี แต่คนไม่ค่อยรู้จักกัน พวกเขาเหล่านี้เรียกได้ว่าเป็นทีมงานคนสำคัญที่จะทำให้คนวิเคราะห์ข้อมูลทำงานง่ายขึ้น และเป็นคนที่ส่งเสริมให้ Data Scientist สร้างโมเดล Machine Learning เก๋ ๆ ได้สำเร็จ

Data Engineer คือใคร อาชีพนี้ทำอะไรบ้าง

แอดเคยเล่าไปแล้วว่า “โปรเจค Data Science คือ การนำข้อมูลมาใช้ให้เกิดประโยชน์กับองค์กร” แปลว่าส่วนผสมที่สำคัญที่สุดทุกโปรเจคอยู่ที่ “ข้อมูล” ล้วน ๆ

ถ้าข้อมูลที่เข้ามาในระบบผิด ๆ เวลาเราเอามาทำโมเดลทำนายผล ก็จะได้ผลผิด ๆ กลับไปครับ กลายเป็นว่าส่งผลเสียให้องค์กรอีก เสียทั้งเวลา แถมได้ผลลัพธ์ที่ไม่ดี หรือที่เค้าเรียกกันว่า Garbage In – Garbage Out (ถ้าใส่ขยะเข้ามา ก็จะได้ขยะออกไป)

Data Engineer หรือ “วิศวกรข้อมูล” คือ ผู้ที่มีหน้าที่ในการนำข้อมูลจากต้นทาง (Data Source) ไปเก็บในระบบเก็บข้อมูล เช่น Database, Data Warehouse, หรือ Data Lake เพื่อให้คนในองค์กรนำมาวิเคราะห์ข้อมูลได้ง่าย ๆ

โดย Data Engineer จะเน้นที่การนำข้อมูลที่เข้ามาในระบบต้องถูกต้อง ตามเวลาที่เรากำหนดไว้ เช่น ดึงข้อมูลจาก Google Analytics ทุก 1 วัน

งาน Data Engineer ฟังเผิน ๆ ดูเหมือนจะเรียบง่ายครับ แต่จริง ๆ แล้วเป็นงานที่ใช้พลังเยอะมาก เพราะต้องสู้รบกับปัญหาในทาง Engineer มากมาย

ตัวอย่างปัญหาที่เจอในสายงาน Data Engineer นี้ก็เช่น:

  • องค์กรเก็บข้อมูลไว้หลายที่ – เราต้องหาวิธีดูดมันมารวมกันให้ได้ แหล่งเก็บข้อมูลแต่ละที่ก็มีช่องทางในการดึงข้อมูลต่างกัน ถ้าเป็น Database อาจจะต้อง Dump ออกมา หรือถ้าเป็นระบบดี ๆ หน่อยอาจจะมี API ฯลฯ
  • องค์กรต้องการนำข้อมูลไปเก็บหลายที่ – บางครั้งเก็บใส่ใน Data Warehouse เพื่อวิเคราะห์ข้อมูลยังไม่พอ ต้องเอาไปเก็บใน Data Lake สำหรับเก็บข้อมูลไว้ระยะยาวด้วย ก็จะเจอปัญหาว่าแต่ละระบบใช้วิธีเก็บไม่เหมือนกัน (เดี๋ยวจะเล่าให้ฟังกันต่อไปว่า Data Warehouse กับ Data Lake แตกต่างกันยังไง)
  • องค์กรมีข้อมูลเยอะ –  มันคือคำว่า “Big Data” ที่เราติดหูกันนั่นเองครับ ปัญหาที่ตามมาเวลามีข้อมูลเยอะ ๆ ก็คือ เราไม่สามารถใช้ Software แบบเก่า ๆ ในการดึงข้อมูลมาเก็บได้ ต้องใช้ท่าซับซ้อนยิ่งขึ้น ปวดหัวคนทำมากขึ้นนั่นเอง

ลองดูตัวอย่างระบบที่ Data Engineer ต้องตบตีกับมันทุกวันครับ อันนี้เป็น Ecosystem ของ Apache Hadoop

คู่มือเปลี่ยนอาชีพ: Data Engineer คือใคร ต้องเรียนพื้นฐานอะไรบ้าง 1
ตัวอย่าง Hadoop Ecosystem สำหรับทำงานที่มีข้อมูลเยอะ ๆ ฮะ เห็นได้ว่าลายตามาก – ขอบคุณรูปจากคุณ Shubham Sinha

Data Engineer ต่างกับ Data Scientist ยังไง

(แอดเคยเขียนเรื่องนี้ไปแล้วส่วนหนึ่งในบทความ โลกนี้ไม่ได้ต้องการ Data Scientist แต่ต้องการ Data Engineer ถ้าสนใจอ่านแบบเต็ม ๆ แนะนำเลยครับ)

เพื่อความเข้าใจง่ายขึ้น ลองนึกถึงร้านอาหารที่ต้องมีเชฟกับผู้ช่วยเชฟครับ (ใครนึกไม่ออกไปดู Top Chef Thailand Season 1 ตอนจบฮะ… เชฟตามน่ารักมาก #ผิด)  ผู้ช่วยมีหน้าที่เดินไปจ่ายตลาด คัดเลือกวัตถุดิบ และเอามากลับมาหั่นเป็นชิ้น ๆ เพื่อจัดเตรียม และส่งให้เชฟที่มีหน้าที่มีหน้าที่ของเหล่านั้นมาทำต่อให้กลายเป็นจานอาหารที่น่ากิน

คู่มือเปลี่ยนอาชีพ: Data Engineer คือใคร ต้องเรียนพื้นฐานอะไรบ้าง 2
Top Chef Thailand ตอนสุดท้าย ที่ผู้เข้าแข่งขันต้องช่วยกันทำงานเป็นทีม – ขอบคุณรูปจาก one31

Data Engineer ก็เหมือนกับผู้ช่วยเชฟ มีหน้าที่จัดเตรียมข้อมูลจากแหล่งต่าง ๆ มารวมกันไว้ในจุดเดียว โดยต้องทำให้ข้อมูลมีความถูกต้อง และดูแลระบบว่าทำงานได้ไม่เกิดปัญหาอะไร (ในชีวิตจริงนี่ต่อให้เราวางแผนมาดีแค่ไหน เจอข้อมูลเยอะ ๆ วันดีคืนดีก็ล่มได้ครับ T_T)

ส่วน Data Scientist หรือ Data Analyst ก็คือเชฟ มีหน้าที่นำข้อมูลที่จัดเตรียมไว้อย่างดีดั่งแซลมอนนิวซีแลนด์เกรด A นำมาใช้ประโยชน์ต่อ เช่น นำไปใส่เครื่องมือ Visualization แบบ Tableau เพื่อวิเคราะห์ หรือนำไปสร้างโมเดล Machine Learning ด้วยเทคโนโลยีหยุดโลกที่ชื่อ Deep Learning (แต่ปกติจะชอบหยุดคอมคนรันโมเดล มากกว่าหยุดโลก)

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

อยากเป็น Data Engineer ต้องมีพื้นฐานด้านไหน

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

พื้นฐาน 1) Software Engineering

data engineer programming software engineer
โปรแกรมมิ่ง ถือเป็นสกิลที่ได้รับความนิยมมากขึ้นเรื่อย ๆ ในยุคปัจจุบัน แถมนำไปใช้ประกอบอาชีพสร้างเงินได้หลากหลายเลยครับ เรียนไว้ไม่เสียหายแน่นอน

Software Engineering ก็คือ ความสามารถในการเขียนโปรแกรม ซึ่ง Data Engineer อาจจะไม่ต้องถึงกับเขียนโค้ดเทพ แต่ก็ต้องเขียนโปรแกรมได้ และอ่านโค้ดเข้าใจในระดับนึงครับ

สำหรับคนที่ไม่มีพื้นฐานโปรแกรมมิ่งมาก่อน แอดแนะนำให้เริ่มจากภาษา Python เป็นภาษาที่เขียนง่าย เหมาะกับมือใหม่ และยังต่อยอดไปทำงานสาย Data Science ได้ทันทีด้วยครับ ขนาดค่าย IT สำหรับเด็กมัธยมปลายที่แอดเคยไปช่วย (ที่ออสเตรเลียนะ) เค้ายังสอน Python เป็นภาษาแรกเลย

และสำหรับ Data Engineer ที่เขียนโค้ดแม่นมาก ๆ ก็จะสามารถพัฒนาไปเป็น Machine Learning Engineer ต่อได้ครับ ลองอ่าน บทสัมภาษณ์ฝน ML Engineer คนไทย เพิ่มเติมได้เลย

พื้นฐาน 2) Database

database er diagram data engineer
ตัวอย่าง Entity Relationship Diagram แบบง่าย ๆ ใช้สำหรับวางแผนออกแบบฐานข้อมูล

Database หรือที่เราเรียกภาษาไทยว่า ฐานข้อมูล เป็นสถานที่เก็บข้อมูลให้เป็นระเบียบนั่นเอง ปัจจุบัน Application จะเก็บทุกอย่างไว้ในฐานข้อมูล แล้วเราที่เป็น Data Engineer ก็มีหน้าที่เอาข้อมูลเหล่านี้ส่งไปเก็บไว้ในฐานข้อมูลสำหรับวิเคราะห์ข้อมูลโดยเฉพาะ เรียกว่า Data Warehouse เพราะฉะนั้นอย่างน้อยเราต้องเข้าใจว่าฐานข้อมูลชื่อดังทำงานอย่างไรบ้าง

สิ่งสำคัญที่ Data Engineer ต้องรู้เกี่ยวกับ Database ก็คือ วิธีการออกแบบ Database, วิธีเขียนและอ่าน ERD (Entity Relationship Diagram), Normal Form แต่ละระดับแตกต่างกันยังไง, วิธีแก้ปัญหา Database เบื้องต้น เท่านี้ก็เพียงพอต่อการทำงานระดับหนึ่งแล้วครับ

นอกจากนั้นต้อง เข้าใจภาษา SQL (Structured Query Language) ซึ่งเป็นภาษาสำหรับดึงข้อมูลที่เรียกได้ว่าเป็นภาษากลางที่ทุกคนที่ทำงานสาย Data จะใช้คุยกัน ไม่ว่าเราจะเป็น Data Scientist, Data Engineer, หรือ Data Analyst ก็ต้องเข้าใจ SQL ทั้งนั้นครับ

สำหรับคนที่ไม่มีพื้นฐานด้านฐานข้อมูลมาก่อน แอดแนะนำให้หาแหล่งเรียนฟรี เช่น Youtube Video เกี่ยวกับ SQL ภาษาไทย ครับ

ความรู้ด้านฐานข้อมูลจะนำไปต่อยอดถึงเรื่อง Data Lake และ Data Warehouse ซึ่งเป็นหัวใจสำคัญของอาชีพนี้เลย

พื้นฐาน 3) Unix Shell Script

14124901 273649006353497 8860960516488507400 o
ภาษานี้ใช้บ่อยมาก ๆ โดยเฉพาะเวลาทำ Big Data

ระบบคอมพิวเตอร์ไม่ว่าจะอลังการแค่ไหน สุดท้ายแล้วมันก็เกิดจากหน้าจอขาว – ดำที่มีแต่ตัวหนังสือยาว ๆ อ่านไม่ค่อยออก แบบในหนังที่มีแฮคเกอร์นั่นแหละครับ ซึ่งภาษาที่เราเห็นในหน้าจอแบบนี้ คือ Shell Script

ภาษา Shell Script เราไม่ได้ใช้เหมือนกับภาษาโปรแกรมมิ่งสำหรับงาน Data Science อย่าง Python หรือ R ซะทีเดียวครับ โดยปกติเราจะเอาไว้จัดการระบบ เช่น เช็ค IP Address, เช็คทรัพยากรในระบบ หรือใช้จัดการไฟล์ เช่น ลบไฟล์ ย้ายไฟล์ ก็อปปี้ไฟล์ ฯลฯ

บางคนอาจจะเคยเรียนวิชาที่เขียนโค้ดแบบ cd, ls, mkdir พวกนั้นก็คือ Shell Script ครับ แอดเคยเขียนบทความ รวบรวม Shell Script ที่ใช้บ่อย ๆ เอาไว้ให้ด้วย ความรู้ด้านนี้มีประโยชน์มากครับ

สาเหตุที่ Shell Script จำเป็นอย่างยิ่งสำหรับงาน Data Engineer เพราะงานสายนี้ต้องทำงานกับไฟล์และโฟลเดอร์ในระบบบ่อย ๆ ครับ และบางครั้งทำ Big Data ไฟล์ใหญ่มาก การสั่งคำสั่งต่าง ๆ ใน Shell Script จะรองรับการทำงานกับไฟล์ใหญ่ ๆ ได้ดีกว่า ถ้าเปิดในโปรแกรมทั่วไปก็ค้างแน่นอนครับ

นอกจากนั้น ระบบ Infrastructure ของ Big Data ทั้งหลาย เช่น ระบบ Hadoop ที่แอดลงรูปไว้ข้างบน ส่วนใหญ่ระบบพวกนี้ไม่มีหน้าตาโปรแกรมสวย ๆ ให้ใช้นะครับ เราต้องเขียน Shell Script ควบคุมมันซะเป็นส่วนใหญ่ เลยทำให้ความรู้ Shell Script เป็นสิ่งที่ขาดไม่ได้เลยครับ หรือใครมาสายระบบ Cloud Computing ก็หลีกเลี่ยง Shell ไม่ได้เหมือนกันครับ

สำหรับบทความนี้ ก็ขอจบแต่เพียงเท่านี้ก่อนครับ

สุดท้ายนี้ ถ้าอยากเข้าใจเกี่ยวกับสายงาน Data Engineer มากขึ้น สามารถรับชมวีดิโอนี้ได้เลยครับ

ถ้าใครอยากอ่านเรื่องไหนเพิ่มเติมก็คอมเม้นท์ไว้ หรือบอกแอดมินมาใน Inbox Facebook Page Data Science ชิลชิล ได้เลยนะครับ เดี๋ยวจัดให้ครับ

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

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

Privacy Preferences

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

Allow All
Manage Consent Preferences
  • Always Active

Save