ในปัจจุบัน 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 24x7 พร้อมกับ 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