FerretDB เวอร์ชันเสถียรรุ่นแรก การใช้งาน MongoDB บน ​​PostgreSQL DBMS

มีการเผยแพร่โครงการ FerretDB 1.0 แล้ว ซึ่งช่วยให้คุณสามารถแทนที่ DBMS MongoDB เชิงเอกสารด้วย PostgreSQL โดยไม่ต้องทำการเปลี่ยนแปลงรหัสแอปพลิเคชัน FerretDB ถูกนำมาใช้เป็นพร็อกซีเซิร์ฟเวอร์ที่แปลการเรียก MongoDB เป็นการสืบค้น SQL เป็น PostgreSQL ซึ่งช่วยให้คุณสามารถใช้ PostgreSQL เป็นที่จัดเก็บข้อมูลจริงได้ เวอร์ชัน 1.0 ถูกทำเครื่องหมายว่าเป็นเวอร์ชันเสถียรแรกที่พร้อมสำหรับการใช้งานทั่วไป รหัสนี้เขียนในภาษา Go และเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0

กลุ่มเป้าหมายหลักของ FerretDB คือผู้ใช้ที่ไม่ได้ใช้คุณสมบัติขั้นสูงของ MongoDB ในแอปพลิเคชันของตน แต่ต้องการใช้สแต็กซอฟต์แวร์แบบเปิดโดยสมบูรณ์ ในขั้นตอนการพัฒนาปัจจุบัน FerretDB รองรับชุดย่อยของคุณสมบัติ MongoDB ที่ใช้บ่อยที่สุดในแอปพลิเคชันทั่วไป ความจำเป็นในการใช้ FerretDB อาจเกิดขึ้นจากการเปลี่ยน MongoDB ไปเป็นใบอนุญาต SSPL ที่ไม่ฟรี ซึ่งขึ้นอยู่กับใบอนุญาต AGPLv3 แต่ไม่ได้เปิดอยู่ เนื่องจากมีข้อกำหนดที่เลือกปฏิบัติในการจัดหาภายใต้ใบอนุญาต SSPL ไม่เพียงแต่ รหัสแอปพลิเคชันเอง แต่ยังรวมไปถึงซอร์สโค้ดของส่วนประกอบทั้งหมดที่เกี่ยวข้องกับการให้บริการคลาวด์

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

ท่ามกลางการเปลี่ยนแปลงใน FerretDB 1.0:

  • ใช้คำสั่ง createIndexes และ dropIndexes สำหรับการสร้างและวางดัชนีตั้งแต่หนึ่งดัชนีขึ้นไปในคอลเลกชัน
  • คำสั่ง getMore ได้รับการปรับใช้เพื่อแสดงส่วนใหม่ของผลลัพธ์ที่ได้รับจากการดำเนินการคำสั่งที่ส่งคืนเคอร์เซอร์ เช่น ค้นหาและการรวม
  • เพิ่มการสนับสนุนสำหรับตัวดำเนินการรวม $sum เพื่อคำนวณผลรวมของค่ากลุ่ม
  • เพิ่มการสนับสนุนสำหรับตัวดำเนินการ $limit และ $skip เพื่อจำกัดจำนวนและข้ามเอกสารเมื่อรวมกลุ่ม
  • เพิ่มการสนับสนุนสำหรับตัวดำเนินการ $count สำหรับการนับเอกสารเมื่อรวบรวม
  • เพิ่มการสนับสนุนสำหรับตัวดำเนินการ $unwind เพื่อแยกวิเคราะห์ฟิลด์อาร์เรย์ในเอกสารขาเข้าและสร้างรายการด้วยเอกสารแยกต่างหากสำหรับแต่ละองค์ประกอบอาร์เรย์
  • เพิ่มการรองรับบางส่วนสำหรับคำสั่ง collStats, dbStats และ dataSize เพื่อรับสถิติการรวบรวมและฐานข้อมูลและขนาดข้อมูล

ที่มา: opennet.ru

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