สถาปัตยกรรม MongoDB: โครงสร้าง คำศัพท์ ข้อกำหนดและประโยชน์
เผยแพร่แล้ว: 2020-12-28สารบัญ
ภาพรวม
ไม่ต้องสงสัยเลยว่าอินเทอร์เน็ตเป็นกระดูกสันหลังของเศรษฐกิจโลกสมัยใหม่ ทุกวันนี้ ผู้คนเกือบ 4.7 พันล้านคนทั่วโลกใช้แพลตฟอร์มเสมือนจริงทุกวัน โดยใช้แอพพลิเคชั่นที่ขับเคลื่อนด้วยอินเทอร์เน็ตสำหรับข่าวสาร เลือกซื้อเสื้อผ้า สั่งอาหาร ฟังเพลง เดินทางไปและกลับจากสำนักงาน และอื่นๆ
ด้วยจำนวนผู้ใช้ที่บริจาคดิจิทัลจำนวนมากทุกวัน จึงไม่น่าแปลกใจที่ข้อมูลที่ไม่มีโครงสร้างจำนวนมหาศาลจะถูกสร้างขึ้นในไซเบอร์สเปซทุกวัน เรียนรู้เพิ่มเติมเกี่ยวกับขอบเขตในอนาคตของ MongoDB
สิ่งนี้ทำให้เกิดความจำเป็นเร่งด่วนสำหรับกระบวนทัศน์ฐานข้อมูลใหม่ที่สามารถจัดเก็บ ให้บริการ และสนับสนุนแอปพลิเคชัน 'ข้อมูลขนาดใหญ่' (ตามที่ทราบกัน) ตลอด 24 ชั่วโมงทุกวันไม่เว้นวันหยุด
ป้อน NoSQL
การเพิ่มขึ้นของฐานข้อมูล NoSQL
NoSQL หรือที่รู้จักกันอย่างหลวม ๆ ว่า “Not Only SQL” เป็นอีกทางเลือกหนึ่งของฐานข้อมูล SQL ที่ถูกจำกัดโดยสคีมาตารางคงที่ เนื่องจากมีความยืดหยุ่นสูง NoSQL จึงสามารถเอาชนะข้อเสียเชิงโครงสร้างของฐานข้อมูล SQL ได้ และพร้อมสำหรับการปรับขนาดในแนวนอน ฐานข้อมูล NoSQL ได้รับการออกแบบมาเพื่อเพิ่มประสิทธิภาพการทำงานของนักพัฒนา โดยมีรูปแบบข้อมูลที่เรียบง่ายและสวยงามสำหรับการประมวลผลข้อมูลที่ซับซ้อนและการดำเนินการจัดการ
โดยทั่วไปแล้ว โมเดลการจัดเก็บข้อมูลเหล่านี้มี 4 ประเภท ได้แก่ Document, Key-Value, Wide-Column และ Graph เราจะเน้นที่ฐานข้อมูลเอกสารและ สถาปัตยกรรม MongoDB ในบล็อกนี้ (ฐานข้อมูล NoSQL ชั้นนำ)

โครงสร้าง MongoDB
ที่มา: เอกสาร MongoDB
สถาปัตยกรรม MongoDB ใช้โมเดลข้อมูลที่ยืดหยุ่น ต่างจาก RDBMS ซึ่งกำหนดให้มีการประกาศสคีมาก่อนที่จะแทรกข้อมูล MongoDB จะไม่บังคับใช้โครงสร้างเอกสารแบบตายตัว
คำศัพท์
ทุ่งนา
คู่คีย์-ค่าในเอกสาร เป็นคู่ของคอลัมน์ในฐานข้อมูลเชิงสัมพันธ์
เอกสาร
ซึ่งเทียบเท่ากับบันทึกใน RDBMS
ของสะสม
กลุ่มของเอกสารเรียกว่าคอลเลกชัน นี่คล้ายกับตาราง RDBMS
ความแตกต่างระหว่างสถาปัตยกรรม RDBMS และ MongoDB
เข้าร่วม
ใน RDBMS สามารถแจกจ่ายข้อมูลระหว่างหลายตารางและรวมเข้าด้วยกันเพื่อเข้าถึงได้ในมุมมองเดียว การดำเนินการ JOIN ดังกล่าวไม่สามารถทำได้ใน MongoDB ข้อมูลทั้งหมดจะถูกเก็บไว้ในคอลเลกชันเดียว แต่สามารถแยกออกได้ผ่านการซ้อนหรือเอกสารที่ฝังตัว
การทำให้เป็นมาตรฐาน
RDBMS รับประกันการปรับข้อมูลให้เป็นมาตรฐานเพื่อหลีกเลี่ยงการซ้ำซ้อนและบันทึกที่ถูกละเลย ความยืดหยุ่นของ MongoDB ช่วยลดความจำเป็นในการทำให้เป็นมาตรฐาน
โครงสร้าง
RDBS ส่วนใหญ่จะใช้ในภาคการธนาคาร ซึ่งโครงสร้างฐานข้อมูลที่แน่นอนนั้นเรียกว่า Priori MongoDB รองรับข้อมูลที่ไม่มีโครงสร้างจำนวนมากและสามารถขยายได้บนคลาวด์ มือถือ เว็บ และแอปพลิเคชัน Big Data
ความต้องการและประโยชน์ของสถาปัตยกรรม MongoDB
สถาปัตยกรรม MongoDB สามารถจัดการกับการเปลี่ยนแปลงโครงสร้างได้ทันที ซึ่งเป็นความจำเป็นของชั่วโมง เหมาะอย่างยิ่งสำหรับสถานการณ์เมื่อคุณไม่มีการเปิดเผยโครงสร้างฐานข้อมูลของคุณล่วงหน้า

