ปรึกษาสอบถาม - Tech Stack สำหรับองค์กรที่ไม่มี Resource ด้านบุคลากรมากนัก

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

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

โดยคำถามจะแยกเป็นหลายส่วนที่อยากจะขอความคิดเห็นครับ ได้แก่

  1. Data Tech Stack ที่เลือกใช้นั้นควรจะเป็นลักษณะแบบใดถึงจะเหมาะสมครับ (Opensource , Cloud Service , Hybrid)
  2. Data Orchestrator ควรที่จะเป็น Code Base (Dagster , Airflow) หรือ GUI (อาทิเช่น SSIS) แบบไหนจะดีกว่าในระยะยาวเผื่อที่จะต้องขยายทีม Data Engineer
  3. Data Engineering Team ควรที่จะมีตำแหน่งอะไรบ้างย่อยภายในทีม (Lead , Infrastructure , Operational Service) หรือจริง ๆ แล้วไม่ต้องแบ่งทีมเลยครับ
  4. Data Storage ที่เลือกใช้เราควรที่จะเลือกอย่างไรให้เหมาะสมในแต่ล่ะ Layer ครับ จำเป็นหรือไม่ที่จะต้องเป็นเทคโนโลยีใหม่ (Data Warehouse , Data Lakehouse) หรือควรเลือกตามความชำนาญของ IT Department ที่องค์กรตัวเองสังกัดดี ซึ่งน่าจะเป็น Database แบบ OLTP ซะส่วนใหญ่
  5. Data Dictionary ควรที่จะฝังลงไปใน ชื่อ Table เลยเพื่อให้สะดวก , ควรทำเอกสารแยกออกมา หรือ เลือกใช้ platform ด้านดังกล่าวไปเลยดีกว่า (เช่น Data Hub)
  6. การทำให้เป็นไปตาม PDPA / Security Audit เราควรที่จะต้อง Masked Data , Encryption Data หรือไม่ก่อนที่จะมาถึง Data Storage ที่ Data Engineering Team มีสิทธิ์เข้าถึง แล้วปกติหน่วยงานไหนในองค์กรจะเป็นคนดูแลในการทำส่วนนี้ครับ
  7. ในฐานะที่เรียกได้ว่าเป็น Data Engineer ใหม่ก็ว่าได้ รบกวนแนะนำทักษะที่ผมควรจะเรียนเพิ่มเติม และควรที่จะเรียนรู้ได้หรือไม่ครับ

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

ขอขอบคุณทุก ๆ ท่านที่เข้ามาร่วมแสดงความคิดเห็นล่วงหน้าครับ

จริงๆ เป็นคำถามที่ดี เพียงแต่ถ้าตอบหมดนี่น่าจะยาวเกินสามหน้า

แต่ถ้าแบบคร่าวๆ คือ

  1. tech stack ควรอิงจากความสามารถของทีมงานและผู้ดูแลระบบ
  2. data orchestrator ก็เหมือนกับข้อ 1 คือ ทีมงานถนัดอันไหน ใช้อันนั้น
  3. data engineering team อันนี้ต้องอิงตาม org culture โครงสร้างขององค์กร
  4. data storage แล้วแต่เนื้องาน ว่า เหมาะกับ storage แบบไหน และต้องอิงกับคนดูแล ว่า maintain/operate อันไหนเป็น
  5. data dictionary ควรทำแยก แต่จะอัพเดทถี่ขนาดไหนอันนี้แล้วแต่ดวง ว่า ทำไหวขนาดไหน
  6. pdpa / security audit อันนี้หมวด data governance แต่อันนี้หนักที่ process ไม่ได้หนักที่เทค
  7. โลกนี้มีหลายอย่างให้เรียนรู้ และ data engineer ก็มีหลาย subtypes เพราะฉะนั้น ถ้ายังไม่รู้ว่าควรรู้อะไร ให้เอาสิ่งที่เป็นปัญหาในการทำงานไปถามคนที่รู้ เขาจะได้ชี้ทางให้
2 Likes

