Die Veröffentlichung des Projekts FerretDB 0.3, das einen Austausch der dokumentenorientierten DBMS MongoDB gegen PostgreSQL ohne Ănderungen am Anwendungscode ermöglicht, wurde veröffentlicht. FerretDB wird als Proxy-Server implementiert, der Aufrufe an MongoDB in SQL-Abfragen an PostgreSQL ĂŒbersetzt, was die Nutzung von PostgreSQL als tatsĂ€chlichen Speicherort ermöglicht. Der Code ist in der Programmiersprache Go geschrieben und steht unter der Lizenz Apache 2.0.
Ein Migrationsbedarf kann aufgrund des Wechsels von MongoDB zu der nicht-freien SSPL-Lizenz entstehen, die auf der AGPLv3-Lizenz basiert, jedoch nicht offen ist, da sie diskriminierende Anforderungen an die Bereitstellung der AGPLv3-Lizenz nicht nur fĂŒr den Anwendungscode, sondern auch fĂŒr die Quelltexte aller an der Bereitstellung des Cloud-Dienstes beteiligten Komponenten enthĂ€lt.
Die Hauptzielgruppe von FerretDB sind Benutzer, die in ihren Anwendungen nicht die erweiterten Funktionen von MongoDB nutzen, aber einen vollstĂ€ndig offenen Softwarestack verwenden möchten. In der aktuellen Entwicklungsstufe unterstĂŒtzt FerretDB bisher nur einige der Funktionen von MongoDB, die in typischen Anwendungen am hĂ€ufigsten verwendet werden. ZukĂŒnftig wird angestrebt, vollstĂ€ndige KompatibilitĂ€t mit den Treibern fĂŒr MongoDB zu erreichen und FerretDB als transparente Alternative zu MongoDB anzubieten.
MongoDB nimmt eine Nische zwischen schnellen und skalierbaren Systemen ein, die Daten im SchlĂŒssel/Wert-Format verarbeiten, und relationalen DBMS, die funktional und benutzerfreundlich bei der Abfrageerstellung sind. MongoDB unterstĂŒtzt die Speicherung von Dokumenten im JSON-Ă€hnlichen Format, verfĂŒgt ĂŒber eine ausreichend flexible Sprache zur Abfrageerstellung, kann Indizes fĂŒr verschiedene gespeicherte Attribute erstellen, gewĂ€hrleistet effizient die Speicherung groĂer binĂ€rer Objekte, unterstĂŒtzt das Protokollieren von Operationen zur Ănderung und ErgĂ€nzung von Daten in der Datenbank, kann nach dem Map/Reduce-Paradigma arbeiten, unterstĂŒtzt Replikation und den Aufbau von ausfallsicheren Konfigurationen.
In der Veröffentlichung von FerretDB 0.3 wurde der Befehl findAndModify implementiert, der ein Dokument Ă€ndert, aber dessen ursprĂŒngliche Version zurĂŒckgibt. Es wurden Aktualisierungsoperatoren fĂŒr Felder - $inc und $set - implementiert. Die UnterstĂŒtzung fĂŒr die Sortierung von skalaren Datentypen wurde hinzugefĂŒgt.
Quelle: opennet.ru
