39 คะแนน โดย xguru 2024-11-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • การหางานด้าน Data Engineering อาจรู้สึกว่ายาก เนื่องจากมีระบบนิเวศทางเทคโนโลยีที่ซับซ้อนมาก (เช่น Spark, Flink, Iceberg, BigQuery เป็นต้น)
  • การเรียนรู้เพียง Python และ SQL อย่างเดียวไม่เพียงพอ แต่ต้องมีทั้งกลยุทธ์ที่เป็นระบบและการลงมือปฏิบัติจริง

องค์ประกอบที่จำเป็นต่อการได้งานด้าน Data Engineering

  1. ทักษะทางเทคนิค:

    • มีความชำนาญใน SQL และ Python
    • มีทักษะด้าน distributed computing อย่างน้อยหนึ่งอย่าง (Snowflake, Spark, BigQuery)
    • เข้าใจ orchestration tools (Airflow, Mage, Databricks Workflows เป็นต้น)
    • มีความสามารถด้าน data modeling และการจัดการคุณภาพข้อมูล
  2. โปรเจกต์พอร์ตโฟลิโอ:

    • สร้างโปรเจกต์ที่แสดงให้เห็นการใช้เทคโนโลยีจริงได้
  3. การสร้างแบรนด์ส่วนบุคคล:

    • เน้นความเป็นมืออาชีพผ่านการดูแลโปรไฟล์ 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 เพื่อปรับขนาดไฟล์ให้เหมาะสม

การรับประกันคุณภาพและการใช้งานข้อมูล

  1. คุณภาพข้อมูล:

    • ลบข้อมูลซ้ำ ตรวจสอบค่า NULL และยืนยันว่ารูปแบบกับปริมาณข้อมูลเหมาะสม
    • เพิ่มการตรวจสอบคุณภาพลงใน data pipeline ด้วยเครื่องมืออย่าง Great Expectations
  2. การใช้งานได้จริง:

    • มีการจัดทำเอกสารที่เหมาะสมและตกลงสเปกล่วงหน้า
    • รูปแบบ data modeling:
      • เข้าใจข้อดีข้อเสียของ relational, Dimensional(Kimball), One Big Table ในแต่ละแบบ
  3. การปฏิบัติตามข้อกำหนดด้านข้อมูลส่วนบุคคล:

    • ทำข้อมูลส่วนบุคคลที่ใช้ระบุตัวตนได้ (PII) ให้เป็น anonymous และลดระยะเวลาการเก็บข้อมูลให้น้อยที่สุด

การสร้างโปรเจกต์พอร์ตโฟลิโอ

  • ลักษณะของโปรเจกต์ที่มีประสิทธิภาพ:
    • เลือกหัวข้อที่ตัวเองสนใจจริง
    • สร้างโปรเจกต์ที่เชื่อมกับฝั่ง frontend (เช่น Tableau, Power BI)
    • ใช้เทคโนโลยีสมัยใหม่ (Spark, Snowflake, Delta Lake เป็นต้น)
    • สร้าง pipeline ที่ทำงานได้จริงในสภาพแวดล้อม production

การสร้างแบรนด์ส่วนบุคคลและการเตรียมสัมภาษณ์

  1. การใช้ LinkedIn:

    • สร้างเครือข่ายกับ hiring manager และเพื่อนร่วมงาน
    • แบ่งปันเส้นทางการเรียนรู้เพื่อเพิ่มการเป็นที่รู้จัก
  2. การเตรียมสัมภาษณ์:

    • ศึกษาข้อมูลของผู้สัมภาษณ์และบริษัท
    • ตอบคำถามอย่างใจเย็นและในเชิงบวก
    • ถ่ายทอดความอยากรู้อยากเห็นและความหลงใหลต่อเทคโนโลยีและงาน

บทสรุป

  • การหางานด้าน Data Engineering ในปี 2024 แม้อยู่ในตลาดที่ยาก ก็ยังเข้าถึงได้ด้วยกลยุทธ์ที่เป็นระบบ
  • หากทำตามโรดแมปนี้ คุณจะเข้าใกล้งาน Data Engineering ที่ตั้งเป้าไว้มากขึ้น

1 ความคิดเห็น

 
joon14 2024-11-25

Scala เป็นภาษาที่ดีมากจริง ๆ แต่ก็น่าเสียดายที่ดูเหมือนว่ามันจะค่อย ๆ สูญเสียการใช้งานไปนอกจาก Spark