PostgreSQL дээр суурилсан Microsoft нээлттэй эхийн DocumentDB мэдээллийн сан

Майкрософт нь тусдаа NoSQL DBMS болгон ашиглах боломжтой DocumentDB төслийн нээлттэй эх сурвалжийг зарлалаа. Практикт DocumentDB-г Майкрософт "MongoDB-д зориулсан Azure Cosmos DB" бүтээгдэхүүний үндэс болгон ашигладаг бөгөөд энэ нь баримт бичигт чиглэсэн DBMS MongoDB-тэй нийцтэй интерфейсээр хангадаг. Төслийн код нь C хэл дээр бичигдсэн бөгөөд MIT лицензийн дагуу түгээгддэг. DocumentDB хөдөлгүүрийг PostgreSQL DBMS-ийн нэмэлт болгон хэрэгжүүлсэн.

MongoDB-ийн нэгэн адил DocumentDB нь бүтэцлэгдсэн баримтуудыг хадгалахын тулд JSON-тэй төстэй BSON (Хоёртын JSON) форматыг ашигладаг бөгөөд энэ нь зарим баримт бичиг, массивыг бусад баримт бичиг, массив дотор оруулах боломжтой шаталсан бүтцийг бий болгох боломжийг олгодог. JSON-ээс гол ялгаа нь өгөгдлийг хоёртын дүрслэл болгон цувуулж ашиглах явдал юм. Төсөл нь BSON форматаар өгөгдөл үүсгэх, унших, шинэчлэх, устгах NoSQL үйлдлүүд болон стандарт PostgreSQL-д зориулсан API (DocumentDB нь BSON дэмжлэгтэй PostgreSQL хувилбар гэж үзэж болно) хоёуланг нь өгдөг. DocumentDB нь бүрэн текст хайх чадвар, вектор болон газарзүйн өгөгдлийн төрлүүдийн үйлдлийг ашиглах боломжтой.

Төсөл нь хоёр бүрэлдэхүүн хэсгээс бүрдэнэ.

  • pg_documentdb_core - PostgreSQL-ийн BSON төрлийн хэрэгжүүлэлт, BSON өгөгдөлтэй PostgreSQL дээр ажиллах үйлдлийн өргөтгөл.
  • pg_documentdb - BSON баримт бичигтэй ажиллах, асуулга боловсруулах, индекс удирдах үндсэн үйлдлүүд бүхий Public DocumentDB API.

DocumentDB-ийн анхны хувилбар нь CRUD үйлдлүүд (үүсгэх, унших, шинэчлэх, устгах), бие даасан BSON талбаруудын индексүүд, бүрэн текст хайх индексүүд (RUM нийцтэй), вектор болон газарзүйн асуулга (pg_vector болон postgis нийцтэй), асуулга үүсгэхэд дэмжлэг үзүүлдэг. чадвар, BSON өгөгдлийг нэгтгэх.

PostgreSQL DBMS дээр суурилсан MongoDB DBMS-ийн хэрэгжилтийг боловсруулж буй FerretDB төсөл нь DocumentDB ашиглахад аль хэдийн шилжсэн. FerretDB нь хувийн баримт бичигт суурилсан MongoDB DBMS-ийг PostgreSQL дээр суурилсан бүрэн нээлттэй програм хангамжийн стекээр програмын кодонд өөрчлөлт оруулахгүйгээр солих боломжийг олгодог. MongoDB-г солих шаардлага нь энэхүү DBMS нь AGPLv3 лиценз дээр суурилсан SSPL лиценз рүү шилжсэнтэй холбон тайлбарлаж байгаа боловч энэ нь SSPL лицензийн дагуу хүргэх ялгаварлан гадуурхах шаардлагыг агуулж байгаа тул зөвхөн програмын код, мөн үүлэн үйлчилгээг үзүүлэхэд оролцдог бүх бүрэлдэхүүн хэсгүүдийн эх кодууд.

Эхлээд FerretDB-ийн ажил нь MongoDB руу хийсэн дуудлагыг SQL асуулга руу PostgreSQL рүү хөрвүүлэхээр хязгаарлагдаж байсан боловч нэр дэвшигчийн шатанд байгаа FerretDB 2.0 хувилбараас эхлэн BSON форматын дэмжлэгийг хэрэгжүүлэхийн тулд PosgreSQL DocumentDB өргөтгөлийг ашигласан. DocumentDB руу шилжсэнээр зарим ачааллын хувьд FerretDB-ийн гүйцэтгэл 20 гаруй дахин сайжирсан. FerretDB 2.0-ийн бусад шинэчлэлтүүд нь MongoDB-тэй нийцтэй байдал, хуулбарлах чадвар, вектор хайлтын дэмжлэг зэргийг багтаасан болно. FerretDB код нь Go дээр бичигдсэн бөгөөд Apache 2.0 лицензийн дагуу түгээгддэг.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх