Screen Shot 2558-11-29 at 12.37.44 PM
ในปัจจุบัน NoSQL ได้เข้ามีบทบาทอย่างมากในเรื่องของการจัดเก็บข้อมูล
ไปจนถึงการประมวลผลข้อมูลที่มีขนาดใหญ่
แต่ก่อนที่จะนำไปใช้งานนั้น
มักจะมีปัญหา และ อุปสรรคต่าง ๆ จำนวนมาก

ซึ่งสิ่งที่คุณจะต้องรู้ คือ ข้อดี และ ข้อเสีย
เมื่อนำมาเปรียบเทียบกับ RDBMS (Relational Database Management System)
เพื่อที่จะหาทางแก้ไข และ ปิดช่องโหว่เหล่านั้นซะ

เริ่มที่ข้อเสียของ NoSQL เมื่อเทียบกับ RDBMS

1. Less mature
RDBMS นั้นเกิดมากว่า 25 ปีแล้ว
ส่วน NoSQL นั้นเพิ่งเกิดมา และ เพิ่งได้รับความนิยม 2-3 ปี เท่านั้น
ดังนั้น
เรื่องความสามารถที่ครบถ้วน
เรื่องความเสถียร และ ความน่าเชื่อถือของ RDBMS จึงสูงกว่ามาก

ส่วน NoSQL นั่นมีให้เลือกใช้งานเยอะมาก ๆ
แถมความสามารถก็ยังไม่ครบอีก
รวมทั้งความน่าเชื่อถือที่ยังน้อยอีกด้วย

ทำให้องค์กร หรือ ทีม ใด ๆ ที่จะนำไปใช้งาน
มักจะมีข้อโต้แย้งกับส่วนอื่น ๆ
ไม่ว่าจะเป็น System Admin, Operation, Business และ Management เป็นต้น

2. Less support
องค์กรใหญ่ ๆ หรือระบบ Enterprise จำเป็นต้องการความแน่ใจ มั่นใจ
ว่า จะไม่ถูกทอดทิ้ง หรือ มีคนช่วยเหลือยามเกิดปัญหา
หรือ สามารถโยนงานให้ไปทำได้
ซึ่งทำให้รู้สึกปลอดภัย และ วางใจมากขึ้น

แน่นอนว่า RDBMS เจ้าใหญ่ ๆ
ล้วนมี service เหล่านี้ให้ใช้บริการมากมาย
ทั้ง support 24×7 พร้อมกับ remote service เป็นต้น

ส่วน NoSQL มันตรงข้ามเลย
เพราะว่า ส่วนใหญ่มันเป็น open-source
ไม่มีใครมา support หรอกนะ
มีปัญหากรุณาช่วยตัวเอง หรือ หาข้อมูลจาก community ก็แล้วกัน

แต่ช่วงหลัง ๆ มาพบว่า NoSQL หลาย ๆ ตัว
มี service ต่าง ๆ เหล่านี้ให้ใช้แล้วเช่นกัน

3. Administration
ส่วนใหญ่ NoSQL มันถูกสร้างขึ้นมาเพื่อแก้ไขปัญหา
ดังนั้น จึงไม่ค่อยมีหน้าจัดการ หรือ Administrator มาให้ด้วย
ทั้งการติดตั้ง และ การจัดการ
ทำให้ผู้ที่ใช้งานต้องมีความรู้ในเรื่องของ technical
รวมทั้งรู้ และ เข้าใจวิธีการติดตั้ง และ ดูแลรักษาด้วย

ซึ่งมันขัดแย้งกับ RDBMS และในระบบ Enterprise
ที่ทุก ๆ อย่างจะมีหน้า User Interface สวย ๆ ให้ใช้งาน

ดังนั้นการจะปรับเปลี่ยนมันไม่ใช่เรื่องง่ายเลย

4. No advance expertise
เนื่องจาก NoSQL มันเพิ่งเกิดได้ไม่นาน
จะหาผู้เชี่ยวชาญจริง ๆ มันไม่ใช่เรื่องง่ายเลย
ส่วนผู้เชี่ยวชาญฝั่ง RDBMS นั้นมีเยอะมาก ๆ

ซึ่งตรงส่วนนี้ถือว่า เป็นเรื่องที่มีความเสี่ยงสูงมาก ๆ
ดังนั้นควรระวังในการนำมาใช้งาน
รวมทั้งต้องเข้าใจด้วยว่า
เรานำเอา NoSQL มาใช้เพื่ออะไร ?
เรานำเอา NoSQL มาใช้เพื่อแก้ไขปัญหาอะไรของ RDBMS ?

มาดูข้อดีของ NoSQL เมื่อเทียบกับ RDBMS

มีข้อเสีย มันก็ต้องมีข้อดีกันบ้าง
ไม่เช่นนั้นหลาย ๆ องค์กร คงไม่นำมาใช้งานกันหรอกนะ

1. Elastic scalability
ในการที่จะขยาย database เช่นเพิ่มเครื่อง และ ทำ cluster นั้น
สำหรับ RDBMS มันไม่ใช่เรื่องง่ายเลย
แต่ NoSQL มันถูกสร้างมาเพื่อให้ scale out โดยธรรมชาติ

2. Big data application
มันถูกสร้างมาเพื่อรองรับข้อมูลขนาดใหญ่
ที่เกิดขึ้นมาอย่างรวดเร็ว
ซึ่ง RDBMS ไม่ได้ถูกสร้างมาเพื่อรองรับ
ข้อมูลที่เกิดขึ้นมารวดเร็ว และ ใหญ่ขนาดนี้
รวมทั้งเรื่องของการประมวลผลอีกด้วย
ดังนั้น NoSQL จึงเป็นคำตอบที่ดีกว่านั่นเอง

จะสังเกตุได้ว่า
ในปัจจุบัน RDBMS หลาย ๆ ตัวเริ่มนำเอาความสามารถของ NoSQL เข้าไปด้วย
หรือไม่เช่นนั้น ก็สร้าง NoSQL ของตังเองขึ้นมา

3. Economy
ในการติดตั้ง RDBMS นั้นต้องการ server และ storage ที่สูง หรือ แพงนั่นเอง
ส่วน NoSQL ไม่ต้องการ server ที่แพง และ แรงมาก
เนื่องจากถ้าต้องการขยายก็เพียงเพิ่มเครื่องใหม่เข้าไป
นั่นหมายถึง เราสามารถขยายความสามารถของระบบ
ด้วยต้นทุน และ ค่าใช้จ่ายที่ต่ำลงนั่นเอง

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

Reference Websites
http://www.hadoop360.com/blog/advantages-and-disadvantages-of-nosql-databases-what-you-should-k
https://speakerdeck.com/abchaudhri/considerations-for-using-nosql-technology-on-your-next-it-project-1

Tags: