Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 2081

สรุปการแบ่งปันเรื่อง Introduction to NoSQL

$
0
0

nosql-01

nosql-01 วันนี้มีโอกาสไปแบ่งปันความรู้เรื่อง NoSQL ให้กับนักศึกษาคณะไอทีลาดกระบัง โดยเนื้อหาจะเป็นความรู้พื้นฐานต่าง ๆ ที่ควรรู้และเข้าใจ ก่อนนำ NoSQL ไปใช้งาน มาเริ่มกันเลย

เริ่มด้วยการทำความเข้าใจกับ RDBMS (Relational DataBase Management System)

ว่า RDBMS นั้นเป็น data model หนึ่งเท่านั้น ดังนั้น Database != RDBMS นะ ต้องเข้าใจว่า ACID consistency model คืออะไร มีความสำคัญอย่างไร ?
  • Atomicity
  • Consistency
  • Isolation
  • Durability
การจัดการข้อมูลที่จัดเก็บใน RDBMS คือ SQL (Structured Query Language) โดยที่ RDBMS มันสามารถทำงานได้ดีเป็นปกติ และได้รับความนิยมนำไปใช้งานกันมากมาย

แต่เมื่อการมาถึงของยุคที่มีข้อมูลเกิดขึ้นมาจำนวนมาก และ รวดเร็ว

นั่นคือโลกที่คนนิยมใช้ internet นั่นคือโลกที่มีการใช้งาน Social network จำนวนมาก นั่นคือโลกที่มีข้อมูลเกิดขึ้นมาจำนวนมาก บางคนบอกว่ามันคือยุคของ Big Data ซึ่งข้อมูลรูปแบบเหล่านี้นั้น RDBMS ไม่สามารถรองรับได้ดีเพียงพอ ถามว่ารองรับได้ไหม ตอบว่าได้ แต่ต้องใช้แรงเยอะ แต่ต้องใช้ค่าใช้จ่ายเยอะ nosql-02 ดังนั้นยักษ์ใหญ่แห่งวงการ internet คือ Google และ Amazon จึงสร้างระบบจัดการข้อมูลของตัวเองขึ้นมา Google สร้าง Bigtable Amazon สร้าง Dynano และนี่คือจุดเริ่มต้นของเครื่องมือจัดการข้อมูล หรือ database ชนิดใหม่ ๆ ที่นอกเหนือจาก RDBMS

เมื่อเกิด Database ชนิดใหม่ ๆ ที่ไม่ใช่ Non-relational database ขึ้นมาเยอะ ๆ

จึงได้เกิด meetup หนึ่งขึ้นมา มีเป้าหมายเพื่อพูดคุยสิ่งต่าง ๆ
  • คุยเรื่อง Non-relational database
  • Open-source
  • Distributed database
โดยชื่อของ meetup เกิดมาเพื่อต้องการสร้าง hashtag ของ meetup ครั้งนี้ ซึ่งได้ชื่อว่า #nosql ขึ้นมา สุดท้ายจึงได้ชื่อ meetup ว่า NoSQL meetup ผู้ที่เข้าร่วมงานครั้งนี้ ประกอบไปด้วย
  • ผู้พัฒนา Voldemort
  • ผู้พัฒนา Cassandra
  • ผู้พัฒนา Dynamite
  • ผู้พัฒนา HBase
  • ผู้พัฒนา Hypertable
  • ผู้พัฒนา CouchDB

ผลจาก meetup ครั้งนี้ได้ข้อสรุปที่น่าสนใจดังต่อไปนี้

1. คุณลักษณะของ NoSQL ประกอบไปด้วย
  • Non-relational database
  • ส่วนใหญ่เป็น Open-source
  • Cluster-friendly นั่นคือโดยปกติจะรองรับการทำงานแบบ distributed
  • Schema-less
  • ใช้สำหรับการพัฒนาระบบ web ใหม่ ๆ
2. Data model ต่าง ๆ ของ NoSQL ประกอบไปด้วย
  • Key-value
  • Document
  • Column-family
  • Graph
nosql-04

จากนั้นอธิบายเรื่อง Consistency ของ NoSQL

NoSQL จะใช้ BASE consistency model ซึ่งย่อมาจาก
  • Basic Availability คือ database ต้องทำงานอยู่ตลอดเวลา
  • Soft state คือการเขียนข้อมูลจะไม่บันทึกไปยังทุก ๆ เครื่องพร้อมกัน
  • Eventual consistency คือเมื่อผ่านไปสักระยะหนึ่งข้อมูลจะถูกต้องในทุก ๆ เครื่อง delay จะมีหน่วยเป็น milisecond

ยังไม่พอนะ NoSQL จะถูกสร้างมาจากแนวคิดของ CAP Thorem

ประกอบไปด้วย
  • Consistency
  • Availability
  • Partition tolerance
ซึ่งให้เลือกมาเพียง 2 ตัวเท่านั้น แสดงดังรูป nosql-03 โดยที่ CA คือ RDBMS ดังนั้นจึงเหลือเพียง 2 ทางเลือกคือ CP และ AP ซึ่งเป็นทางเลือกของการสร้าง NoSQL ชนิดต่าง ๆ นั่นเอง จะเลือก CP หรือ AP นั่นคือ สิ่งที่คุณต้องตัดสินใจ ว่าระบบของคุณจะเลือกอะไรระหว่า Consistency กับ Availability ส่วน Partition tolerance มันเป็นความสามารถที่ NoSQL ทุกตัวต้องทำได้

คำถามที่น่าสนใจคือ

RDBMS จะตายไปหรือไม่ ? NoSQL จะเข้ามาแทนที่ RDBMS หรือไม่ ? คำตอบคือ ไม่ เนื่องจากเราสามารถนำเอา RDBMS และ NoSQL มาใช้งานร่วมกัน ดังนั้นในหนึ่งระบบสามารถมี database ที่หลากหลาย ตามความต้องการของการทำงานต่าง ๆ ได้ นั่นจึงเป็นที่มาของคำว่า Polyglot Persistence สุดท้ายให้เลือกเครื่องมือที่เหมาะสมกับงานนั้น ๆ แสดงว่าเราต้องเข้าใจทั้งระบบงาน และ เครื่องมือ โดย Slide อยู่ที่นี่ http://www.slideshare.net/up1/introduction-to-nosql-61023856 ขอขอบคุณสำหรับพื้นที่ในการแบ่งปันครับ

Viewing all articles
Browse latest Browse all 2081

Trending Articles