Byl zveřejněn projekt FerretDB 0.7, který umožňuje nahradit dokumentově orientovanou databázi MongoDB PostgreSQL bez nutnosti měnit kód aplikací. FerretDB funguje jako proxy server, který převádí dotazy na MongoDB na SQL dotazy do PostgreSQL, což umožňuje používat PostgreSQL jako skutečné úložiště. Kód je napsán v jazyce Go a je distribuován pod licencí Apache 2.0.
Potřeba migrace může vzniknout v důsledku přechodu MongoDB na neotevřenou licenci SSPL, která je založena na licenci AGPLv3, ale není otevřená, protože obsahuje diskriminační požadavek na dodání nejen kódu samotné aplikace, ale i zdrojových kódů všech komponentů zapojených do poskytování cloudové služby.
Hlavní cílovou skupinou FerretDB jsou uživatelé, kteří ve svých aplikacích nevyužívají pokročilé funkce MongoDB, ale chtějí používat plně otevřený software. V současné fázi vývoje FerretDB zatím podporuje pouze část funkcí MongoDB, které jsou nejčastěji používány v typických aplikacích. Do budoucna plánují dosáhnout plné kompatibility s ovladači pro MongoDB a umožnit použití FerretDB jako transparentní náhrady za MongoDB.
MongoDB okupuje mezery mezi rychlými a škálovatelnými systémy, které manipulují s daty ve formátu klíč/hodnota, a relačními DB, které jsou funkční a snadné na formulaci dotazů. MongoDB podporuje ukládání dokumentů v JSON-podobném formátu, má dostatečně flexibilní jazyk pro formulaci dotazů, může vytvářet indexy pro různé uložené atributy, efektivně zajišťuje ukládání velkých binárních objektů, podporuje logování operací při změnách a přidávání dat do DB, může fungovat podle paradigmatu Map/Reduce, podporuje replikaci a budování odolných konfigurací.
Mezi změnami ve FerretDB 0.7:
- Byla implementována diagnostická příkaz msg_explain, nezbytný pro platformu Tigris.
- Do příkazu listCollections byla přidána podpora filtrů (možnost 'filter').
- Bylo povoleno používání znaku '-' v názvech databází.
- Zvýšil se počet parametrů podporovaných v příkazu find.
- Do balíčku wire s implementací protokolu 'wire' (protokol pro komunikaci s MongoDB) byla přidána možnost ověřování dokumentů. Minimální podporovaná verze protokolu wire byla snížena na 13, což odpovídá MongoDB 5.0.
Zdroj: opennet.ru
