ภาพรวมฐานข้อมูล NoSQL

สารบัญ:

ภาพรวมฐานข้อมูล NoSQL
ภาพรวมฐานข้อมูล NoSQL
Anonim

NoSQL เป็นตัวย่อที่สร้างขึ้นในปี 1998 หลายคนคิดว่า NoSQL เป็นคำที่เสื่อมเสียซึ่งสร้างขึ้นเพื่อกระตุ้นที่ SQL ในความเป็นจริง คำนี้หมายถึงไม่ใช่แค่ SQL แนวคิดคือเทคโนโลยีทั้งสองสามารถอยู่ร่วมกันได้และแต่ละเทคโนโลยีก็มีที่ของมัน การเคลื่อนไหวของ NoSQL เป็นข่าวในช่วงไม่กี่ปีที่ผ่านมา เนื่องจากผู้นำ Web 2.0 จำนวนมากได้นำเทคโนโลยี NoSQL มาใช้ บริษัทต่างๆ เช่น Facebook, Twitter, Digg, Amazon, LinkedIn และ Google ล้วนใช้ NoSQL ไม่ทางใดก็ทางหนึ่ง มาทำลาย NoSQL เพื่อให้คุณสามารถอธิบายให้ CIO ของคุณหรือแม้แต่เพื่อนร่วมงานของคุณฟัง

Image
Image

NoSQL โผล่ออกมาจากความต้องการ

การจัดเก็บข้อมูล: ข้อมูลดิจิทัลที่จัดเก็บไว้ทั่วโลกมีหน่วยเป็นเอ็กซาไบต์เอ็กซาไบต์เท่ากับหนึ่งพันล้านกิกะไบต์ (GB) ของข้อมูล ตาม Internet.com จำนวนข้อมูลที่จัดเก็บเพิ่มในปี 2549 คือ 161 เอ็กซาไบต์ เพียง 4 ปีต่อมาในปี 2010 ปริมาณข้อมูลที่จัดเก็บจะเกือบ 1, 000 ExaBytes ซึ่งเพิ่มขึ้นมากกว่า 500% กล่าวอีกนัยหนึ่ง มีข้อมูลจำนวนมากถูกเก็บไว้ในโลกและจะเติบโตอย่างต่อเนื่อง

ข้อมูลที่เชื่อมต่อ: ข้อมูลยังคงเชื่อมต่อกันมากขึ้น การสร้างเว็บที่ได้รับการส่งเสริมในไฮเปอร์ลิงก์ บล็อกมี pingbacks และระบบเครือข่ายโซเชียลที่สำคัญทุกระบบมีแท็กที่เชื่อมโยงสิ่งต่างๆ เข้าด้วยกัน ระบบหลักถูกสร้างขึ้นเพื่อเชื่อมต่อกัน

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

NoSQL คืออะไร

ฉันเดาว่าวิธีหนึ่งที่จะนิยาม NoSQL ก็คือการพิจารณาว่ามันไม่ใช่ ไม่ใช่ SQL และไม่สัมพันธ์กัน เช่นเดียวกับชื่อที่แนะนำ มันไม่ใช่การแทนที่ RDBMS แต่เป็นการชมเชย NoSQL ได้รับการออกแบบมาสำหรับการจัดเก็บข้อมูลแบบกระจายสำหรับความต้องการข้อมูลขนาดใหญ่มาก ลองนึกถึง Facebook ที่มีผู้ใช้ 500,000, 000 คนหรือ Twitter ที่รวบรวมข้อมูลเทราบิตทุกวัน

ในฐานข้อมูล NoSQL ไม่มีสคีมาที่ตายตัวและไม่มีการรวม RDBMS "ขยายขนาด" โดยรับฮาร์ดแวร์ที่เร็วขึ้นและเร็วขึ้น และเพิ่มหน่วยความจำ ในทางกลับกัน NoSQL สามารถใช้ประโยชน์จาก "การขยายขนาด" การขยายขนาดหมายถึงการกระจายโหลดไปยังระบบสินค้าโภคภัณฑ์จำนวนมาก นี่คือส่วนประกอบของ NoSQL ที่ทำให้เป็นโซลูชันราคาไม่แพงสำหรับชุดข้อมูลขนาดใหญ่

หมวดหมู่ NoSQL

