ภาพรวมของ NoSQL

click fraud protection

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

ฐานข้อมูล MYSQL

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

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

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

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

การสืบค้น NoSQL

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

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

PREFIX โฟม: 
เลือก ?url
จาก
ที่ไหน {
?contributor foaf: ชื่อ "จอน ฟูบาร์"
?ผู้สนับสนุน foaf: เว็บล็อก ?url
}

อนาคตของ NoSQL

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