12 คะแนน โดย xguru 2022-05-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

คำถามบน HN ในทำนองว่า "ในวงการ IT ตำแหน่ง DBA กำลังหายไปหรือเปล่า?" พร้อมคำตอบจากหลายคน

  • ฉันเคยเป็นนักพัฒนาแล้วค่อยมาเป็น DBA แต่ตอนที่ยังเป็นนักพัฒนา ฉันไม่ได้รับความช่วยเหลือที่จำเป็นจาก DBA เลย เพราะงั้นตอนนี้ฉันเลยพยายามเป็นคนแบบที่ครั้งหนึ่งฉันเคยอยากได้รับความช่วยเหลือจากเขา..
    → ตอนนี้คุณเพิ่งเข้าใจปัญหาแล้ว ที่บริษัทเรามี DBA แค่ 2 คน และเป็นไปไม่ได้เลยที่เราจะเอาเวลาของพวกเขามาให้ทุกคนได้ทั้งหมด
    → การเป็น DBA คือการต่อสู้ไม่รู้จบกับเอนโทรปีที่นักพัฒนาพยายามจะสร้างขึ้น
    → โมเดลข้อมูลต้องได้รับการตรวจสอบโดยคนที่มีความรู้และประสบการณ์มากกว่าเสมอ และนักพัฒนารุ่นใหม่ก็มักจะมีไอเดียสุดเพี้ยนมาเป็นครั้งคราวด้วย (เช่น บอกว่าอย่าใช้ FK!) ดูเหมือนไอเดียแย่ ๆ จะผุดออกมาอย่างต่อเนื่องเหมือนสตรีม
    → พอไอเดียแย่ ๆ พวกนี้ถูกนำไปใช้งานจริงแล้ว มักย้อนกลับได้ยากและนำไปสู่ความโกลาหลมากขึ้น เช่น ต้องใช้ Materialized View เพื่อหลีกเลี่ยงการทำโมเดลซ้ำซ้อน หรือมี View แปลก ๆ เพื่อชดเชยข้อมูลที่ซ้ำกัน
    → เพราะงั้นคำตอบคือ "Yes" DBA สำคัญมาก แน่นอนว่ามันขึ้นอยู่กับว่าบริษัทให้ความสำคัญเรื่องนี้แค่ไหนและให้มีส่วนร่วมในกระบวนการพัฒนาหรือไม่ แต่ถ้าไม่ คุณจะเครียดมาก

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

  • ผมคิดว่า DBA เป็นบทบาทที่จำเป็นและยิ่งสำคัญขึ้นเรื่อย ๆ เมื่อมองย้อนกลับไปตลอด 25 ปีในสาย IT ของผม นักพัฒนาทั่วไปแทบไม่สนใจและไม่ได้มีความรู้มากนักเรื่องการทำ data modeling และการจัดการข้อมูล
    → ในสตาร์ตอัปเล็ก ๆ อาจหาได้ยาก แต่ในบริษัทใหญ่ DBA เป็นสิ่งจำเป็น โปรเจกต์ของผมมีอยู่ 2-3 คน และเราก็มองหาคนเพิ่มอยู่เสมอ
    → ถ้าคุณรู้ว่าคำขอข้อมูล/SQL ที่ออกแบบผิด หรือ data model/ตารางที่ออกแบบไม่ดี ส่งผลต่อประสิทธิภาพได้มากแค่ไหน คุณจะตกใจ รวมถึงการเพิ่มดัชนีเฉพาะหรือสถิติสำหรับการปรับแต่งที่ช่วยให้การรันดีขึ้นได้มากเพียงใด
    → ก็มีบางขนาดองค์กรที่มองว่าแทนที่จะจ้าง DBA เก่ง ๆ แค่เพิ่มฮาร์ดแวร์ดี ๆ เข้าไปก็พอ เพราะ "ฮาร์ดแวร์ถูก"
    → ผมเห็นบ่อยมากว่าแม้แต่นักพัฒนาที่มีประสบการณ์ ก็ยังเขียน SQL ที่ต้องอ่านบัฟเฟอร์ระดับหลายหมื่นล้านแถวเพื่อให้ได้คำตอบเพียง 1 บรรทัด (แน่นอนว่าบางครั้งอาจจำเป็น แต่ส่วนใหญ่ไม่ใช่)

  • ถ้าคุณทำ data modeling สร้าง data warehouse จัดการและบำรุงรักษา schema และช่วยนักวิเคราะห์เขียน SQL ที่มีประสิทธิภาพได้ "คุณจะมีงานทำไปได้อีกนานมาก" แต่ถ้ามองแค่ในมุมผู้ดูแลระบบ งานแบบนั้นอาจหายไปเพราะมีโซลูชัน SaaS/PaaS

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

 
xguru 2022-05-12

เพราะตัวอย่างที่ยกมาในระหว่างทาง ทำให้นึกถึงบทความ Github ไม่ได้ใช้ Foreign Key เลยแม้แต่น้อย (2016) ขึ้นมาครับ