Skip to main content

Data Engineer

Who is Data Engineer?

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

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

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

ในหลายๆ องค์กร ขาด Data Engineer ไป ส่วนใหญ่จะเป็น Data Scientist ที่มาทำหน้าที่แทน ซึ่งถ้าพูดกันตามตรงแล้ว Data Scientist ส่วนใหญ่ ไม่ได้มีพื้นฐานทางด้านการเขียนโปรแกรม หรือ Software Engineering มา ตรงนี้จะทำให้องค์กรเสียเปรียบ และอาจจะเสียโอกาสทางธุรกิจบางอย่างได้ เพราะว่าแทนที่จะมี Data Scientist คอยวิเคราะห์ข้อมูล หรือค้นหา Insights อะไรใหม่ๆ จากข้อมูล กลับต้องให้พวกเขามาทำในส่วนของ Engineer

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

What do Data Engineers Do?

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

  • การออกแบบบ และบำรุงรักษา Database, Data Warehouse และ Data Lake ซึ่งจะต้องมีการตัดสินใจต่างๆ ในการเลือกหรือพัฒนาเทคโนโลยีให้ตอบโจทย์เป้าหมายทางธุรกิจ และยังต้องคงไว้ซึ่งความปลอดภัยต่างๆ
  • การสร้าง Data Pipelines เพื่อที่จะควบคุมการไหลของข้อมูลภายในองค์กร จากที่หนึ่งไปอีกที่หนึ่งเพื่อนำข้อมูลไปสร้างคุณค่าให้กับทางธุรกิจ
  • การตรวจสอบติดตาม (Monitoring) ความเสถียรของ Data Pipelines ซึ่งแน่นอนว่าจะเป็นการทำให้มั่นใจได้ว่าทุกคนในองค์กรสามารถนำข้อมูลไปใช้ได้อย่างไม่สะดุด
  • การติดตั้งหรือพัฒนาเครื่องมือในการจัดการข้อมูล พวก Business Intelligence (BI) ต่างๆ หรือพวกเครื่องมือสร้าง Dashboard เช่น Tableau, Qlik หรือ Superset ให้กับฝ่ายดูแลธุรกิจในองค์กร
  • ดูแลส่วน Data Governance และ Data Quality ในองค์กร เพื่อให้คนในองค์กรได้ใช้ข้อมูลกันอย่างถูกต้อง โปร่งใส สามารถตรวจสอบสิทธิ์ในการเข้าถึงข้อมูลได้ ปกป้องความเป็นส่วนตัวของลูกค้า

Data Engineer Archtypes

เนื่องจากสายงาน Data Engineering ค่อนข้างมีความหลากหลาย จากประสบการณ์สามารถจำแนกเป็นประเภทต่างๆ ได้ดังนี้

SQL

ใช้ SQL ในการสร้าง table อาจจะมีหรือไม่มีการ scheduling โดยที่ database/compute engine อาจจะเป็นได้ทั้ง relational database, hadoop filesystem, spark, delta lake

Python + pandas

ใช้ pandas library ในการ transform ข้อมูล ส่วนใหญ่จะใช้กับ small data (ประมาณ 5-10 GB) ค่อนข้างพบได้บ่อยสำหรับสายงาน data analyst, data scientist ที่ต้องมาจับงาน transform data

Python + pyspark

ใช้ pyspark transform data ซึ่งมีความจำเป็นต้องใช้สำหรับ big data ส่วนมากจะพบในบริษัทที่มีการประมวลผล big data หรือมีการทำ machine learning ด้วย เพราะ big data ไม่สามารถใช้กับ pandas/sklearn ได้เต็มที่

Scala + spark

ใช้ spark ในการ transform data เหมือนกัน ต่างกันตรงที่เป็นการใช้ Scala แทนที่จะเป็น python โดยส่วนมากจะพบในบริษัทที่ใช้ Java อยู่แล้ว หรือเริ่มใช้ spark ก่อนที่ pyspark ออก version แรก

Python + task orchestrator (airflow, dagster, etc)

อาจจะใช้ pandas/pyspark หรืออย่างอื่นที่สามารถใช้ผ่าน python ได้ แต่มีการตั้ง scheduling เป็นเรื่องเป็นราว แทนที่จะเป็น adhoc-based หรือ cronjob

Platform engineering

Data platform engineer อาจจะไม่ได้ transform ข้อมูล แต่มีหน้าที่ในการสร้างระบบ data platform ให้สามารถใช้งานได้จริง และ scale ได้ หลักๆ จะทำงานกับ database, networking, cloud permissions รวมถึงมีการคุยกันเรื่อง architecture ด้วย เพื่อที่จะได้สร้างระบบที่ตอบโจทย์ผู้ใช้ ซึ่งอาจจะเป็นแค่ data team หรือทุกทีมในบริษัทที่ต้องมีการเข้าถึงข้อมูล

GUI-based solutions

Data Engineer ในกลุ่มนี้ จะใช้เครื่องมือที่ไม่จำเป็นต้องเขียน SQL หรือ Python เรียกเครื่องมือเหล่านี้ว่า No-Code/Low-Code Platform โดยผู้ใช่สามารถคลิก, ลาก และวางผ่านหน้า UI แล้วเลือกว่าจะทำอะไรกับข้อมูลได้ เช่น Talend, AWS Glue, Azure Data Factory