ประโยชน์หลักบางประการดังต่อไปนี้
อิงเอกสาร
สามารถรองรับการเปลี่ยนแปลงการไหลของข้อมูลแบบไดนามิก ปรับให้เข้ากับความต้องการทางธุรกิจที่เปลี่ยนแปลงแบบเรียลไทม์
การสืบค้นข้อมูลเฉพาะกิจ – ภาษาการสืบค้นที่มีประสิทธิภาพซึ่งสามารถส่งคืนฟิลด์ที่ระบุได้ นอกจากนี้ยังช่วยให้สามารถค้นหาได้อย่างละเอียด (ฟิลด์-wise, range-wise, นิพจน์ทั่วไป และอื่นๆ)
การจัดทำดัชนี
คุณสามารถจัดทำดัชนีฟิลด์ใดก็ได้ในเอกสารเพื่อเพิ่มความเร็วในกระบวนการดึงข้อมูล
ให้เราเจาะลึกเข้าไปใน สถาปัตยกรรม MongoDB
แต่ก่อนที่เราจะทำอย่างนั้น เราต้องเข้าใจทฤษฎีบท CAP เสียก่อน
ทฤษฎีบท CAP
CAP แสดงถึงความสอดคล้อง ความพร้อมใช้งาน และความคลาดเคลื่อนของพาร์ติชัน
ให้เราดูว่าคำแต่ละคำมีความหมายอย่างไรในบริบทนี้
ความสม่ำเสมอ
หากคุณเขียนข้อมูลลงในฐานข้อมูลแบบกระจาย คุณควรจะสามารถเข้าถึงข้อมูลเดียวกันจากโหนดใดๆ ในระบบได้ตลอดเวลา เกี่ยวกับการรักษาความสมบูรณ์ของข้อมูลที่เป็นลายลักษณ์อักษร
มีจำหน่าย
นี่เป็นเรื่องเกี่ยวกับการลดเวลาหยุดทำงานของระบบให้น้อยที่สุด การดำเนินการอ่าน/เขียนควรเกิดขึ้นกับเครื่องใดๆ ในคลัสเตอร์ โดยไม่เกิดข้อผิดพลาด
ความคลาดเคลื่อนของพาร์ติชันหรือความคลาดเคลื่อนของข้อผิดพลาด
บ่งชี้ความสามารถของระบบเพื่อให้ทำงานได้อย่างราบรื่นแม้ในกรณีของพาร์ติชันเครือข่าย กล่าวคือ ส่วนต่าง ๆ ของคลัสเตอร์ควรจะสามารถพูดคุยกันและซิงโครไนซ์ได้อย่างมีประสิทธิภาพ
ทฤษฎีบท CAP ระบุว่าระบบแบบกระจายจะต้องเป็น Partition Tolerant พาร์ติชันเครือข่ายใด ๆ ไม่สามารถทำให้ทั้งระบบหยุดทำงาน
กล่าวอีกนัยหนึ่ง คุณสามารถรับประกันได้เพียงหนึ่งพารามิเตอร์จาก 'ความสอดคล้อง' และ 'ความพร้อมใช้งาน' ในระบบแบบกระจาย อีกพารามิเตอร์หนึ่งคือ ความคลาดเคลื่อนของพาร์ติชัน
จะได้รูปสามเหลี่ยมดังนี้
ที่มา: Data Science Pedia
MongoDB จะเลือก c onsistency ทุกครั้งที่มีพาร์ติชั่นในระบบ (CP) มันบล็อกการดำเนินการเขียนทั้งหมดจนกว่าจะสามารถรับรองการดำเนินการที่ถูกต้องของการเขียนเหล่านั้น
สถาปัตยกรรม MongoDB
MongoDB ใช้สถาปัตยกรรม single-master ซึ่งหมายความว่ามีเครื่องหลักที่รับผิดชอบการดำเนินการเขียนฝั่งไคลเอ็นต์ทั้งหมด อินสแตนซ์อื่นๆ ทั้งหมดที่คุณเพิ่มลงในคลัสเตอร์ในภายหลังจะประกอบเป็นโหนดรอง ซึ่งโดยทั่วไปจะจัดการการดำเนินการอ่านทั้งหมด
สิ่งเหล่านี้เป็นสำเนาสำรองของเซิร์ฟเวอร์หลักโดยทั่วไปว่าเป็นระบบป้องกันความผิดพลาดจากการหยุดทำงานหลัก
เซิร์ฟเวอร์ทั้งหมดเหล่านี้จัดกลุ่มในชุดแบบจำลอง คุณสามารถมีชุดแบบจำลองได้หลายชุด โดยแต่ละชุดจะมีเซิร์ฟเวอร์หลักและเซิร์ฟเวอร์รองเป็นของตัวเอง
ที่มา: เอกสาร MongoDB
ในกรณีที่โหนดหลักหยุดทำงาน ระบบจะเลือกโหนดหลักใหม่จากโหนดรองทั้งหมด แต่สิ่งนี้เกิดขึ้นโดยพลการ ขึ้นอยู่กับว่าได้รับการตอบสนอง ping ที่เร็วที่สุดจากทุกระบบจากที่ใด คุณต้องมีเซิร์ฟเวอร์เป็นจำนวนคี่ในคลัสเตอร์ของคุณ (ขั้นต่ำ 3) เพื่อให้สามารถเลือกเซิร์ฟเวอร์หลักที่มีเสียงข้างมากได้
หากคุณไม่ต้องการใช้จ่ายเงินบนเซิร์ฟเวอร์สามเครื่อง คุณสามารถแต่งตั้งโหนด 'ผู้ตัดสิน' ซึ่งมีหน้าที่เพียงอย่างเดียวคือลงคะแนนในการเลือกเซิร์ฟเวอร์หลัก
ชาร์ดิง
Sharding ใน MongoDB ช่วยให้คุณกระจาย Big Data ของคุณไปยังฐานข้อมูลต่างๆ

