El lanzamiento de Couchbase 6.5 es uno de los lanzamientos de mayor contenido para Couchbase. Para el servicio de consulta N1QL, nos centramos en llevar las funcionalidades de las bases de datos empresariales a la base de datos de Couchbase. Expandiendo N1QL con funciones adicionales para soportar los requerimientos de las aplicaciones empresariales con el objetivo de mejorar la productividad de los desarrolladores.
Este es el resumen de las características del N1QL.
N1QL Buscar()
N1QL ha añadido una capacidad de búsqueda de texto completo con la función N1QL Search(). Aprovecha Couchbase Full Text Search para ofrecer una variedad de capacidades de búsqueda de texto, tales como palabras clave y búsqueda difusa. La Búsqueda de Texto Completo es parte de la Plataforma de Datos Couchbase que corre como un servicio separado con su capacidad de Escalamiento Multi Dimensional. No hay necesidad de un motor de búsqueda separado, ni de importar los datos a un servicio separado. Los usuarios de N1QL ahora pueden aprovechar tanto la Búsqueda de Texto Completo como los predicados estándar de N1QL en una sola sentencia.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Match Query: SELECT * FROM `beer-sample` b WHERE SEARCH(b,{"match":"hoppiest","field":"description"}) AND b.abv > 3 ORDER BY b.abv DESC LIMIT 10 OFFSET 20 Fuzzy Match: SELECT RAW META(t1).id FROM `travel-sample` AS t1 WHERE SEARCH(t1, { "match": "interest", "field": "reviews.content", "fuzziness":2}) ; Regexp: SELECT RAW META(t1).id FROM `travel-sample` AS t1 WHERE SEARCH(t1, {"regexp": "inter.+", "field": "reviews.content"}); Date Range: SELECT RAW META(t1).id FROM `travel-sample` AS t1 WHERE SEARCH(t1, { "start": "2001-10-09T10:20:30-08:00", "end": "2016-10-31", "inclusive_start": false, "inclusive_end": false, "field": "reviews.date" }); Geospatial: SELECT RAW META(t1).id FROM `travel-sample` AS t1 WHERE SEARCH(t1, { "location": { "lon": -2.235143, "lat": 53.482358 }, "distance": "100mi", "field": "geo" }); |
Ventana N1QL y función analítica
Las funciones de ventana amplían la agregación de consultas básicas para permitir preguntas de negocio complejas con una construcción N1QL intuitiva, que de otro modo requeriría que el usuario escribiera consultas y uniones complejas.

Expresión de tabla común N1QL
Common Table Expression introduce la construcción WITH en N1QL para permitir al usuario asignar un nombre al bloque de consulta, al que posteriormente se puede hacer referencia en el resto de la consulta.

Función definida por el usuario N1QL
Permite a los desarrolladores definir una función N1QL personalizada que se puede llamar desde consultas N1QL. Permite el aislamiento de la lógica de aplicación N1QL que puede ser reutilizada por cualquier aplicación y microservicios.
|
1 2 3 4 5 |
CREATE FUNCTION func1(type) { (select * from `travel-sample` where `travel-sample`.type = type) } EXECUTE FUNCTION func1("airline") |
Subconsulta JOIN
La base de datos Couchbase mejora su soporte para ANSI Join para incluir la unión con subconsultas, permitiendo el uso de conjuntos de resultados de consultas dinámicas en la unión.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT cus.name Customer, cus.industry Industry, usr.name Owner, count(1) NumOfMeetings, sum(to_number(act.duration)) `Time Spent` FROM crm act INNER JOIN crm cus ON act.accid = cus.id AND cus.type = 'account' INNER JOIN crm usr ON cus.owner = usr.id AND usr.type = 'user' <strong>JOIN</strong> ( select thl.id from crm thl WHERE thl.type ='_territory_hier_level' AND thl.parent='ter3') ter <strong>ON</strong> cus.terid = ter.id WHERE act.type='activity' AND act.activityType='Appointment' AND DATE_PART_STR(act.startDate, 'year') =2018 GROUP BY cus.name, cus.industry, usr.name |
Las siguientes funciones también estarán disponibles en la versión 6.5 como Developer Preview.
Asesor de índices (DP)
El usuario puede utilizar ahora el Asesor de índices para crear los índices más óptimos para sus consultas. Los índices recomendados también incluyen una sección de índices de cobertura. Las consultas que aprovechan los índices de cobertura pueden beneficiarse de la necesidad de realizar una búsqueda adicional del servicio de datos y, por lo tanto, mejorar el rendimiento general de la consulta. Index Advisor funciona para consultas específicas o para cargas de trabajo de solicitudes completas.

Otras mejoras de N1QL en Couchbase v6.5

Resumen
Estamos muy entusiasmados con el nuevo contenido N1QL para Couchbase v6.5, ya que estas características abordarán muchas peticiones que nuestros clientes han solicitado. Como de costumbre, somos todo oídos cuando se trata de comentarios sobre nuestras nuevas características, y especialmente el Index Advisor(DP) .
Recursos
- Descargar: Descargar Couchbase Server 6.5
- Documentación: Novedades de Couchbase Server 6.5
- Todos los blogs de 6.5
Nos encantaría que nos dijera qué le han parecido las funciones de la versión 6.5 y en qué beneficiarán a su empresa en el futuro. Por favor, comparta su opinión a través de los comentarios o en el foro.