DBMS orientado a documentos MongoDB 5.0 disponible

Se presenta el lanzamiento del DBMS orientado a documentos MongoDB 5.0, que ocupa un nicho entre sistemas rápidos y escalables que operan datos en formato clave/valor y DBMS relacionales que son funcionales y fáciles de realizar consultas. El código MongoDB está escrito en C++ y se distribuye bajo la licencia SSPL, que se basa en la licencia AGPLv3, pero no es abierto, ya que contiene un requisito discriminatorio de entregar bajo la licencia SSPL no solo el código de la aplicación en sí, sino también el código fuente. Código de todos los componentes involucrados en la prestación del servicio en la nube.

MongoDB admite el almacenamiento de documentos en un formato similar a JSON, tiene un lenguaje bastante flexible para generar consultas, puede crear índices para varios atributos almacenados, proporciona almacenamiento eficiente de objetos binarios grandes, admite el registro de operaciones para cambiar y agregar datos a la base de datos, puede funciona de acuerdo con el paradigma Map/Reduce, admite la replicación y la construcción de configuraciones tolerantes a fallas.

MongoDB tiene herramientas integradas para proporcionar fragmentación (distribuir un conjunto de datos entre servidores según una clave específica), en combinación con replicación, lo que le permite crear un clúster de almacenamiento escalable horizontalmente en el que no hay un único punto de falla (el punto de falla). de cualquier nodo no afecta el funcionamiento de la base de datos), recuperación automática después de una falla y transferencia de carga desde un nodo fallado. La expansión de un clúster o la conversión de un servidor en un clúster se realiza sin detener la base de datos, simplemente agregando nuevas máquinas.

Características de la nueva versión:

  • Se agregaron colecciones de datos en forma de series de tiempo (colecciones de series de tiempo), optimizadas para almacenar porciones de valores de parámetros registrados en ciertos intervalos (tiempo y un conjunto de valores correspondientes a este tiempo). La necesidad de almacenar dichos datos surge en los sistemas de monitoreo, plataformas financieras y sistemas para sondear los estados de los sensores. Trabajar con datos de series de tiempo se lleva a cabo como con colecciones de documentos normales, pero los índices y el método de almacenamiento para ellos se optimizan teniendo en cuenta la referencia de tiempo, lo que puede reducir significativamente el consumo de espacio en disco, reducir los retrasos en la ejecución de consultas y permitir datos en tiempo real. análisis.

    MongoDB trata dichas colecciones como vistas no materializadas y grabables construidas sobre colecciones internas que, cuando se insertan, agrupan automáticamente datos de series temporales en un formato de almacenamiento optimizado. En este caso, cada registro basado en tiempo se trata como un documento separado cuando se solicita. Los datos se ordenan e indexan automáticamente por tiempo (no es necesario crear índices de tiempo explícitamente).

  • Se agregó soporte para operadores de ventana (funciones analíticas) que le permiten realizar acciones con un conjunto específico de documentos en la colección. A diferencia de las funciones agregadas, las funciones de ventana no colapsan el conjunto agrupado, sino que se agregan en función del contenido de una "ventana" que incluye uno o más documentos del conjunto de resultados. Para manipular un subconjunto de documentos, se propone una nueva etapa $setWindowFields, con la que se pueden, por ejemplo, determinar las diferencias entre dos documentos de una colección, calcular rankings de ventas y analizar información en series de tiempo complejas.
  • Se agregó soporte para el control de versiones de API, que le permite vincular una aplicación a un estado de API específico y eliminar los riesgos asociados con una posible violación de la compatibilidad con versiones anteriores al migrar a nuevas versiones de DBMS. El control de versiones de API separa el ciclo de vida de la aplicación del ciclo de vida del DBMS y permite a los desarrolladores realizar cambios en la aplicación cuando es necesario utilizar nuevas funciones, y no cuando se migra a una nueva versión del DBMS.
  • Se agregó soporte para el mecanismo Live Resharding, que le permite cambiar las claves de fragmentos utilizadas para la segmentación sobre la marcha sin detener el DBMS.
  • Se han ampliado las posibilidades de cifrar campos en el lado del cliente (Client-Side Field Level Encryption). Ahora es posible reconfigurar los filtros de auditoría y rotar los certificados x509 sin detener el DBMS. Se agregó soporte para configurar el conjunto de cifrado para TLS 1.3.
  • Se propone un nuevo shell de línea de comandos, MongoDB Shell (mongosh), que se está desarrollando como un proyecto independiente, escrito en JavaScript utilizando la plataforma Node.js y distribuido bajo la licencia Apache 2.0. MongoDB Shell permite conectarse al DBMS, cambiar la configuración y enviar consultas. Admite el autocompletado inteligente para ingresar métodos, comandos y expresiones MQL, resaltado de sintaxis, ayuda contextual, análisis de mensajes de error y la capacidad de ampliar la funcionalidad a través de complementos. El antiguo contenedor CLI "mongo" ha quedado obsoleto y se eliminará en una versión futura.
    DBMS orientado a documentos MongoDB 5.0 disponible
  • Se han agregado nuevos operadores: $count, $dateAdd, $dateDiff, $dateSubtract, $sampleRate y $rand.
  • Garantiza que se utilicen índices cuando se utilizan los operadores $eq, $lt, $lte, $gt y $gte dentro de la expresión $expr.
  • Los comandos agregado, buscar, buscarAndModify, actualizar, eliminar y los métodos db.collection.aggregate(), db.collection.findAndModify(), db.collection.update() y db.collection.remove() ahora admiten el comando “let Opción para definir una lista de variables que hacen que los comandos sean más legibles al separar las variables del cuerpo de la solicitud.
  • Las operaciones de búsqueda, recuento, distinción, agregación, mapReduce, listCollections y listIndexes ya no se bloquean si una operación que toma un bloqueo exclusivo en una colección de documentos se ejecuta en paralelo.
  • Como parte de una iniciativa para eliminar términos políticamente incorrectos, el comando isMaster y el método db.isMaster() han sido renombrados como hello y db.hello().
  • Se cambió el esquema de numeración de lanzamientos y se realizó una transición a un calendario de lanzamientos predecible. Una vez al año habrá un lanzamiento importante (5.0, 6.0, 7.0), cada tres meses lanzamientos intermedios con nuevas características (5.1, 5.2, 5.3) y, según sea necesario, actualizaciones correctivas con correcciones de errores y vulnerabilidades (5.1.1, 5.1.2 .5.1.3, 5.1). Las versiones provisionales crearán funcionalidad para la próxima versión principal, es decir. MongoDB 5.2, 5.3 y 6.0 proporcionarán nuevas funciones para el lanzamiento de MongoDB XNUMX.

Fuente: opennet.ru

Añadir un comentario