อยากเป็น Data Engineer เริ่มต้นอย่างไร แล้วต้องเรียนรู้อะไรบ้าง?

จากงานของ datastack.tv ครับ เค้าทำ roadmap ไว้ประมาณนี้


(:point_up: กดที่รูปเพื่อขยายนะ)

แล้วก็ด้านล่างนี้เค้าบอกว่า nice to have แหละ

คิดเห็นกันอย่างไรบ้างเอ่ย? เบื้องต้นผมคิดว่าแต่ละคนจะมี learning path ที่แตกต่างกันครับ เราอาจจะไม่ต้องทำตาม roadmap ที่เค้าวางไว้ก็ได้ สามารถดูไว้เป็น guideline ว่ามีเรื่องอะไรบ้างที่เราควรรู้ ซึ่งจริงๆ คนที่เป็น Data Engineer ก็ไม่จำเป็นต้องรู้ทั้งหมดก็สามารถเริ่มงานได้ แล้วอย่างอื่นค่อยเริ่มไปศึกษาเพิ่มเติมก็ยังไม่สาย

จากรูป roadmap รูปแรก มี Technology หนึ่ง ที่ผมคิดว่าน่าจะหยิบเอามาเรียนรู้ตั้งแต่แรกๆ ช่วงต้นๆ เลยคือ Docker ครับ :joy:

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

5 Likes

เรื่อง Docker มีที่ให้ศึกษาเยอะมาก อาจจะลองเริ่มต้นที่นี่ก่อนได้

หรือจะแบบ interactive บนเว็บเลย ลองเล่นที่ Katacoda ได้นะ

หรือถ้าลงทุนยอมเสียเงินเล็กน้อย คอร์สของ Skooldio ก็สอนดีเลยทีเดียวครับ

2 Likes

สวัสดีครับ มาจากงาน What the duck #2 ครับ พวก data pipeline ควรเริ่มจากอะไรดีครับ

1 Like

สวัสดีครับบบ ^^ สำหรับพวก data pipeline ผมอยากแนะนำให้ลองเริ่มดู Airbyte ครับ

อีกตัวหนึ่งที่เค้าบอกว่าเริ่มต้นได้ง่ายคือ Prefect ครับ เค้าพัฒนาขึ้นมาเพราะว่าเค้าเห็นข้อที่สามารถปรับปรุงต่อยอดได้จาก Airflow และพยายามทำให้พัฒนา data pipeline ง่ายกว่า Airflow ครับ

ในกรณีที่เขียนโค้ดเอง มีเครื่องมืออีกตัวหนึ่งที่อาจจะลองดูเพิ่มเติมคือ Singer.io ครับ เอาไว้สำหรับเวลาถ้าเราเขียนโค้ดเพื่อเชื่อมต่อกับ Source หรือ Destination ตรงนี้จะช่วยทำให้ชีวิตเราง่ายขึ้น ไม่ต้องลงแรงมาก

1 Like

ขอบคุณมากๆครับพี่กาน ไงจะไปลองศึกษาดูครับ พอดีเรียน Data science มาจากพี่ทอยแล้วรู้สึกว่าอยากลองเข้าโลก Data Engineer บ้างครับ :sweat_smile: :joy:

1 Like

แจ่มเลยครับ ถ้าสงสัยอะไร อยากเรียนรู้อะไรเพิ่มเติม แวะมาพูดคุยกันได้นะครับ :blush:

ไปเจอ LINE Developers Podcast เล่าประสบการณ์จาก Developer ไปเป็น Data Engineer น่าสนใจมากครับ มี 2 ตอน

1 Like

บทความนี้ก็น่าสนใจนะครับ สำหรับผู้เริ่มต้น

เค้าพูดถึง 10 หัวข้อตามนี้

  1. Programming Language (Python, Java, Scala)
  2. Data Structure
  3. DBMS (SQL)
  4. NoSQL (Cassandra)
  5. ETL (extract, transform, load)
  6. Big Data
  7. Shell Scripting
  8. Data Warehousing
  9. Apache Airflow
  10. Cloud Service

ถึงแม้เค้าจะบอกว่าเป็นปี 2022 นะ ผมคิดว่าในทุกๆ ปีก็จะมีหัวข้อประมาณนี้แหละ ถ้าย้อนกลับไปดู roadmap ด้านบน แล้วก็ส่วนที่สำคัญที่สุดจริงๆ ที่หลายๆ ที่ไม่ค่อยพูดถึงคือเรื่อง software engineering นะครับ ดังนั้นเนี่ยเวลาที่เราเรียนรู้อะไรก็แล้วแต่ ตามหัวข้อด้านบนให้ลองพยายามนึกถึงเรื่อง software engineering ด้วยน้า :wink:

ส่วนข้อ 9 เรื่อง Apache Airflow อันนี้จริงๆ ไม่จำเป็นต้องเป็น Airflow นะครับ :joy: มีเครื่องมืออีกหลายตัวเลย ไม่ว่าจะเป็น Dagster, Prefect หรือ Argo Workflows อะไรแบบนี้เป็นต้น

จริงๆ ต้องแยกกันด้วย ว่า เป็น data engineer แบบไหน
เพราะตอนนี้เหมือน scope มันเริ่มชัดแล้ว ว่า data engineer จริงๆ มีสองแบบ คือ

  1. data platform engineer - อันนี้จะเป็นสเป็กแบบใน roadmap ข้างบน คือ software engineering ต้องได้ infra ต้องเทพ
  2. analytics engineer - เป็น analyst / bi developer ที่ใช้ sql ในการสร้าง data pipelines

