มี DBMS MongoDB 5.0 เชิงเอกสาร

มีการนำเสนอ DBMS MongoDB 5.0 เชิงเอกสาร ซึ่งครอบคลุมเฉพาะระหว่างระบบที่รวดเร็วและปรับขนาดได้ซึ่งดำเนินการข้อมูลในรูปแบบคีย์/ค่า และ DBMS เชิงสัมพันธ์ที่ทำงานและง่ายต่อการสร้างแบบสอบถาม รหัส MongoDB เขียนด้วยภาษา C++ และเผยแพร่ภายใต้ใบอนุญาต SSPL ซึ่งอิงตามใบอนุญาต AGPLv3 แต่ไม่ได้เปิดอยู่ เนื่องจากมีข้อกำหนดที่เลือกปฏิบัติในการส่งมอบภายใต้ใบอนุญาต SSPL ไม่เพียงแต่รหัสแอปพลิเคชันเท่านั้น แต่ยังรวมถึงแหล่งที่มาด้วย รหัสของส่วนประกอบทั้งหมดที่เกี่ยวข้องกับการให้บริการคลาวด์

MongoDB รองรับการจัดเก็บเอกสารในรูปแบบ JSON, มีภาษาที่ค่อนข้างยืดหยุ่นสำหรับการสร้างแบบสอบถาม, สามารถสร้างดัชนีสำหรับแอตทริบิวต์ที่เก็บไว้ต่างๆ, ให้การจัดเก็บวัตถุไบนารีขนาดใหญ่อย่างมีประสิทธิภาพ, รองรับการบันทึกการดำเนินการสำหรับการเปลี่ยนแปลงและเพิ่มข้อมูลลงในฐานข้อมูล, ทำงานตามกระบวนทัศน์ Map/Reduce รองรับการจำลองและสร้างการกำหนดค่าที่ทนทานต่อข้อผิดพลาด

MongoDB มีเครื่องมือในตัวสำหรับการจัดหาการแบ่งส่วน (กระจายชุดข้อมูลข้ามเซิร์ฟเวอร์ตามคีย์เฉพาะ) ร่วมกับการจำลองแบบ ช่วยให้คุณสร้างคลัสเตอร์พื้นที่เก็บข้อมูลที่ปรับขนาดได้ในแนวนอนซึ่งไม่มีจุดล้มเหลวเพียงจุดเดียว (ความล้มเหลว ของโหนดใด ๆ จะไม่ส่งผลกระทบต่อการทำงานของฐานข้อมูล) การกู้คืนอัตโนมัติหลังจากความล้มเหลว และการถ่ายโอนโหลดจากโหนดที่ล้มเหลว การขยายคลัสเตอร์หรือการแปลงเซิร์ฟเวอร์หนึ่งเป็นคลัสเตอร์สามารถทำได้โดยไม่ต้องหยุดฐานข้อมูลเพียงเพิ่มเครื่องใหม่