โลก NoSQL ปัจจุบันมี 4 หมวดหมู่พื้นฐาน

  1. Key-values Stores มีพื้นฐานมาจาก Dynamo Paper ของ Amazon ซึ่งเขียนขึ้นในปี 2550แนวคิดหลักคือการมีอยู่ของตารางแฮชซึ่งมีคีย์เฉพาะและตัวชี้ไปยังรายการข้อมูลเฉพาะ การแมปเหล่านี้มักจะมาพร้อมกับกลไกแคชเพื่อเพิ่มประสิทธิภาพสูงสุด
  2. Column Family Stores ถูกสร้างขึ้นเพื่อจัดเก็บและประมวลผลข้อมูลจำนวนมหาศาลที่แจกจ่ายผ่านเครื่องหลายเครื่อง ยังมีคีย์อยู่แต่จะชี้ไปที่หลายคอลัมน์ ในกรณีของ BigTable (โมเดล Column Family NoSQL ของ Google) แถวจะถูกระบุโดยคีย์แถวพร้อมข้อมูลที่จัดเรียงและจัดเก็บโดยคีย์นี้ คอลัมน์ถูกจัดเรียงตามกลุ่มคอลัมน์

  3. Document Databases ได้รับแรงบันดาลใจจาก Lotus Notes และคล้ายกับร้านค้าคีย์-ค่า โมเดลนี้เป็นเอกสารที่มีการกำหนดเวอร์ชันโดยพื้นฐานแล้ว ซึ่งเป็นคอลเล็กชันของคอลเล็กชันคีย์-ค่าอื่นๆ เอกสารกึ่งโครงสร้างจะถูกจัดเก็บในรูปแบบเช่น JSON
  4. Graph Databases สร้างขึ้นด้วยโหนด ความสัมพันธ์ระหว่างบันทึกย่อและคุณสมบัติของโหนด แทนที่จะใช้ตารางของแถวและคอลัมน์และโครงสร้างที่เข้มงวดของ SQL จะใช้โมเดลกราฟที่ยืดหยุ่นซึ่งสามารถปรับขนาดได้ในหลายเครื่อง

ผู้เล่น NoSQL รายใหญ่

ผู้เล่นหลักใน NoSQL เกิดขึ้นเนื่องจากองค์กรที่ยอมรับพวกเขาเป็นหลัก เทคโนโลยี NoSQL ที่ใหญ่ที่สุดบางส่วน ได้แก่:

  • Dynamo: Dynamo ถูกสร้างโดย Amazon.com และเป็นฐานข้อมูล Key-Value NoSQL ที่โดดเด่นที่สุด Amazon ต้องการแพลตฟอร์มแบบกระจายที่ปรับขนาดได้สูงสำหรับธุรกิจอีคอมเมิร์ซของพวกเขา ดังนั้นพวกเขาจึงพัฒนา Dynamo Amazon S3 ใช้ไดนาโมเป็นกลไกการจัดเก็บ
  • Cassandra: Cassandra ถูกเปิดโดย Facebook และเป็นฐานข้อมูล NoSQL เชิงคอลัมน์
  • BigTable: BigTable เป็นฐานข้อมูลเชิงคอลัมน์ที่เป็นกรรมสิทธิ์ของ Google Google อนุญาตให้ใช้ BigTable แต่สำหรับ Google App Engine เท่านั้น
  • SimpleDB: SimpleDB เป็นอีกหนึ่งฐานข้อมูลของ Amazon ใช้สำหรับ Amazon EC2 และ S3 ซึ่งเป็นส่วนหนึ่งของ Amazon Web Services ที่เรียกเก็บค่าธรรมเนียมตามการใช้งาน
  • CouchDB: CouchDB พร้อมกับ MongoDB เป็นฐานข้อมูล NoSQL เชิงเอกสารแบบโอเพนซอร์ส
  • Neo4J: Neo4j เป็นฐานข้อมูลกราฟโอเพ่นซอร์ส

กำลังค้นหา NoSQL

คำถามเกี่ยวกับวิธีการสืบค้นฐานข้อมูล NoSQL คือสิ่งที่นักพัฒนาส่วนใหญ่สนใจ อย่างไรก็ตาม ข้อมูลที่จัดเก็บในฐานข้อมูลขนาดใหญ่ไม่ได้ช่วยอะไรใครเลย หากคุณไม่สามารถเรียกค้นและแสดงให้ผู้ใช้เห็น หรือบริการเว็บ ฐานข้อมูล NoSQL ไม่ได้จัดเตรียมภาษาการสืบค้นข้อมูลระดับสูงเช่น SQL การสืบค้นฐานข้อมูลเหล่านี้คือ> PREFIX foaf:

SELECT ?url

FROM

WHERE {

?contributor foaf:name "Jon Foobar"

?contributor foaf:weblog ?url.

}

อนาคตของ NoSQL

องค์กรที่ต้องการพื้นที่จัดเก็บข้อมูลจำนวนมากกำลังมองหา NoSQL อย่างจริงจัง เห็นได้ชัดว่าแนวคิดนี้ไม่ได้รับแรงฉุดลากมากนักในองค์กรขนาดเล็ก ในการสำรวจที่จัดทำโดย Information Week 44% ของผู้เชี่ยวชาญด้านไอทีทางธุรกิจไม่เคยได้ยิน NoSQLนอกจากนี้ มีเพียง 1% ของผู้ตอบแบบสอบถามเท่านั้นที่รายงานว่า NoSQL เป็นส่วนหนึ่งของทิศทางเชิงกลยุทธ์ของพวกเขา เห็นได้ชัดว่า NoSQL มีที่ของมันในโลกที่เชื่อมต่อกันของเรา แต่จะต้องพัฒนาต่อไปเพื่อให้ได้รับความสนใจอย่างมากที่หลายคนคิดว่าน่าจะมี