ขอบคุณมากเลยครับ คุณกานต์ หลังจากที่ได้คุยแล้วรู้สึกเปิดภาพในการมองงานของตัวเองได้กว้างขึ้นมากครับ ขอบคุณอีกครั้งครับที่สละเวลามาพูดคุยและให้คำแนะนำครับผม

  1. Data Tech Stack → คิดเหมือนคุณกานต์เลยครับว่าควรเริ่มจาก tool ที่คนในทีมใช้เป็น รองลงมาผมมองว่าควรเป็น stack ที่ใช้ learning curve ไม่สูงมากครับ แต่ถ้าที่บริษัทใช้ cloud เจ้าไหนอยู่แล้วก็เริ่มจากไปศึกษา tool ของ cloud เจ้านั้นก็ได้

  2. Data Orchestrator → ผมมองว่าควรเป็น code base ครับ เพราะว่า data กับ software เป็นเรื่องเดียวกัน ในระยะยาวเราต้อง maintain data platform เช่นเดียวกับการที่เราต้อง maintain software ดังนั้นถ้าเป็นไปได้ ถ้าคนในทีมเขียนโค้ดได้ แนะนำ code base ครับ เริ่มจาก Airflow ได้เลยง่ายสุดๆ

  3. Data Engineering Team → ถ้า resource ไม่พอ อาจจะไม่ต้องแยก role เลยครับ เริ่มจากเอาสกิลของแต่ละคนมา list ก่อนว่าแต่ละคนมีสกิลใน area ไหน เช่น เก่งต้นน้ำของข้อมูลเลยต่อ db เป็น ทำ api ได้ ก็อาจจะช่วยดูส่วนของ data ingestion ช่วย build pipeline, เก่งด้าน dashboard ก็รับ task ที่เป็นส่วนของการวิเคราะห์ข้อมูล ทำ report, dashboard

  4. Data Storage ควรเลือกตามความชำนาญของ IT Department ที่องค์กรตัวเองสังกัดตามที่ว่ามาเลยครับ แต่ว่าควรแบ่ง Layer ให้ชัดเจน ตรงไหนเป็น raw layer อาจจะมี storage ซักตัวหรือ data lake ไว้โยนของเข้าไป, staging layer ไม่จำเป็นต้องเป็น warehouse ก็ได้นะ แค่จัดของใน storage ให้ดีเป็นโฟลเดอร์เฉพาะของข้อมูลที่ถูกคลีนมาแล้วก็โอเคแล้ว, data mart ก็เหมือนกันครับ

  5. Data Dictionary ผมคิดว่าเอาที่ง่ายต่อการเปิดมาดู ใช้ tool ที่คนในองค์กรใช้อยู่แล้วง่ายที่สุด เพราะทุกคนรู้ว่าจะหาข้อมูลพวกนี้ได้ที่ไหน แต่อย่าลืมเรื่อง privacy, access ด้วยครับ ว่าใครบ้างที่สามารถจะเห็นข้อมูลพวกนี้ได้

  6. PDPA / Security Audit การทำ mask, encryption ขึ้นอยู่กับข้อมูลชุดนั้นเป็นข้อมูลที่ sensitive แค่ไหนครับ ถ้าเป็นข้อมูลลูกค้าก็จะเป็นที่จะต้องทำ คิดว่าองค์กร/ทีมควรจะต้องมีการคุยกันเรื่อง PDPA ก่อนที่จะเอาข้อมูลมาเก็บ มาใช้ครับ

  7. ในฐานะที่เรียกได้ว่าเป็น Data Engineer ใหม่ → นอกจากการศึกษา fundamental data engineering cycle ผมมองว่าควรฝึกตั้งคำถามเวลาที่จะเลือกใช้ tool แนะนำหนังสือเล่มนี้จะมี considered question เวลาจะเลือกใช้ของในแต่ละส่วนของ cycle เช่น data ingestion, data storage นอกเหนือจากนั้นคิดว่าควรศึกษาเรื่อง AI ครับ เพราะในอนาคต trend ที่เห็นช่วงนี้คือการทำ data ให้ AI แล้วก็เริ่มมีคนเอา AI มาใช้ทำ dags มากขึ้นแล้ว Amazon.com: Fundamentals of Data Engineering: Plan and Build Robust Data Systems eBook : Reis, Joe, Housley, Matt: Kindle Store

2 Likes