คุณสมบัติของรุ่นใหม่:

  • เพิ่มคอลเลกชันสำหรับข้อมูลในรูปแบบของอนุกรมเวลา (คอลเลกชันอนุกรมเวลา) ปรับให้เหมาะสมสำหรับการจัดเก็บชิ้นส่วนของค่าพารามิเตอร์ที่บันทึกไว้ในช่วงเวลาหนึ่ง (เวลาและชุดของค่าที่สอดคล้องกับเวลานี้) ความจำเป็นในการจัดเก็บข้อมูลดังกล่าวเกิดขึ้นในระบบการตรวจสอบ แพลตฟอร์มทางการเงิน และระบบสำหรับสถานะเซ็นเซอร์การสำรวจ การทำงานกับข้อมูลอนุกรมเวลานั้นดำเนินการเช่นเดียวกับการรวบรวมเอกสารทั่วไป แต่ดัชนีและวิธีการจัดเก็บสำหรับข้อมูลเหล่านี้ได้รับการปรับให้เหมาะสมโดยคำนึงถึงการอ้างอิงเวลา ซึ่งสามารถลดการใช้พื้นที่ดิสก์ได้อย่างมาก ลดความล่าช้าในการดำเนินการสืบค้น และเปิดใช้งานข้อมูลแบบเรียลไทม์ การวิเคราะห์.

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

  • เพิ่มการรองรับตัวดำเนินการหน้าต่าง (ฟังก์ชันการวิเคราะห์) ที่อนุญาตให้คุณดำเนินการกับชุดเอกสารเฉพาะในคอลเลกชัน ต่างจากฟังก์ชันรวม ฟังก์ชันหน้าต่างจะไม่ยุบชุดที่จัดกลุ่ม แต่จะรวมตามเนื้อหาของ "หน้าต่าง" ที่มีเอกสารตั้งแต่หนึ่งรายการขึ้นไปจากชุดผลลัพธ์ ในการจัดการชุดย่อยของเอกสาร มีการเสนอระยะ $setWindowFields ใหม่ ซึ่งคุณสามารถกำหนดความแตกต่างระหว่างเอกสารสองฉบับในคอลเลกชัน คำนวณอันดับยอดขาย และวิเคราะห์ข้อมูลในอนุกรมเวลาที่ซับซ้อนได้
  • เพิ่มการรองรับสำหรับการกำหนดเวอร์ชัน API ซึ่งช่วยให้คุณสามารถผูกแอปพลิเคชันกับสถานะ API ที่เฉพาะเจาะจงและลดความเสี่ยงที่เกี่ยวข้องกับการละเมิดความเข้ากันได้แบบย้อนหลังที่อาจเกิดขึ้นเมื่อย้ายไปยัง DBMS รุ่นใหม่ การกำหนดเวอร์ชัน API จะแยกวงจรชีวิตของแอปพลิเคชันออกจากวงจรการใช้งาน DBMS และช่วยให้นักพัฒนาสามารถเปลี่ยนแปลงแอปพลิเคชันเมื่อจำเป็นต้องใช้คุณสมบัติใหม่ ไม่ใช่เมื่อย้ายไปยัง DBMS เวอร์ชันใหม่
  • เพิ่มการรองรับกลไก Live Resharding ซึ่งช่วยให้คุณเปลี่ยนคีย์ชาร์ดที่ใช้สำหรับการแบ่งส่วนได้ทันทีโดยไม่ต้องหยุด DBMS
  • ความเป็นไปได้ในการเข้ารหัสฟิลด์ในฝั่งไคลเอ็นต์ได้รับการขยาย (การเข้ารหัสระดับฟิลด์ฝั่งไคลเอ็นต์) ขณะนี้สามารถกำหนดค่าตัวกรองการตรวจสอบใหม่และหมุนเวียนใบรับรอง x509 ได้โดยไม่ต้องหยุด DBMS เพิ่มการรองรับการกำหนดค่าชุดการเข้ารหัสสำหรับ TLS 1.3
  • มีการเสนอเชลล์บรรทัดคำสั่งใหม่ MongoDB Shell (mongosh) ซึ่งกำลังได้รับการพัฒนาเป็นโปรเจ็กต์แยกต่างหาก เขียนด้วย JavaScript โดยใช้แพลตฟอร์ม Node.js และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 MongoDB Shell ทำให้สามารถเชื่อมต่อกับ DBMS เปลี่ยนการตั้งค่าและส่งคำถามได้ รองรับการเติมข้อความอัตโนมัติอัจฉริยะสำหรับการป้อนวิธีการ คำสั่งและนิพจน์ MQL การเน้นไวยากรณ์ ความช่วยเหลือตามบริบท การแยกวิเคราะห์ข้อความแสดงข้อผิดพลาด และความสามารถในการขยายฟังก์ชันการทำงานผ่านส่วนเสริม Wrapper CLI "mongo" เก่าเลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป
    มี DBMS MongoDB 5.0 เชิงเอกสาร
  • มีการเพิ่มตัวดำเนินการใหม่: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate และ $rand
  • ตรวจสอบให้แน่ใจว่ามีการใช้ดัชนีเมื่อใช้ตัวดำเนินการ $eq, $lt, $lte, $gt และ $gte ภายในนิพจน์ $expr
  • คำสั่งการรวม ค้นหา findAndModify อัปเดต ลบ และเมธอด db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() และ db.collection.remove() ตอนนี้สนับสนุนคำสั่ง “let ตัวเลือก ” เพื่อกำหนดรายการตัวแปรที่ทำให้คำสั่งอ่านง่ายขึ้นโดยแยกตัวแปรออกจากเนื้อหาคำขอ
  • การดำเนินการค้นหา นับ แยก การรวม mapReduce listCollections และ listIndexes จะไม่บล็อกอีกต่อไป หากการดำเนินการที่ใช้การล็อกเอกสิทธิ์เฉพาะบุคคลในคอลเลกชันเอกสารกำลังทำงานแบบขนาน
  • ในฐานะที่เป็นส่วนหนึ่งของความคิดริเริ่มที่จะลบคำที่ไม่ถูกต้องทางการเมือง คำสั่ง isMaster และเมธอด db.isMaster() จึงถูกเปลี่ยนชื่อเป็น hello และ db.hello()
  • รูปแบบการกำหนดหมายเลขการเผยแพร่มีการเปลี่ยนแปลง และมีการเปลี่ยนแปลงกำหนดการเผยแพร่ที่คาดการณ์ได้ ปีละครั้งจะมีการเผยแพร่ที่สำคัญ (5.0, 6.0, 7.0) ทุก ๆ สามเดือนการเปิดตัวกลางเดือนพร้อมฟีเจอร์ใหม่ (5.1, 5.2, 5.3) และการอัปเดตแก้ไขตามความจำเป็นพร้อมการแก้ไขข้อบกพร่องและช่องโหว่ (5.1.1, 5.1.2 .5.1.3 , 5.1) การเปิดตัวระหว่างกาลจะสร้างฟังก์ชันการทำงานสำหรับการเปิดตัวครั้งสำคัญถัดไป เช่น MongoDB 5.2, 5.3 และ 6.0 จะมอบคุณสมบัติใหม่สำหรับการเปิดตัว MongoDB XNUMX

ที่มา: opennet.ru

เพิ่มความคิดเห็น