Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

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

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

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

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. ร้านคีย์-ค่า มีพื้นฐานมาจาก Dynamo Paper ของ Amazon ซึ่งเขียนขึ้นในปี 2550 แนวคิดหลักคือการมีอยู่ของตารางแฮชซึ่งมีคีย์เฉพาะและตัวชี้ไปยังรายการข้อมูลเฉพาะ การแมปเหล่านี้มักจะมาพร้อมกับกลไกแคชเพื่อเพิ่มประสิทธิภาพสูงสุด
    1. คอลัมน์ร้านค้าสำหรับครอบครัว ถูกสร้างขึ้นเพื่อจัดเก็บและประมวลผลข้อมูลจำนวนมากที่แจกจ่ายผ่านเครื่องหลายเครื่อง ยังมีคีย์อยู่แต่จะชี้ไปที่หลายคอลัมน์ ในกรณีของ BigTable (โมเดล Column Family NoSQL ของ Google) แถวจะถูกระบุโดยคีย์แถวพร้อมข้อมูลที่จัดเรียงและจัดเก็บโดยคีย์นี้ คอลัมน์จัดเรียงตามกลุ่มคอลัมน์
  2. ฐานข้อมูลเอกสาร ได้รับแรงบันดาลใจจาก Lotus Notes และคล้ายกับร้านค้าคีย์-ค่า โมเดลนี้เป็นเอกสารที่มีการกำหนดเวอร์ชันโดยพื้นฐานแล้ว ซึ่งเป็นคอลเล็กชันของคอลเล็กชันคีย์-ค่าอื่นๆ เอกสารกึ่งโครงสร้างถูกจัดเก็บในรูปแบบเช่น JSON
  3. ฐานข้อมูลกราฟ s ถูกสร้างขึ้นด้วยโหนด ความสัมพันธ์ระหว่างบันทึกย่อและคุณสมบัติของโหนด แทนที่จะใช้ตารางของแถวและคอลัมน์และโครงสร้างที่เข้มงวดของ SQL เราจึงใช้แบบจำลองกราฟที่ยืดหยุ่นซึ่งสามารถปรับขนาดได้ในหลายเครื่อง

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

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

  • ไดนาโม: ไดนาโมถูกสร้างขึ้นโดย Amazon.com และเป็นฐานข้อมูล Key-Value NoSQL ที่โดดเด่นที่สุด Amazon ต้องการแพลตฟอร์มแบบกระจายที่ปรับขนาดได้สูงสำหรับธุรกิจอีคอมเมิร์ซของพวกเขา ดังนั้นพวกเขาจึงพัฒนา Dynamo Amazon S3 ใช้ไดนาโมเป็นกลไกการจัดเก็บข้อมูล
  • แคสแซนดรา: 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 การสืบค้นฐานข้อมูลเหล่านี้เป็นข้อมูลเฉพาะรุ่นแทน

แพลตฟอร์ม NoSQL จำนวนมากอนุญาตให้ใช้อินเทอร์เฟซ RESTful กับข้อมูลได้ API แบบสอบถามข้อเสนออื่นๆ มีเครื่องมือสืบค้นข้อมูลสองสามรายการที่พัฒนาขึ้นซึ่งพยายามสืบค้นฐานข้อมูล NoSQL หลายฐานข้อมูล เครื่องมือเหล่านี้มักจะทำงานในหมวดหมู่ NoSQL เดียว ตัวอย่างหนึ่งคือ SPARQL SPARQL เป็นข้อกำหนดการสืบค้นแบบประกาศที่ออกแบบมาสำหรับฐานข้อมูลแบบกราฟ นี่คือตัวอย่างของการสืบค้น SPARQL ที่ดึง URL ของบล็อกเกอร์เฉพาะ (ได้รับความอนุเคราะห์จาก IBM):

PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar" .
?contributor foaf:weblog ?url .
}

อนาคตของ NoSQL

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