Microsoft otvoril kód databázového systému DocumentDB, založeného na PostgreSQL

Spoločnosť Microsoft oznámila otvorenie zdrojového kódu projektu DocumentDB, ktorý môže byť použitý ako samostatná NoSQL databáza, ako platforma na vytváranie vlastných systémov ukladania alebo ako doplnok na ukladanie údajov vo formáte BSON v databáze PostgreSQL. V praxi sa DocumentDB používa u spoločnosti Microsoft ako základ produktu „Azure Cosmos DB for MongoDB“, ktorý poskytuje rozhranie kompatibilné s dokumentovo-orientovanou databázou MongoDB. Kód projektu je napísaný v jazyku C a je šírený pod licenciou MIT. Engine DocumentDB je realizovaný vo forme nadstavby nad databázou PostgreSQL.

Rovnako ako v MongoDB, na ukladanie štruktúrovaných dokumentov sa v DocumentDB využíva JSON-podobný formát BSON (Bin­ary JSON), ktorý umožňuje vytvárať hierarchické štruktúry, v ktorých sa jedny dokumenty a polia môžu vkladať do iných dokumentov a polí. Kľúčovým rozdielom od JSON je využitie serializácie údajov do binárneho zobrazenia. Projekt poskytuje ako NoSQL operácie na vytváranie, čítanie, aktualizáciu a odstraňovanie údajov vo formáte BSON, tak aj API pre štandardný PostgreSQL (DocumentDB môže byť považovaný za variant PostgreSQL s podporou BSON). V DocumentDB môžu byť využité možnosti fulltextového vyhľadávania, operácie nad vektorovými a priestorovými typmi údajov.

Projekt pozostáva z dvoch komponentov:

  • pg_documentdb_core — rozšírenie pre PostgreSQL s implementáciou typu BSON a operáciami na prácu s údajmi BSON v PostgreSQL.
  • pg_documentdb — verejné API DocumentDB s základnými operáciami na prácu s dokumentmi vo formáte BSON, spracovanie požiadaviek a správa indexov.

Prvé vydanie DocumentDB poskytuje podporu operácií CRUD (vytváranie, čítanie, aktualizácia, odstraňovanie), indexy pre jednotlivé polia BSON, indexy pre fulltextové vyhľadávanie (kompatibilné s RUM), vektorové a priestorové dotazy (kompatibilné s pg_vector a postgis), možnosti na formovanie dotazov a agregáciu údajov BSON.

Na používanie DocumentDB už prešiel projekt FerretDB, ktorý vyvíja implementáciu DBMS MongoDB založenú na DBMS PostgreSQL. FerretDB umožňuje bez zmien v kóde aplikácií nahradiť proprietárnu dokumentovo orientovanú DBMS MongoDB plne otvoreným softvérovým stackom, založeným na PostgreSQL. Potreba nahradiť MongoDB je vysvetlená prechodom tejto DBMS na licenciu SSPL, ktorá je založená na licencii AGPLv3, ale nie je otvorená, pretože obsahuje diskriminačnú požiadavku na dodávku pod licenciou SSPL nielen kódu samotnej aplikácie, ale aj zdrojových textov všetkých komponentov zapojených do poskytovania cloudovej služby.

Pôvodne práca FerretDB spočívala v preklade požiadaviek na MongoDB do SQL dotazov na PostgreSQL, ale od verzie FerretDB 2.0, ktorá je vo fáze kandidáta na vydanie, bolo na realizáciu podpory formátu BSON zapojené PostgreSQL rozšírenie DocumentDB. Prechod na používanie DocumentDB umožnil viac ako 20-násobné zvýšenie výkonu FerretDB pre niektoré typy záťaže. Medzi ďalšími novinkami FerretDB 2.0 sa zlepšila kompatibilita s MongoDB, možnosť replikácie a podpora vektorového vyhľadávania. Kód FerretDB je naprogramovaný v jazyku Go a je distribuovaný pod licenciou Apache 2.0.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster