Första stabila utgåvan av FerretDB, MongoDB-implementering baserad på PostgreSQL DBMS

Utgivningen av FerretDB 1.0-projektet har publicerats, vilket låter dig ersätta det dokumentorienterade DBMS MongoDB med PostgreSQL utan att göra ändringar i applikationskoden. FerretDB är implementerad som en proxyserver som översätter anrop till MongoDB till SQL-frågor till PostgreSQL, vilket gör att du kan använda PostgreSQL som den faktiska lagringen. Version 1.0 är markerad som den första stabila versionen redo för allmän användning. Koden är skriven i Go och distribueras under Apache 2.0-licensen.

FerretDBs primära målgrupp är användare som inte använder de avancerade funktionerna hos MongoDB i sina applikationer, utan vill använda en helt öppen mjukvarustack. I sitt nuvarande utvecklingsstadium stöder FerretDB en delmängd av MongoDB-funktioner som oftast används i typiska applikationer. Behovet av att implementera FerretDB kan uppstå i samband med övergången av MongoDB till den proprietära SSPL-licensen, som är baserad på AGPLv3-licensen, men som inte är öppen, eftersom den innehåller ett diskriminerande krav att leverera under SSPL-licensen inte bara applikationskoden sig själv, men också källkoderna för alla komponenter som är involverade i tillhandahållandet av molntjänster.

MongoDB upptar en nisch mellan snabba och skalbara system som arbetar på nyckel-/värdedata och relationella DBMS:er som är funktionella och lätta att fråga. MongoDB stöder lagring av dokument i ett JSON-liknande format, har ett ganska flexibelt språk för att generera frågor, kan skapa index för olika lagrade attribut, tillhandahåller effektivt lagring av stora binära objekt, stöder loggning av operationer för att ändra och lägga till data till databasen, kan arbeta i enlighet med paradigmet Map/Reduce, stödjer replikering och bygger feltoleranta konfigurationer.

Bland ändringarna i FerretDB 1.0:

  • Kommandona createIndex och dropIndex har implementerats för att skapa och ta bort ett eller flera index på en samling.
  • Kommandot getMore har implementerats för att visa en ny del av resultatet som erhålls från exekvering av kommandon som returnerar en markör, såsom hitta och aggregera.
  • Lade till stöd för aggregationsoperatorn $sum för att beräkna summan av gruppvärden.
  • Lade till stöd för operatörerna $limit och $skip för att begränsa antalet och hoppa över dokument under aggregering.
  • Lade till stöd för $count-operatorn för att räkna dokument under aggregering.
  • Lade till stöd för operatorn $unwind för att analysera arrayfält i inkommande dokument och generera en lista med ett separat dokument för varje arrayelement.
  • Lade till partiellt stöd för kommandona collStats, dbStats och dataSize för att få statistik om insamlingen och databasen, samt datastorlek.

Källa: opennet.ru

Lägg en kommentar