Sobre la base de la histórica versión 4.0, que amplió enormemente el tipo de casos de uso de bases de datos de documentos que Couchbase puede soportar, Couchbase Server 4.1 aporta mejoras masivas a la funcionalidad de consulta y rendimiento, que beneficiarán tanto a los desarrolladores como a la empresa.
Es un testimonio de nuestro equipo de ingeniería que Couchbase Server 4.1 - que llega sólo tres meses después del lanzamiento de Couchbase Server 4.0, incluye más de 200 mejoras que se traducirán en una mayor escalabilidad y un mejor rendimiento de las consultas. Queríamos que la versión 4.1 mejorara rápidamente N1QLya que muchos de nuestros clientes ya están utilizando N1QL para crear nuevos casos de uso en Couchbase.
A continuación se exponen los aspectos más destacados de la versión 4.1.
N1QL: Soporte completo de SQL CRUD con N1QL para aplicaciones Batch y OLTP
Sentencias SQL comunes, como INSERTAR, ACTUALIZACIÓN, BORRAR, FUSIONAR y UPSERT están ahora totalmente soportados en Couchbase Server 4.1. Con este beneficio, ahora puedes manipular documentos JSON con N1QL, de la misma manera que manipularías tablas con SQL y soportar todos los requerimientos de consulta de aplicaciones Web, Móviles e IoT empresariales.
La sentencia INSERT de N1QL permite insertar tanto un único documento como varios. UPDATE y DELETE permiten manipular un conjunto de documentos basándose en criterios específicos. Ambas sentencias utilizan los índices disponibles para identificar y actualizar documentos de forma eficaz. Las sentencias UPSERT y MERGE fusionan dos conjuntos de documentos en función de unos criterios determinados. Todas estas sentencias SQL tradicionales se han adaptado para soportar documentos JSON.
Las sentencias SQL son totalmente compatibles con los SDK de Couchbase, las API REST y los controladores JDBC y ODBC de Simba.
Índices de cobertura
Por definición, un índice de cobertura es un índice que contiene como mínimo todos los campos requeridos por una consulta específica. Lo que esto significa para su aplicación, es que los índices de cobertura ayudarán a que una consulta se ejecute más rápido. Con un índice estándar, el flujo de ejecución de una consulta escaneará inicialmente el servicio de índices en busca de datos, pero luego tendrá que dedicar tiempo adicional a escanear el servicio de datos para completar la consulta. Al utilizar un índice de cobertura, sólo es necesario escanear ese índice de cobertura para acceder a los datos. El resultado es una menor latencia de la consulta y un rendimiento más rápido de la aplicación.
Las consultas N1QL utilizan los índices disponibles para ejecutar eficientemente la consulta. Dependiendo del caso de uso, hemos observado una mejora de entre 2 y 3 veces en la latencia y el rendimiento de las consultas. Esto se debe a que, cuando una consulta sólo necesita hacer referencia a los atributos clave del índice elegido, puede evitar obtener el documento completo para responder a la consulta. De este modo, la consulta consume menos recursos y se ejecuta más rápidamente. Además, el motor de consulta N1QL aprovecha la ordenación del índice para evitar la clasificación de los datos cuando las claves del índice coinciden con los atributos clave de la cláusula ORDER BY.
El optimizador N1QL reconoce automáticamente si sólo se puede utilizar un índice para responder a una consulta. El rendimiento obtenido mediante el uso de índices de cobertura es normalmente grande para las consultas que procesan un gran número de filas. Por ejemplo, en el caso de consultas que hacen agregación como la siguiente -
CREAR ÍNDICE idxestadopaís EN muestra de cerveza
(estado, país) USANDO GSI
SELECCIONE país, máx(estado)
DESDE muestra de cerveza
USE INDEX (idxestadopaís)
WHERE STATE LIKE 'C%'
GROUP BY país
En los casos en los que se utiliza ORDER BY para ordenar, los índices de cobertura también pueden ayudar, ya que el índice ya está ordenado y el motor de consulta puede utilizar directamente el índice de cobertura ordenado para obtener resultados.
Declaraciones preparadas
Una sentencia preparada permite ejecutar la misma consulta, o una similar, muchas veces con gran eficacia al evitar el análisis sintáctico y la preparación repetidos de la consulta. Muchas aplicaciones requieren la ejecución repetida de consultas predefinidas con parámetros diferentes. Realizar estas consultas repetidas como sentencias ad-hoc requiere analizar, planificar y ejecutar la consulta cada vez. El uso de una plantilla de sentencia preparada, en la que el plan de ejecución es fijo y sólo se sustituyen variables específicas cada vez que se ejecuta la consulta, elimina la sobrecarga necesaria para analizar y compilar un plan de ejecución para estas consultas repetidas a menudo. El resultado es una menor latencia y ciclos de CPU reducidos, y una aplicación con un rendimiento más rápido.
Ya hemos visto a varios clientes reemplazar consultas que anteriormente dependían de map-reduce y vistas con N1QL - así como construir nuevas aplicaciones que requieren consultas más complejas que las que Couchbase soportaba anteriormente.
Otras plataformas compatibles
Couchbase Server 4.1 está certificado para funcionar tanto en Windows 10 como en OSX El Capitan.
Empezar ahora
4.1 GA ha llegado, y aquí tienes algunos recursos para empezar -
- Novedades en la documentación de Couchbase Server 4.1
- Descargar Couchbase Server 4.1
- Documentación de Couchbase Server
- Notas de la versión 4.1
- Controladores ODBC y JDBC de Couchbase con SQL Connector
Me gustaría dar las gracias a nuestra impresionante comunidad por probar las versiones preliminares para desarrolladores, y por probar constantemente y proporcionar informacióny específicamente en N1QL. Esperamos que disfrutéis de la 4.1 y, como siempre, nos hagáis llegar vuestros comentarios.
¡Buena suerte construyendo tus aplicaciones con Couchbase 4.1!