Os recursos de análise de dados do Couchbase ficaram mais robustos com a versão 7.0.
Tenho o prazer de anunciar dois novos recursos avançados agora disponíveis como parte do Couchbase Analytics: 1) o CUBO
funcionalidade, e 2) ROLLUP
agregação, ambos para ajudá-lo a agregar dados em vários atributos de documentos.
A adição do CUBO
funcionalidade de extensão para o serviço de análise do Couchbase faz parte de a versão 7.0 do Couchbase Server. (Cobrimos o ROLLUP
funcionalidade em um artigo na semana passada).
Um exemplo de passo a passo da nova funcionalidade do CUBE
Como no SQL, o recurso de agregação do CUBE é uma extensão do a cláusula GROUP BY.
A subcláusula de extensão CUBE permite que você gere subtotais para todas as combinações de colunas de agrupamento especificadas na cláusula GROUP BY. Especificamente, o resultado inclui linhas extras que representam subtotais em seus dados - comumente chamadas de linhas superagregadas - juntamente com a linha usual do total geral.
Por exemplo, digamos que você tenha uma coleção de análise de amostra chamada Orders (Pedidos) que rastreia informações de comércio eletrônico. Os principais elementos de dados que você tem mais interesse em rastrear são região/estado, data do pedido, quantidade e preço. (E digamos que você calcule Vendas como Vendas = quantidade * preço).
Abaixo está uma amostra dos dados de comércio eletrônico do nosso exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
{ "orderDate" (data do pedido): "2020-11-30", "region" (região): "Califórnia", "qty": 5, "price" (preço): 596.37 }, { "orderDate" (data do pedido): "2020-05-08", "region" (região): "Califórnia", "qty": 3, "price" (preço): 814.69 }, { "orderDate" (data do pedido): "2020-03-17", "region" (região): "Connecticut", "qty": 2, "price" (preço): 270.04 }, { "orderDate" (data do pedido): "2020-03-11", "region" (região): "Colorado", "qty": 4, "price" (preço): 795.73 } |
Agora, digamos que os usuários da sua empresa queiram saber o seguinte sobre os dados do seu comércio eletrônico:
1) Total de vendas de todos os anos por região
2) Total de vendas para todas as regiões por ano
3) Total de vendas de cada região por ano
4) Total de vendas para todas as regiões e todos os anos
A extensão CUBE é um bom caso de uso para responder a essas perguntas de análise de dados baseadas em agregação. Seu engenheiro ou analista de dados simplesmente usa a consulta N1QL mostrado abaixo no Couchbase Analytics Service.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
-- Gera quatro agrupamento conjuntos: -- 1. Todos Região &lificador; Todos Anos (Grande Total) -- 2. Todos Regiões, Ano -- 3. Todos Anos, Região -- 4. Região, Ano SELECIONAR IFNULL(região,"Todas as regiões") Região, IFNULL(ano, "Todos os anos") Ano, REDONDA(SUM(o.quantidade * o.preço),0) Vendas DE pedidos o LET ano = DATE_PART_STR(o.data do pedido, "ano"), região = o.região GRUPO BY CUBO(região, ano) ORDEM BY região, ano |
Na consulta N1QL acima, usamos ano
e região
como variáveis por conveniência. Como resultado, CUBO(região, ano)
gera os seguintes resultados de consulta para nossos dados de amostra:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
{ "Região": "Todas as regiões", "Ano": "Todos os anos", "Vendas": 3372854458}, { "Região": "Todas as regiões", "Ano": 2020, "Vendas": 3371122342}, { "Região": "Todas as regiões", "Ano": 2021, "Vendas": 1732116}, { "Ano": "Todos os anos", "Região": "Alabama", "Vendas": 66383297}, { "Ano": "Todos os anos", "Região": "Califórnia", "Vendas": 66108045}, { "Região": "Califórnia", "Ano": 2020, "Vendas": 66053233}, ... |
Observe que o resultado é exatamente o que os usuários estavam procurando originalmente:
- Na parte superior dos resultados, um total geral mostra o total de vendas em todos os anos e regiões. Na saída da consulta, o
NULL
nos atributos country e region são transformados em "All Years" e "All Regions", respectivamente, para tornar o resultado mais legível. - Em seguida, você verá o resultado de outro subtotal resumindo Todas as regiões por cada ano, por exemplo, 2020 e 2021, exibindo o total de vendas. Nesses campos JSON, os valores no campo
região
são transformados deNULL
para "Todas as regiões". - Depois disso, vemos outro resumo de subtotal para "Todos os anos" exibindo o total de vendas para cada região, por exemplo, Alabama e Califórnia. Nesses campos, os valores nos campos
região
são transformados deNULL
para "Todas as regiões". - Por fim, o resultado mostra o total de vendas acumuladas para cada região em cada ano. Neste exemplo, as vendas da Califórnia para o ano de 2020
Conclusão
Espero que você esteja animado com esse novo recurso de agregação do CUBE que amplia as poderosas expressões analíticas disponíveis no Couchbase Analytics. Para obter mais informações, dê uma olhada no CUBO
documentação. Espero que esse novo recurso seja útil para futuros projetos de análise de dados em sua empresa.
Estou ansioso para seu feedback nos fóruns do Couchbase - Diga-nos o que você achou!
Faça o download do Couchbase hoje