Tenho o prazer de anunciar dois novos recursos avançados de análise de dados agora disponível como parte do Couchbase Analytics: 1) ROLLUP agregação, e 2) CUBO ambos para ajudá-lo a agregar dados em vários atributos de documentos.
A adição do ROLLUP funcionalidade de agregação para o serviço de análise do Couchbase faz parte de a versão 7.0 do Couchbase Server. (Cobriremos o CUBO em um artigo na próxima semana).
Exemplo de agregação ROLLUP: Dados de comércio eletrônico
O ROLLUP é uma extensão da função de agregação GRUPO POR cláusula.
O ROLLUP permite que você inclua linhas extras - comumente chamadas de linhas superagregadas - que representam subtotais em seus dados, juntamente com a linha do total geral.
Por exemplo, digamos que você tenha uma coleção de análise chamada Sales que rastreia informações de comércio eletrônico da sua empresa. Os principais elementos de dados que você tem mais interesse em rastrear são país, região/estado, produto, quantidade e preço. (E digamos que você calcule Sales como Sales = quantity * price).
Abaixo está um subconjunto do nosso exemplo de coleta de dados de comércio eletrônico:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "Country": "US", "Region": "California", "Product": "Rubber Keyboard", "Qty": 1, "Price": 35.5 }, { "Country": "US", "Region": "Colorado", "Product": "Gloves", "Qty": 4, "Price": 6.95 }, { "Country": "US", "Region": "Connecticut", "Product": "Cotton Ties", "Qty": 2, "Price": 12.75 } … |
Agora, digamos que seus usuários precisem determinar as seguintes informações usando os dados acima:
1) Total de vendas para todos os países e regiões
2) Total de vendas para todas as regiões por país
3) Total de vendas para cada região
O ROLLUP A subcláusula de agregação é uma excelente opção para responder a esses tipos de perguntas de análise de dados. Seu engenheiro ou analista de dados simplesmente usa a subcláusula Consulta N1QL mostrado abaixo.
|
1 2 3 4 5 6 7 8 |
SELECT IFNULL(country,"All Countries") Country, IFNULL(region,"All Regions") Region, ROUND(SUM(o.qty * o.price),0) Sales FROM orders o WHERE region LIKE “C%” LET country = o.country, region = o.region GROUP BY ROLLUP(country, region) ORDER BY country ASC, region ASC, Sales DESC; |
Na consulta N1QL acima, usamos país e região como variáveis. O ROLLUP pressupõe uma hierarquia entre os atributos de dados especificados.
Por exemplo, se a coluna de entrada for (país, região), a hierarquia país é maior ou igual a região. É por isso que faz sentido usar ROLLUP para gerar os subtotais e o total geral para fins de relatório.
Com base na consulta acima, ROLLUP(country, region) gera os seguintes resultados:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
{ "Country": "All Countries", "Region": "All Regions", "Sales": 19921991 }, { "Country": "US", "Region": "All Regions", "Sales": 199219915 }, { "Country": "US", "Region": "California", "Sales": 6610804 }, { "Country": "US", "Region": "Colorado", "Sales": 6569542 } { "Country": "US", "Region": "Connecticut", "Sales": 6741644 } ... |
Observe que o resultado é exatamente o que os usuários do exemplo estavam procurando originalmente:
- Na parte superior dos resultados, um campo JSON de resumo do total geral mostra o total de vendas de todos os países e regiões. Nessas linhas, os valores NULL nos atributos de país e região são transformados em "Todos os países" e "Todas as regiões", respectivamente, para tornar o resultado mais legível.
- Depois disso, para cada país (nesse caso, os EUA), um elemento de dados JSON de resumo de subtotal extra aparece exibindo o total de vendas. Neles, os valores no atributo region são transformados de NULL para "All Regions"
- Por fim, o resultado mostra o total de vendas acumuladas para cada região do país. Neste exemplo, as vendas para a Califórnia, Colorado e Connecticut são mostradas dentro dos EUA.
Conclusão
Esta foi apenas uma rápida olhada no novo ROLLUP recurso de agregação no Couchbase Analytics Service. Para obter mais informações, dê uma olhada no ROLLUP 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 um test drive no Couchbase