รู้จักกับ SQL, NoSQL และ NewSQL สามทางเลือกในเทคโนโลยี Database ปัจจุบัน

ปัจจุบันนี้เทคโนโลยี Database นั้นถือว่าเติบโตเร็วและมีความหลากหลายมากกว่าแต่ก่อนเป็นอย่างมาก ดังนั้นในบทความนี้จึงได้ทำการสรุปเทคโนโลยีของทั้ง SQL, NoSQL และ NewSQL เพื่อให้ผู้อ่านพอมีความเข้าใจในระดับพื้นฐานสำหรับใช้ประกอบการตัดสินใจ หรือศึกษาต่อยอดต่อไปในอนาคตได้ด้วยตัวเอง พร้อมข้อดีข้อเสียของแต่ละเทคโนโลยี ดังต่อไปนี้ครับ

 

SQL

เทคโนโลยี Database พื้นฐานที่ทุกคนคงรู้จักกันดี แต่น้อยคนนักที่จะมีความเชี่ยวชาญ โดย SQL นี้ก็เป็นเทคโนโลยีหลักที่เราเห็นกันในแทบจะทุก Application ในปัจจุบัน ด้วยการทำงานเป็น Relational Database ที่มีการจัดเก็บไฟล์เป็นแบบตารางหรือ Strucutued Data / Schema-based เป็นหลัก ซึ่งถึงแม้ปัจจุบันจะมีความพยายามที่จะทำให้ SQL สามารถบันทึกข้อมูล Unstructured Data ได้ แต่ในหลายๆ ความสามารถสำหรับการจัดการ Unstructured Data นั้นก็ยังไม่เทียบเท่า NoSQL จริงๆ อยู่ดี

mysql_architecture_diagram

ข้อดี

  • เป็นเทคโนโลยีที่มีการพัฒนาต่อเนื่องมานาน ทำให้มีความสามารถรอบด้าน โดยถูกออกแบบมาให้เป็น General Purpose รองรับการทำงานได้หลากหลาย
  • สามารถทำงานร่วมกับ Hardware แบบเดิมๆ ได้ รวมถึงสามารถทำงานร่วมกับ Application และ Programming Language ได้หลากหลาย
  • มีเครื่องมือสนับสนุนการใช้งานให้พร้อม ทั้งสำหรับการเสริมความทนทาน, การเพิ่มความปลอดภัย, การบริหารจัดการ และการดูแลรักษา
  • ในระดับองค์กรก็มีผลิตภัณฑ์หลากหลายพร้อมบริการสนับสนุนให้อย่างครบครัน

ข้อเสีย

  • ส่วนใหญ่จะไม่สามารถทำ Scale-out ได้อย่างยืดหยุ่นเท่ากับเทคโนโลยีฐานข้อมูลอื่นๆ ทำให้การออกแบบ SQL สำหรับรองรับผู้ใช้งานจำนวนมหาศาลในระบบใหญ่ๆ นั้นถือว่าค่อนข้างยาก
  • การที่ต้องระบุ Schema ชัดเจนก็ทำให้การเพิ่มฟีลด์ของข้อมูลนั้นทำได้ลำบาก (ถึงแม้จะใช้ JSON ได้แต่ก็ไม่ยืดหยุ่นเท่าการใช้ NoSQL เต็มๆ อยู่ดี)
  • การถูกออกแบบมาเป็น General Purpose นั้นก็ทำให้มีประสิทธิภาพสู้กับพวก NoSQL หรือ NewSQL ในงานเฉพาะทางบางอย่างไม่ได้
  • การทำ Performance Tuning นั้นต้องอาศัยความรู้เป็นอย่างมาก

 

NoSQL

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

  • DynamoDB, Riak และ Cassandra ที่เน้นให้ฐานข้อมูลมีความทนทาน, สามารถบันทึกข้อมูลและเรียกอ่านข้อมูลได้ตลอดเวลา ถึงแม้ว่าข้อมูลที่ถูกอ่านออกไปนั้นจะไม่ใช่ข้อมูลล่าสุด
  • MongoDB และ CouchDB ที่ต่อยอดจาก Key-Value ด้วยการบันทึกข้อมูลเป็น JSON ที่มีความยืดหยุ่นกว่าแทน พร้อมระบบ Sub-key และ Sub-Value ภายในกับการทำ Sharding ให้รองรับการบริการข้อมูลจำนวนมากด้วยความเร็วสูง
  • Redis ที่ถูกออกแบบมาให้เป็น Key-Value ที่สามารถจัดการกับข้อมูลได้รวดเร็วและดีขึ้น โดยเป็นที่นิยมสำหรับการสร้างข้อมูลที่มีการเรียงลำดับหลายๆ ชุด สำหรับใช้ในการทำ Ranking และ Leaderboard รวมถึงยังมีความสามารถในการจัดเรียงและประมวลผลทางสถิติที่ซับซ้อน สำหรับนำไปใช้ใน Application เฉพาะทางบางอย่างได้ดี
  • Neo4j เป็นฐานข้อมูลสำหรับการประมวลผลข้อมูลแบบ Graph โดยเฉพาะ
  • Elasticsearch เป็นระบบฐานข้อมูลสำหรับการค้นหาข้อมูลแบบ Text โดยเฉพาะ

