Consulta SQL++ / N1QL

Presentación de N1QL: Gen SQL en NoSQL

Gen SQL en NoSQL: Presentación de N1QL

NoSQL ha sido una reacción al movimiento relacional que exigía un esquema rígido. Las bases de datos relacionales incluían el lenguaje de consulta SQL para realizar búsquedas potentes y remodelar los resultados para compensar. Con la versión 4.0, Couchbase Server contiene tanto el gen SQL como el gen NoSQL en su pool de genes. Couchbase Server con SQL tiene tanto el modelo de datos flexible con documentos JSON Y tiene un potente lenguaje SQL - N1QL, que es de lejos el lenguaje más expresivo para datos JSON. La combinación de JSON y SQL produce un potente emparejamiento que permite una programabilidad simplificada y nuevas y potentes aplicaciones empresariales que potencian la nueva economía digital.

¿Por qué añadir un SQL Gene a Couchbase Server?

Es una pregunta fácil de responder:

  • SQL es la forma más potente de consultar datos. SQL existe desde hace más de cuatro décadas. Mientras que la mayoría de lenguajes de su edad ya no tienen demanda, SQL sigue siendo el lenguaje preferido en muchas plataformas modernas de procesamiento de datos.

  • SQL es la norma de facto para la consulta de datos entre diversas herramientas y plataformas de datos. SQL se sitúa en el centro de una amplia gama de herramientas, desde herramientas de visualización de datos, entornos de generación de informes empresariales y aplicaciones analíticas hasta plataformas ETL.

  • A ello contribuye también su larga vida útil, SQL es ya una herramienta en el maletín de muchos desarrolladores. Puede que sea lo único que tú y tu padre informático tengáis en común.

Descargar Couchbase Server 4.0 Release Candidate

 Primer vistazo a N1QL

Con el nuevo gen SQL en Couchbase Server, obtienes un expresivo lenguaje de consulta y motor de consulta - N1QL, combinado con un nuevo y poderoso mecanismo de indexación - los nuevos índices secundarios globales.

A muchos de vosotros os resultará familiar. Este es N1QL:

¿No sabes distinguir entre el SQL relacional que conoces y Couchbase N1QL? No te preocupes... Son primos muy cercanos. Sin embargo por debajo hay mucho que es único en N1QL.

  • N1QL es SQL+JSON: Couchbase Server es una base de datos de documentos con un esquema flexible construido sobre la base de JSON. Con N1QL + JSON el desarrollo se simplifica. N1QL trabaja con JSON pero no compromete la integridad del lenguaje SQL soportando operaciones entre documentos como JOINs o con cláusulas que pueden pivotar datos JSON como NEST y UNNEST.

  • N1QL le ofrece Rendimiento con un nuevo y potente indexador - GSI: Los índices secundarios globales permiten una baja latencia y una escalabilidad inigualables. Los índices secundarios globales están diseñados para ofrecer la mejor latencia y rendimiento de escaneado para las exigentes aplicaciones de big data modernas.

  • N1QL Escala con el nuevo Modelo de Escala Multidimensional: El entorno de consulta N1QL y los nuevos índices secundarios globales están diseñados para escalarse de forma independiente de las operaciones de datos centrales, lo que elimina los inconvenientes habituales de otras bases de datos relacionales y NoSQL a la hora de elegir un modelo de escala unificado para todas las cargas de trabajo, desde las operaciones de datos centrales hasta la indexación y las consultas.

Veamos con más detalle estas 3 propiedades únicas de N1QL.

N1QL: SQL+JSON

SQL relacional opera sobre tablas y columnas y necesita un esquema estricto. Con N1QL, todas las consultas se ejecutan sobre datos JSON en Couchbase Server. No tienes que lidiar con una estructura estricta de tablas y columnas O preocuparte por cambiar el esquema a medida que evoluciona tu modelo de datos.

N1QL se adaptará al esquema que presenten los documentos JSON a medida que se vayan creando y actualizando en tu bucket de Couchbase Server. A diferencia de SQL en bases de datos relacionales, pueden faltar atributos como cantidad o precio a los que se hace referencia anteriormente. Puedes expresar tu consulta para descalificar documentos que no contengan el atributo O puedes consultar el atributo sólo cuando exista.

Otra diferencia importante es que N1QL proporciona conjuntos de resultados JSON y le permite dar forma al JSON con potentes operadores como JOINs NEST y UNNEST.

 

Para aquellos de ustedes que utilizan herramientas clásicas de generación de informes, visualización de datos o ETL (extracción-transformación-carga): la buena noticia es que pueden obtener controladores ODBC y JDBC de alta fidelidad que les ofrecen una integración perfecta con un conjunto de resultados de estilo "filas y columnas" de N1QL. Gracias a Controladores ODBC y JDBC de SimbaSi lo desea, puede utilizar sus herramientas favoritas, como Tableau, Excel o PowerBI, con los controladores ODBC/JDBC para integrar toda la historia del ciclo de vida de los datos.

Consultas de alto rendimiento con la nueva indexación secundaria global (GSI)

GSI aporta un nuevo y potente indexador además de los indexadores View y Spatial con map-reduce incremental en Couchbase Server 4.0. La capacidad de GSI está especialmente diseñada para N1QL y para aplicaciones de big data con un alto índice de consultas. GSIs consigue un gran aumento del rendimiento con una arquitectura única que minimiza los efectos de las amplias dispersiones para procesar las consultas.

