โรดแมปเข้าสู่งาน Data Engineering ปี 2024
(blog.dataengineer.io)- การหางานด้าน Data Engineering อาจรู้สึกว่ายาก เนื่องจากมีระบบนิเวศทางเทคโนโลยีที่ซับซ้อนมาก (เช่น Spark, Flink, Iceberg, BigQuery เป็นต้น)
- การเรียนรู้เพียง Python และ SQL อย่างเดียวไม่เพียงพอ แต่ต้องมีทั้งกลยุทธ์ที่เป็นระบบและการลงมือปฏิบัติจริง
องค์ประกอบที่จำเป็นต่อการได้งานด้าน Data Engineering
-
ทักษะทางเทคนิค:
- มีความชำนาญใน SQL และ Python
- มีทักษะด้าน distributed computing อย่างน้อยหนึ่งอย่าง (Snowflake, Spark, BigQuery)
- เข้าใจ orchestration tools (Airflow, Mage, Databricks Workflows เป็นต้น)
- มีความสามารถด้าน data modeling และการจัดการคุณภาพข้อมูล
-
โปรเจกต์พอร์ตโฟลิโอ:
- สร้างโปรเจกต์ที่แสดงให้เห็นการใช้เทคโนโลยีจริงได้
-
การสร้างแบรนด์ส่วนบุคคล:
- เน้นความเป็นมืออาชีพผ่านการดูแลโปรไฟล์ LinkedIn และการเตรียมตัวสัมภาษณ์
การเรียนรู้และพัฒนาความชำนาญด้าน SQL
- SQL คือภาษาหลักที่จำเป็นสำหรับ Data Engineering:
- แหล่งเรียนรู้ที่แนะนำ:
- แนวคิดสำคัญ:
- ประเภทของ JOIN: INNER, LEFT, FULL OUTER (แทบไม่ใช้ RIGHT JOIN)
- การ aggregate ผ่าน GROUP BY และการใช้ DISTINCT
- เข้าใจ window functions และความแตกต่างของ RANK, DENSE_RANK, ROW_NUMBER
- เข้าใจคีย์เวิร์ดและ shuffle ในสภาพแวดล้อม SQL แบบกระจาย (เช่น JOIN, GROUP BY, ORDER BY)
- การใช้งาน CTE(Common Table Expression), Temp Table และ View
การเรียนรู้ Python และ Scala
- การเลือกภาษา:
- ผู้เริ่มต้นแนะนำ Python ส่วนผู้มีประสบการณ์แนะนำ Scala
- แนวคิดสำคัญ:
- โครงสร้างข้อมูล: list, dictionary, stack เป็นต้น
- อัลกอริทึม: loop, binary search และความเข้าใจสัญลักษณ์ Big O
- การใช้งานหลักของ Python:
- เขียน Airflow DAG
- โต้ตอบกับ REST API
- เขียน Spark UDF และปรับแต่งประสิทธิภาพ
แนวคิดของ distributed computing
- หัวใจสำคัญของ distributed computing:
- เข้าใจสถาปัตยกรรมที่อิง Hadoop/Spark ซึ่งกระจายภาระการประมวลผลข้อมูล
- การจัดการปัญหา shuffle และ skew:
- ใช้ Broadcast JOIN, Bucket JOIN และ partitioning
- ใช้ adaptive execution ใน Spark 3+
- การจัดการข้อมูลผลลัพธ์:
- ใช้ run length encoding ของไฟล์ Parquet เพื่อปรับขนาดไฟล์ให้เหมาะสม
การรับประกันคุณภาพและการใช้งานข้อมูล
-
คุณภาพข้อมูล:
- ลบข้อมูลซ้ำ ตรวจสอบค่า NULL และยืนยันว่ารูปแบบกับปริมาณข้อมูลเหมาะสม
- เพิ่มการตรวจสอบคุณภาพลงใน data pipeline ด้วยเครื่องมืออย่าง Great Expectations
-
การใช้งานได้จริง:
- มีการจัดทำเอกสารที่เหมาะสมและตกลงสเปกล่วงหน้า
- รูปแบบ data modeling:
- เข้าใจข้อดีข้อเสียของ relational, Dimensional(Kimball), One Big Table ในแต่ละแบบ
-
การปฏิบัติตามข้อกำหนดด้านข้อมูลส่วนบุคคล:
- ทำข้อมูลส่วนบุคคลที่ใช้ระบุตัวตนได้ (PII) ให้เป็น anonymous และลดระยะเวลาการเก็บข้อมูลให้น้อยที่สุด
การสร้างโปรเจกต์พอร์ตโฟลิโอ
- ลักษณะของโปรเจกต์ที่มีประสิทธิภาพ:
- เลือกหัวข้อที่ตัวเองสนใจจริง
- สร้างโปรเจกต์ที่เชื่อมกับฝั่ง frontend (เช่น Tableau, Power BI)
- ใช้เทคโนโลยีสมัยใหม่ (Spark, Snowflake, Delta Lake เป็นต้น)
- สร้าง pipeline ที่ทำงานได้จริงในสภาพแวดล้อม production
การสร้างแบรนด์ส่วนบุคคลและการเตรียมสัมภาษณ์
-
การใช้ LinkedIn:
- สร้างเครือข่ายกับ hiring manager และเพื่อนร่วมงาน
- แบ่งปันเส้นทางการเรียนรู้เพื่อเพิ่มการเป็นที่รู้จัก
-
การเตรียมสัมภาษณ์:
- ศึกษาข้อมูลของผู้สัมภาษณ์และบริษัท
- ตอบคำถามอย่างใจเย็นและในเชิงบวก
- ถ่ายทอดความอยากรู้อยากเห็นและความหลงใหลต่อเทคโนโลยีและงาน
บทสรุป
- การหางานด้าน Data Engineering ในปี 2024 แม้อยู่ในตลาดที่ยาก ก็ยังเข้าถึงได้ด้วยกลยุทธ์ที่เป็นระบบ
- หากทำตามโรดแมปนี้ คุณจะเข้าใกล้งาน Data Engineering ที่ตั้งเป้าไว้มากขึ้น
1 ความคิดเห็น
Scala เป็นภาษาที่ดีมากจริง ๆ แต่ก็น่าเสียดายที่ดูเหมือนว่ามันจะค่อย ๆ สูญเสียการใช้งานไปนอกจาก Spark