mongodb_architecture

ข้อดี

  • โดยมาก NoSQL มักถูกออกแบบมาให้มี Availability สูงมาก และ Scale ระบบเพื่อรองรับผู้ใช้งานจำนวนมากได้ง่าย ถึงแม้ระบบจะทำงานร่วมกันข้าม Data Center ก็ตาม
  • NoSQL หลายๆ ระบบถูกออกแบบมาสำหรับ Unstructured Data โดยเฉพาะ เช่น ประมวลผล Log, XML, JSON และเอกสารต่างๆ ทำให้มีความยืดหยุ่นในการใช้งานเฉพาะทางแต่ละประเภทสูง

ข้อเสีย

  • ส่วนใหญ่แล้ว NoSQL จะทำงานแบบ Non-transactional ดังนั้นถ้าหากข้อมูลมีความละเอียดสูงและผิดพลาดไม่ได้เลย NoSQL หลายๆ ระบบก็อาจจะไม่เหมาะในหลายๆ กรณี
  • การเรียกอ่านข้อมูลขึ้นมาใช้ส่วนใหญ่มักจะมี Cost ที่สูงกว่าการใช้ SQL เพราะไม่สามารถเลือกเจาะจงได้อย่างง่ายๆ ว่าจะเรียกข้อมูลส่วนไหนขึ้นมา ยกเว้นสำหรับงานเฉพาะทางบางอย่างที่จะดีกว่า SQL แบบชัดเจนมาก (ขึ้นอยู่กับงานที่ทำและเทคโนโลยีที่เลือก) แต่การบันทีกข้อมูลลงไปส่วนใหญ่จะง่ายกว่า SQL
  • เทคโนโลยีส่วนใหญ่ไม่มีความเป็นมาตรฐานกลาง ดังนั้นการเปรียบเทียบแต่ละเทคโนโลยีค่อนข้างทำได้ยาก ผู้ใช้งานต้องมีความคุ้นเคยกับการจัดการ Software เหล่านี้ให้ได้ด้วยตัวเอง
  • ผู้เชี่ยวชาญที่สามารถสนับสนุนเทคโนโลยีเหล่านี้ในระดับองค์กรได้นั้นยังมีไม่มาก แต่เทคโนโลยี NoSQL นี้กลับมีความจำเป็นมากในการที่องค์กรจะสร้างความแตกต่างในเชิงเทคโนโลยีจากคู่แข่ง

 

NewSQL

สำหรับคำว่า NewSQL นี้อาจจะไม่ค่อยคุ้นหูกันมากนัก โดยคำว่า NewSQL นี้ถูกบัญญัติขึ้นมาโดยนักวิเคราะห์จาก 451 Group ที่ใช้เรียกเทคโนโลยี SQL แบบใหม่ที่ต่อยอดขึ้นมาจากแบบเก่าเพื่อแก้ปัญหาในเรื่องประสิทธิภาพให้มีความรวดเร็วสูงยิ่งขึ้น ด้วยการใช้เทคโนโลยีใหม่ๆ อย่าง In-memory เข้ามาช่วย และการ Scale ระบบได้ในระดับที่ใกล้เคียงกับ NoSQL โดยยังทำงานแบบ Transactional ได้ และมีความทนทานในระดับสูง เพื่อรองรับความต้องการของสถาบันการเงิน, ระบบซื้อขายสินค้าต่างๆ หรือแม้แต่ระบบ ERP ขนาดใหญ่ขององค์กร

อย่างไรก็ดี NewSQL นี้ก็เป็นเทคโนโลยีที่ไม่ได้มีมาตรฐานชัดเจนตายตัวเช่นกัน ทำให้ผู้ผลิตแต่ละรายนั้นพัฒนา NewSQL ในแนวทางของตัวเอง โดยมีข้อจำกัดที่แตกต่างกันไป เช่น

  • SAP HANA สำหรับระบบ ERP ที่มีการเขียนและการอ่านข้อมูลจำนวนมหาศาล พร้อมออกรายงานได้อย่างรวดเร็วด้วย In-memory
  • Microsoft Hekaton ระบบ SQL Server In-memory OLTP ที่มาช่วยให้ SQL Server ทำงานได้อย่างรวดเร็วยิ่งขึ้น
  • NuoDB เป็น SQL Database ที่ถูกออกแบบมาสำหรับการทำ Cluster ได้ถึงระดับข้าม Data Center แต่แรก