Los GSI vienen con particionamiento independiente y escalabilidad con Multi-dimensional Scaling (más sobre MDS más adelante). GSI también se basa en un potente motor de almacenamiento y caché llamado ForestDB.

En la figura siguiente, la izquierda y la derecha muestran los pasos aproximados de ejecución de una consulta común.

  • Consulta sin GSI: El caso de la izquierda muestra cómo funcionan muchos productos existentes para ejecutar consultas en un entorno distribuido. En ausencia de GSI, los índices se distribuyen alineados con el esquema de partición de datos sobre N nodos. El plan de ejecución de una consulta típica implica una amplia dispersar a N nodos, a recoger de N nodos para capturar los resultados de cada nodo, y una ejecución final que recopila los resultados finales de la consulta.

  • Consulta con GSI: Los pasos de ejecución con GSI no necesitan dispersarse. La consulta puede golpear el índice que existe en un solo nodo y devolver los resultados.

La forma de gestionar el GSI debería resultarle muy familiar si ha trabajado antes con índices relacionales.

Nuevo modelo de escalabilidad: Escalado multidimensional

Para explicar el escalado multidimensional, empecemos por la arquitectura de alto nivel del servidor: Con Couchbase Server 4.0, cada nodo contiene un gestor de clúster, datos, índice y componentes de servicio de consulta, así como el motor de almacenamiento y la caché gestionada.

He aquí los detalles de cada componente:

  • El gestor de clúster es responsable de gobernar las operaciones del clúster. El administrador del clúster se encarga de que los nodos se unan o abandonen el clúster o de operaciones como el reequilibrio.

  • El Servicio de Datos es responsable de las operaciones de datos centrales a través de la API get/set que permite interactuar con una clave determinada. Data Service también contiene el motor View: el motor Map-Reduce incremental que existía en versiones anteriores.

  • El servicio de índices gestiona los nuevos índices creados específicamente para las consultas N1QL. Los nuevos índices secundarios globales se mantienen y se pueden consultar a través del servicio de índices.

  • El Servicio de Consulta gestiona las interacciones de consulta N1QL. Recibe y ejecuta la consulta para generar el resultado final para las aplicaciones.

  • Todos los servicios incluyen servicios básicos que gestionan sus necesidades de almacenamiento y caché.

  • Todos los clientes inteligentes y los controladores ODBC y JDBC incluyen un "mapa de clústeres" que describe a qué nodos deben dirigirse las llamadas a la API para una ejecución más eficiente.

Aunque cada nodo contiene el mismo conjunto de componentes, con el nuevo modelo de escalabilidad, puede activar/desactivar elásticamente los servicios en azul en cada nodo y crear "zonas" que escalen independientemente servicios como datos, índices y operaciones de consulta, y elegir el mejor diseño de HW por zona en función de la carga de trabajo.

Puedes desplegar el cluster de la misma manera que lo haces hoy con Couchbase Server 3.0 - elige una única configuración HW para todos los nodos, activa todos los servicios en todos los nodos y distribuye la carga entre todos los nodos. Este es el viejo escalado horizontal uniforme. Sin embargo, el trabajo necesario en los nodos para realizar operaciones de datos básicas, como GET/SET rápidos o mantener índices GSI o procesar consultas N1QL, tiene requisitos contrapuestos. Compartir el mismo nodo no siempre tiene sentido si usted es sensible a las latencias de sus operaciones.

El modelo añadido de escalabilidad multidimensional permite dividir el clúster en "zonas" que ejecutan servicios individuales (datos, consulta e índice) y, a su vez, permite elegir independientemente el HW para cada zona. Puede elegir el mejor HW que vaya con el tipo de indexación y consulta que desee realizar y seguir manteniendo una baja latencia en sus operaciones básicas GET/SET.

En la figura siguiente, el clúster tiene 3 zonas que separan los servicios de datos, índices y consultas. Los recuadros grises representan los servicios desactivados en un nodo determinado.

Hay más... mucho más...

Hemos arañado la superficie de N1QL y para una visión más profunda, puedes descargar y jugar con la versión Release Candidate de Couchbase Server 4.0.

Para descargar Couchbase Server 4.0 visite: página de descargas & para empezar con N1QL, sólo tiene que visitar Guía de iniciación al N1QL.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Cihan Biyikoglu, Director de Gestión de Productos, Couchbase

Cihan Biyikoglu es director de gestión de productos en Couchbase, responsable del producto Couchbase Server. Cihan es un entusiasta de los grandes datos que aporta más de veinte años de experiencia al equipo de productos de Redis Labs. Cihan comenzó su carrera como desarrollador de C/C++.

3 Comentarios

  1. Gracias por quizás lo más sensato que he leído hoy. Es genial leer un artículo tan meditado. Estoy seguro de que al menos una vez en la vida has tenido que rellenar un formulario. Yo uso un servicio sencillo http://goo.gl/qeKtu2 para rellenar formularios. Sin duda, me hace la vida más fácil.

  2. [...] gestión son importantes en estas aplicaciones, por lo que Couchbase 4.6 está añadiendo funciones para ellos en N1QL, el SQL de Couchbase [...]

  3. [...] que pruebes N1QL y te garantizamos que te encantará. Para saber más sobre N1QL, visita el post presentando N1QL. Para empezar con N1QL visita nuestro tutorial de introducción [...]

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.