Servidor Couchbase

N1QL vs TSQL - Agregaciones con Couchbase Server vs SQL Server

SQL existe desde hace muchísimo tiempo. Es una forma muy intuitiva y eficiente de procesar datos estructurados y ha sido la elección para las bases de datos durante muchos años. Sin embargo, con el mundo de BIG DATA, los datos se han velocidad, variedad y volumen. SQL puede abordar los 2 "v"Está bien con las optimizaciones: "velocidad" y "volumen". De hecho, muchos nuevos dielectos de SQL (N1QL, Spark, U-SQL, Impala, Drill y más) están haciendo exactamente eso. Sin embargo, "variedad"es otro juego. Los Big Data son complejos en el nuevo mundo; tienen un esquema impredecible, en constante evolución, irregular, valores dispersos y estructuras profundamente anidadas. ¡Para eso SQL necesita ampliarse!

Bueno, ¡estoy súper emocionado de informar que hemos construido N1QL en Couchbase Server 4 para abordar exactamente estos problemas! N1QL puede recorrer fácilmente las estructuras complejas en JSON (el estándar de serialización de-facto para datos complejos). Usando N1QL, puedes trabajar no sólo con NULLs sino también con atributos que son FALTA en varias formas de JSON que procesas. O puede utilizar operadores como CUALQUIERA para consultar matrices incrustadas en documentos JSON. O puede utilizar comandos como UNNEST & NEST que puede acoplar o desacoplar matrices anidadas. Hay demasiadas de estas potentes extensiones para contarlas aquí, así que no lo haré. En su lugar voy a mostrar una joya escondida que fue publicada originalmente aquí por Gerald. Esta gema es muy útil con agregados si está utilizando N1QL. vs una base de datos relacional como SQL Server.

Una de las grandes ventajas de N1QL es su capacidad para entender los tipos de array. Las funciones de agregación como MAX() no son revolucionarias pero con las adiciones de anidamiento y arreglos, algo tan simple como MAX() puede ser super poderoso. Una nota antes de entrar en materia - Voy a escoger TSQL y SQL Server ya que contribuí a TSQL en mi vida pasada en Microsoft. Sin embargo, esto es aplicable a Oracle, Postgres, Mysql, Informix o DB2 y más ... Ok así: Imagínese tratando de encontrar atributos del producto que tiene el precio MAX. En SQL Server que es bastante simple consulta a escribir utilizando TSQL;

Así está bien. Aquí está el resultado - el producto con el precio más alto es el producto llamado "c" con ID 3.

Este es el aspecto del plan de ejecución. Básicamente, el plan de ejecución busca el valor de precio MAX. Una vez que tiene el valor, es un bucle anidado join para buscar los otros atributos del producto en la tabla como productID y name.

Sin embargo, N1QL tiene aquí una gran ventaja. Puesto que puede procesar MAX() con matrices, puede devolver todos los atributos del documento sin un análisis adicional.

O puede simplemente devolver el documento completo utilizando la siguiente consulta;

Veamos el plan de ejecución de la consulta N1QL. Aquí viene el spoiler: se ve una sola operación FETCH que puede realizar el MAX y la proyección se realiza sin un segundo FETCH.

Aunque, este es un truco muy bueno y una gran ganancia de rendimiento, sólo hemos arañado la superficie de lo que N1QL es capaz de hacer. Hay mucho más por descubrir con N1QL. Puedes empezar a usar Couchbase Server y N1QL aquí con la herramienta guía de iniciación.

———————————————————

Por cierto si quieres probar esto con SQL Server 2016 y Couchbase 4, aquí tienes los scripts para verlo tú mismo en acción;

Script SQL Server

Nota: Ejecute esto en una base de datos llamada "test".

Este es el script del servidor Couchbase

Nota: cree un cubo llamado "test".

insert into prueba(clave,valor) values("1",{productoID:1, precio:10, nombre:'a'});

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

Autor

Publicado por Cihan Biyikoglu

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++.

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.