sap_hana_platform_diagram

ข้อดี

  • สามารถใช้ทดแทน SQL ที่ใช้งานอยู่เดิมได้ง่าย
  • รองรับงานประเภท Analytics ได้ดีมาก
  • มีจุดเด่นบางข้อที่คล้ายคลึงกับ NoSQL
  • มีเทคโนโลยีที่ถูกออกแบบมาสำหรับทำงานเฉพาะทางบางอย่างด้วยประสิทธิภาพที่ดีขึ้นได้

ข้อเสีย

  • ไม่สามารถทำงานเป็น General Purpose ได้ถึงระดับเดียวกับ SQL
  • การใช้ In-memory ยังมีข้อจำกัดเรื่องพื้นที่และความจุอยู่ รวมถึง Data Consistency ในกรณีที่เกิดปัญหาทางด้านไฟฟ้ากับ Data Center
  • ยังไม่มีเครื่องมือช่วยจัดการเท่ากับ SQL
  • โซลูชั่นโดยรวมยังมีราคาสูง แต่ก็คุ้มค่าเมื่อเทียบกับประสิทธิภาพที่ได้รับ

 

ไม่มีเทคโนโลยีฐานข้อมูลไหนที่รองรับงานได้ทุกรูปแบบ

จะเห็นได้ว่าแต่ละเทคโนโลยีนั้นก็มีข้อดีข้อเสียแตกต่างกันไป และทุกเทคโนโลยีนั้นก็ยังมีการพัฒนาต่อยอดต่อไปเรื่อยๆ ด้วยเช่นกัน ดังนั้นสิ่งที่ทุกคนในวงการ IT ควรทำ (และไม่จำกัดเฉพาะกับเรื่อง Database เท่านั้น) ก็คือการหมั่นศึกษาแต่ละเทคโนโลยีให้ดี มีการทดสอบการทำงานก่อนเลือกใช้งานจริง และเลือกใช้เทคโนโลยีให้เหมาะกับงาน เพราะถ้าหากเลือกเทคโนโลยีไม่เหมาะสมกับงานแล้ว สุดท้ายก็จะก่อให้เกิดหนี้ในเชิงการพัฒนาระบบไปเสียเปล่าๆ นั่นเอง

ทั้งนี้การอ่านบทความนี้ก็ยังไม่ถือว่าได้รับข้อมูลครบถ้วนนะครับ ขาดอะไรไปเยอะมากเหมือนกัน ดังนั้นถ้าใครสนใจจะศึกษาต่อยอดจริงๆ แนะนำว่าไปทดลองของจริงเปรียบเทียบกันดูเลยจะเห็นภาพเร็วกว่ามากครับ

 

ข้อมูลเพิ่มเติม: http://cacm.acm.org/blogs/blog-cacm/109710-new-sql-an-alternative-to-nosql-and-old-sql-for-new-oltp-apps/fulltext , http://dataconomy.com/sql-vs-nosql-vs-newsql-finding-the-right-solution/ , https://en.wikipedia.org/wiki/NewSQL , http://searchdatamanagement.techtarget.com/definition/NewSQL


About techtalkthai

ทีมงาน TechTalkThai เป็นกลุ่มบุคคลที่ทำงานในสาย Enterprise IT ที่มีความเชี่ยวชาญทางด้าน Network, Security, Server, Storage, Operating System และ Virtualization มารวมตัวกันเพื่ออัพเดตข่าวสารทางด้าน Enterprise IT ให้แก่ชาว IT ในไทยโดยเฉพาะ

Check Also

[Infographic] Modular Chassis Data Center Switch แรงแค่ไหน ฉบับ 2019-06

พอดีช่วงนี้ทีมงาน TechTalkThai มีงานที่ต้องทำเกี่ยวกับตลาด Data Center Switch ครับ เลยขอถือโอกาสมานั่งอัปเดตเทคโนโลยีและสรุปภาพรวมกันเล็กน้อยว่าเทคโนโลยีในส่วนนี้ไปถึงไหนกันแล้วใน Infographic อันนี้ครับ

NetApp อัปเดต Data Fabric ใหม่ ตอบโจทย์ Hybrid Multicloud ได้ในหนึ่งเดียว

NetApp ได้ออกมาประกาศอัปเดตเทคโนโลยี Data Fabric ครั้งใหญ่ โดยปรับปรุงหลากหลายเทคโนโลยีของตนเองเพื่อผสานระบบสู่ภาพของ Hybrid Multicloud ด้วยการผนวกรวมโซลูชันต่างๆ เข้าด้วยกันดังนี้