Me complace anunciar dos nuevas y potentes funciones de análisis de datos ahora disponible como parte de Couchbase Analytics: 1) ROLLUP
agregación, y 2) CUBO
para ayudarle a agregar datos a través de múltiples atributos de documentos.
La adición del ROLLUP
funcionalidad de agregación a el servicio Couchbase Analytics forma parte de la versión 7.0 de Couchbase Server. (Cubriremos el CUBO
funcionalidad en un artículo la semana que viene).
Ejemplo de agregación ROLLUP: Datos de comercio electrónico
En ROLLUP
es una extensión de la función GRUPO POR cláusula.
En ROLLUP
le permite incluir filas adicionales - comúnmente denominadas filas superagregadas - que representan subtotales en sus datos junto con la fila del total general.
Por ejemplo, supongamos que tiene una colección de análisis llamada Ventas que realiza un seguimiento de la información de comercio electrónico de su empresa. Los datos clave que más le interesan son país, región/estado, producto, cantidad y precio. (Y supongamos que calcula Ventas como Ventas = cantidad * precio).
A continuación se muestra un subconjunto de nuestro ejemplo de recopilación de datos de comercio electrónico:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "País": "US", "Región: "California", "Producto: "Teclado de goma", "Cantidad": 1, "Precio": 35.5 }, { "País": "US", "Región: "Colorado", "Producto: "Guantes", "Cantidad": 4, "Precio": 6.95 }, { "País": "US", "Región: "Connecticut", "Producto: "Lazos de algodón", "Cantidad": 2, "Precio": 12.75 } ... |
Ahora, supongamos que sus usuarios necesitan determinar la siguiente información utilizando los datos anteriores:
1) Ventas totales de todos los países y regiones
2) Ventas totales de todas las regiones por país
3) Ventas totales de cada región
En ROLLUP
es una opción excelente para responder a este tipo de preguntas de análisis de datos. Su ingeniero de datos o analista de datos simplemente utiliza la subcláusula Consulta N1QL que se muestra a continuación.
1 2 3 4 5 6 7 8 |
SELECCIONE IFNULL(país,"Todos los países) País, IFNULL(región,"Todas las regiones) Región, RONDA(SUM(o.Cantidad o.precio),0) Ventas DESDE pedidos o DONDE región COMO "C%" LET país = o.país, región = o.región GRUPO POR ROLLUP(país, región) PEDIR POR país ASC, región ASC, Ventas DESC; |
En la consulta N1QL anterior, utilizamos el país y la región como variables. La dirección ROLLUP
asume una jerarquía entre los atributos de datos especificados.
Por ejemplo, si la columna de entrada es (país, región)
la jerarquía país
es mayor o igual que región
. Por eso tiene sentido utilizar ROLLUP
para generar los subtotales y el total general con fines informativos.
Según la consulta anterior, ROLLUP(país, región)
genera los siguientes resultados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
{ "País": "Todos los países, "Región: "Todas las regiones, "Ventas": 19921991 }, { "País": "US", "Región: "Todas las regiones, "Ventas": 199219915 }, { "País": "US", "Región: "California", "Ventas": 6610804 }, { "País": "US", "Región: "Colorado", "Ventas": 6569542 } { "País": "US", "Región: "Connecticut", "Ventas": 6741644 } ... |
Observe que el resultado es exactamente el que buscaban los usuarios de su ejemplo:
- En la parte superior de los resultados, un campo JSON de resumen del total general muestra las ventas totales de todos los países y regiones. En estas filas, los valores NULL de los atributos de país y región se transforman en "Todos los países" y "Todas las regiones", respectivamente, para que el resultado sea más legible.
- A continuación, para cada país (en este caso, EE.UU.), aparece un elemento de datos JSON de resumen de subtotal adicional que muestra las ventas totales. En ellos, los valores del atributo región se transforman de NULL a "Todas las regiones"
- Por último, el resultado muestra las ventas totales de cada región del país. En este ejemplo, se muestran las ventas de California, Colorado y Connecticut dentro de Estados Unidos.
Conclusión
Esto ha sido sólo un vistazo rápido al nuevo ROLLUP
en el servicio Couchbase Analytics. Para más información, consulte el ROLLUP
documentación. Espero que esta nueva capacidad le resulte útil para futuros proyectos de análisis de datos en su empresa.
Estoy deseando sus comentarios en los foros de Couchbase - ¡Háganos saber lo que piensa!
Pruebe Couchbase