แต่เพราะมันเป็นงานสายดาต้า ที่สิบบริษัทก็ job description คนละแบบ เพราะงั้นแล้วแต่เลยว่าแต่บริษัทอยากได้สเปกแบบไหน

แต่ถ้าจะมาสาย data platform engineer ยากสุดคือต้องรู้ infra และ system design เพราะต้องออกแบบ solution ที่มันสเกลได้ อันนี้ก็จะมีเขียนไว้ใน roadmap ข้างบน

concepts หากินก็พวก data modeling, slowly changing dimension, etl/elt, data lake, data warehouse, task orchestrator, distributed system

แล้วก็ ไปอ่านหนังสือของ Jesse Anderson มา เขียนไว้ได้น่าสนใจมาก เกี่ยวกับบทบาทและหน้าที่ของ data engineer ใน data team: Data Teams: A Unified Management Model for Successful Data-Focused Teams: 9781484262276: Computer Science Books @ Amazon.com

แต่ สิ่งที่ยากสุดไม่ใช่การเรียนรู้เครื่องมือ แต่เป็นการออกแบบ solution ให้ตอบโจทย์ users!!!

ผมนี่ลุกขึ้นปรบมือเลยครับ

2 Likes

พี่กานพอแนะนำเครื่องมือการทำ ETL free ได้มั้ยครับ พอดีช่วง ม.6 ประมาณปี 2021 ช่วงนั้นผมสนใจ data engineering มีโอกาสได้ลง คอส ของพี่แอดเพิร์ค กับ พี่แอดฝน DataTH เรียนไปได้สักพัก ในคอสจะมีการใช้เครื่องมือ ของ google cloud ผมติดตรงนี้ไปต่อไม่ได้เลย เพราะไม่มีบัตร เดรบิต อยากทำมากๆเลยแต่ไปไม่ได้ พี่กานพอมีเครื่องมือสำหรับสายฟรี ฝึกไปพ่างๆก่อนมั้ยครับ อยากฝึกสกิว data engineering มากๆ ตอนนี้ได้แต่เล่น python(numpy, pandas) and sql T0T

ถ้าอยากทำ ETL/ELT แบบง่าย ๆ แนะนำลองใช้ Airbyte ดูครับ

มันช่วยดึงข้อมูลจากหลายแหล่ง (DB, API, SaaS) แล้วโหลดเข้า Data Warehouse ได้สะดวก ไม่ต้องเขียนโค้ดเองเยอะ

แต่ว่า Airbyte ทำได้ดีในส่วน Extract + Load แต่การ Transform ข้อมูลเชิงลึกอาจต้องใช้เครื่องมืออื่นๆ เช่น dbt มาช่วย

1 Like

ต้องแยกกันนะ

  • data ingestion
  • data transformation
  • data pipelines (ingest, transform (optional), write to destination)
  • pipelines orchestration (airflow, dagster, etc)

ส่วนที่จะเซ็ตอัพยากหน่อยคือการตั้ง airflow ขึ้นมา แต่ไส้ใน airflow ก็คือตัว pipelines เนี่ยแหละ

ลองหัดทำ pipelines แบบปกติก็ได้ แบบรัน python script ธรรมดาต่อกัน ตรงนี้มีอะไรให้ทำเยอะ แล้วลองไปหาวิธีตั้ง airflow ในเครื่องดู ใช้ docker ได้

อ้อ ถ้าจะใช้ gcp แนะนำว่า อย่างแรกหลังจากเปิด account คือไปใส่ budget alerts ไว้ก่อนเลย กันตังไหลแบบไม่รู้ตัว

1 Like

เสริมจากที่พี่ @zsorawid แนะนำมานะครับ

Free ETL tools พอมีอยู่บ้าง ในแบบที่ไม่ได้เขียนเป็น pipeline as code อย่างพวก Airflow ก็เช่น

ตัว NiFi เกิดมานานล่ะ น่าจะมีคนใช้มากสุด ลองเล่นตัวนี้ก่อนก็ได้ครับผม

ทีนี้ถ้าเราสามารถเขียนโค้ด Python หรือ SQL ได้อยู่แล้ว อาจจะลองใช้ n8n ก็ได้นะครับ (กำลังได้รับความนิยมเลย :smiley: )

ทีนี้การที่จะลองของพวกนี้ได้แบบเข้ามือ แล้วไม่ต้องไปพึ่งการใช้งาน Cloud มาก (ประหยัดเงิน) แนะนำให้ฝึกใช้ Docker เป็นพื้นฐานก่อนเลย ยอมลงทุนกับเวลาสัก 1-2 เดือนเพื่อใช้งานให้คล่อง พอเราใช้เป็นแล้วทีนี้จะเริ่มสนุกล่ะ เราสามารถหยิบเครื่องมือต่าง ๆ มาเล่นเองได้ง่ายขึ้นเยอะมาก เช่น ถ้าเราอยากจะลองต่อยอดไปเล่น Hadoop หรือ Spark บนเครื่องตัวเอง เราก็สามารถเซตอัพขึ้นมาเองได้ภายใน 5 นาที :blush:


แล้วก็เสริมจากที่พี่ @kahnwong แนะนำมาด้วย ฝึกมองแยกส่วนการทำงานใน Data engineering ว่าเรากำลังมองตรวจส่วนไหนอยู่ ดูภาพด้านล่างประกอบ แต่ละส่วนจะใช้เครื่องมือที่แตกต่างกัน ทุกวันนี้ผมก็ยังฝึกมองของแบบนี้อยู่ในงานเรื่อย ๆ วันแรก ๆ อาจจะดูเยอะมาก เราดูไปทีละกล่อง สัก 1 เดือน ภาพนี้จะติดอยู่ในหัวเราเลย 55

Reference: Emerging Architectures for Modern Data Infrastructure