ที่มา: เอกสาร MongoDB
คุณมีแอปพลิเคชันที่มีผู้ใช้หลายล้านคน การแบ่งส่วนข้อมูลช่วยให้คุณสามารถแบ่งพาร์ติชันผู้ใช้เหล่านี้ (ตามดัชนีที่ไม่ซ้ำกัน เช่น ID ผู้ใช้) เป็นชุดแบบจำลองต่างๆ การใช้กระบวนการที่เรียกว่า mongoS แอปพลิเคชันเซิร์ฟเวอร์จะพูดคุยกับ Config Servers (อย่างแม่นยำ 3) เพื่อทำความเข้าใจว่า 'Shard' ใดมีข้อมูลที่ต้องการ mongoS รันกระบวนการ Load Balancer ในพื้นหลังเพื่อกระจายโหลดโดยอัตโนมัติ (ในกรณีนี้คือจำนวนผู้ใช้) เท่ากันระหว่างชาร์ดทั้งหมด
บทสรุป
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ MongoDB และการทำงานของฐานข้อมูล โปรดดูแนวคิดโครงการ MongoDB คุณสามารถสำรวจ PG Diploma in Data Science ได้จาก upGrad หลักสูตร 12 เดือนที่ออกแบบมาสำหรับมืออาชีพด้านการทำงาน คุณจะได้รับการให้คำปรึกษาด้านอาชีพและโอกาสในการทำงานอย่างครอบคลุม พร้อมด้วยสถานะศิษย์เก่า IIIT Bangalore อันทรงเกียรติ
เราหวังว่าบทความนี้จะช่วยให้คุณเข้าใจว่า MongoDB Architecture ทำงานอย่างไรและระบบทำงานอย่างไร หากต้องการทราบข้อมูลเพิ่มเติม โปรดดูบล็อกอื่นๆ ของเรา
เรียนรู้หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
