Primeira versión estable de FerretDB, implementación de MongoDB baseada en DBMS PostgreSQL

Publicouse a versión do proxecto FerretDB 1.0, que permite substituír o DBMS MongoDB orientado a documentos por PostgreSQL sen facer cambios no código da aplicación. FerretDB está implementado como un servidor proxy que traduce as chamadas a MongoDB en consultas SQL a PostgreSQL, o que lle permite usar PostgreSQL como almacenamento real. A versión 1.0 está marcada como a primeira versión estable lista para o uso xeral. O código está escrito en Go e distribúese baixo a licenza Apache 2.0.

O público obxectivo principal de FerretDB son os usuarios que non usan as capacidades avanzadas de MongoDB nas súas aplicacións, pero queren utilizar unha pila de software completamente aberta. Na súa fase actual de desenvolvemento, FerretDB admite un subconxunto de capacidades de MongoDB que se usan máis habitualmente nas aplicacións típicas. A necesidade de implementar FerretDB pode xurdir en relación coa transición de MongoDB á licenza SSPL propietaria, que se basea na licenza AGPLv3, pero non está aberta, xa que contén un requisito discriminatorio para entregar baixo a licenza SSPL non só o código da aplicación. en si, senón tamén os códigos fonte de todos os compoñentes implicados na prestación do servizo na nube.

MongoDB ocupa un nicho entre sistemas rápidos e escalables que operan con datos en formato clave/valor e DBMS relacionais que son funcionais e fáciles de formular consultas. MongoDB admite o almacenamento de documentos en formato JSON, ten unha linguaxe bastante flexible para xerar consultas, pode crear índices para varios atributos almacenados, ofrece almacenamento de grandes obxectos binarios de forma eficiente, admite o rexistro de operacións para cambiar e engadir datos á base de datos, pode traballar de acordo co paradigma Map/Reduce, admite a replicación e construción de configuracións tolerantes a fallos.

Entre os cambios en FerretDB 1.0:

  • Implementáronse os comandos createIndexes e dropIndexes para crear e eliminar un ou máis índices nunha colección.
  • Implementouse o comando getMore para mostrar unha nova parte do resultado obtido ao executar comandos que devolven un cursor, como atopar e agregar.
  • Engadiuse soporte para o operador de agregación $sum para calcular a suma dos valores do grupo.
  • Engadiuse compatibilidade para os operadores $limit e $skip para limitar o número e omitir documentos durante a agregación.
  • Engadido soporte para o operador $count para contar documentos durante a agregación.
  • Engadido soporte para o operador $unwind para analizar campos da matriz nos documentos entrantes e xerar unha lista cun documento separado para cada elemento da matriz.
  • Engadido soporte parcial para os comandos collStats, dbStats e dataSize para obter estatísticas sobre a colección e a base de datos, así como o tamaño dos datos.

Fonte: opennet.ru

Engadir un comentario