A FerretDB első stabil kiadása, a PostgreSQL DBMS-en alapuló MongoDB implementáció

Megjelent a FerretDB 1.0 projekt kiadása, amely lehetővé teszi a dokumentum-orientált DBMS MongoDB lecserélését PostgreSQL-re az alkalmazás kódjának módosítása nélkül. A FerretDB proxyszerverként van megvalósítva, amely a MongoDB-hívásokat SQL-lekérdezésekké fordítja PostgreSQL-be, ami lehetővé teszi a PostgreSQL tényleges tárolóként való használatát. Az 1.0-s verzió az első stabil, általános használatra kész kiadás. A kód Go nyelven íródott, és az Apache 2.0 licenc alatt terjeszthető.

A FerretDB fő célközönsége azok a felhasználók, akik nem használják a MongoDB speciális szolgáltatásait alkalmazásaikban, hanem egy teljesen nyitott szoftvercsomagot szeretnének használni. A fejlesztés jelenlegi szakaszában a FerretDB támogatja a MongoDB jellemzőinek egy részét, amelyet leggyakrabban használnak a tipikus alkalmazásokban. A FerretDB bevezetésének szükségessége a MongoDB nem ingyenes SSPL licencre való átállása kapcsán merülhet fel, amely AGPLv3 licencen alapul, de nem nyitott, mivel diszkriminatív követelményt tartalmaz, hogy az SSPL licenc alatt nemcsak a magát az alkalmazáskódot, hanem a felhőszolgáltatások nyújtásában részt vevő összes összetevő forráskódját is.

A MongoDB egy rést foglal el a kulcs/érték adatokon működő gyors és méretezhető rendszerek és a működőképes és könnyen lekérdezhető relációs DBMS-ek között. A MongoDB támogatja a dokumentumok JSON-szerű formátumban való tárolását, meglehetősen rugalmas nyelve van a lekérdezések generálásához, képes indexeket létrehozni a különböző tárolt attribútumokhoz, hatékonyan biztosítja a nagy bináris objektumok tárolását, támogatja a műveletek naplózását az adatok módosításához és hozzáadásához, a Map/Reduce paradigma szerint működik, támogatja a replikációt és a hibatűrő konfigurációk építését.

A FerretDB 1.0 változásai között szerepel:

  • Megvalósított createIndexes és dropIndexes parancsok egy vagy több index létrehozásához és gyűjteménybe való eldobásához.
  • A getMore parancsot úgy valósították meg, hogy megjelenítse a kurzort visszaadó parancsok végrehajtásából származó eredmény új részét, például a keresést és az összesítést.
  • Támogatás hozzáadva a $sum aggregation operátorhoz a csoportértékek összegének kiszámításához.
  • Támogatás hozzáadva a $limit és a $skip operátorokhoz, amelyek korlátozzák a dokumentumok számát és kihagyják az összesítés során.
  • Támogatás hozzáadva a $count operátorhoz a dokumentumok összesítéskor történő számlálásához.
  • Támogatás hozzáadva a $unwind operátorhoz a bejövő dokumentumok tömbmezőinek elemzéséhez, és minden tömbelemhez külön dokumentumot tartalmazó listát hoz létre.
  • Hozzáadott részleges támogatás a collStats, dbStats és dataSize parancsokhoz a gyűjtemény- és adatbázisstatisztikák és az adatméret lekéréséhez.

Forrás: opennet.ru

Hozzászólás