Este documento propõe um esquema lógico para data warehouse em bancos de dados NoSQL orientados por colunas. Os autores transformam um data warehouse relacional em um NoSQL orientado por colunas usando técnicas de agrupamento para criar famílias de colunas. Experimentos com o benchmark TPC-DS mostram que este método melhora o desempenho de consultas em comparação a esquemas planos ou ingênuos.
Data Warehouse em Bancos de Dados NoSQL - Isaac.pptx
1. Esquema Lógico para Data Warehouse em Bancos
de Dados NoSQL Orientados por Colunas
Autores:
Mohamed Boussahoua, Omar Boussaid, Fadila Bentayeb
(Université Lumiere Lyon 2 | UL2)
2. Objetivo
• A principal contribuição deste trabalho é a
transformação do data warehouse relacional
em um data warehouse NoSQL orientado por
colunas
3. • Geralmente é implementados como sistemas
de gerenciamento de bancos de dados
relacionais tradicionais
• Pontos fracos
– Não são adequados para bancos de dados
distribuídos:
• Apresentam problemas de escalabilidade
• Problemas de operação de junção
• Armazenamento de dados em massa
• Problemas de acesso.
Data Warehouse
4. NoSQL
• Uma solução escolhida é usar um banco de
dados não relacional
– Permite o armazenamento com menor custo
– Oferece grande flexibilidade na representação de
dados
– Permite gerenciamento de grandes quantidades
de armazenamento de dados em servidores
distribuídos
5. • Tipos de modelagem
– Orientado por chave-valor (Key / Value Store)
– Orientado por colunas (Column Store)
– Orientado por documentos (Document Store)
– Orientado por grafos (Graph Store).
NoSQL
6. NoSQL orientado por colunas
• Modelo mais apropriado escolhido para o
armazenamento de data warehouse foi
orientado por colunas:
– Tabelas de largura variável
– Alto desempenho em consultas
– Compactação de dados
– Não há regras de normalização
7. NoSQL orientado por colunas
• Todos os dados são armazenados na mesma tabela
• Cada tabela é composta por uma ou mais famílias de
colunas (CFi)
• Cada família de colunas é composta por um conjunto
de atributos e colunas
• Cada linha de dados das colunas é referenciada por
uma chave Row-key (Ri)
8. • Tabela T, com 2 famílias de colunas, CF1 e CF2
• Cada linha de dados é referenciada pelas chaves R1, R2, R3, R4 e R5
NoSQL orientado por colunas
Armazenamento do Hbase
9. A proposta de abordagem
• Precisamos de um conjunto Q de consultas mais
frequentes a serem feitas em uma tabela de fatos
e suas dimensões
• Matriz de Uso de Atributos (AUM)
– Contém informações dos atributos que são utilizados
nas consultas mais frequentes
• Matriz de Afinidade de Atributos (AAM)
– Contém informações dos atributos que são
consultados simultaneamente nas consultas mais
frequentes
10. Construindo Famílias da Coluna:
• Uso de técnicas de agrupamento (clustering)
– Técnica usada para agrupar dados com informações semelhantes
– Ela tem como entrada um conjunto de atributos obtidos a partir da
Matriz de Afinidade de Atributos (AAM)
– A saída são famílias de colunas formadas por atributos/elementos
que tenham características semelhantes
• Entre vários tipos de algoritmos de agrupamento o algoritmo escolhido
foi o k-means
– Permite construir o número máximo dos grupos possíveis
– Tem entrada a matriz de afinidade de atributo (AAM) e um número k
– A saída é um conjunto k de famílias de colunas
A proposta de abordagem
12. Implementação, Experimentos e Resultados
• Para o experimento é usado uma tabela de fatos
e suas 9 tabelas de dimensões
• Foram selecionados 19 consultas que acessam 67
atributos explorando todo o esquema da tabela
de fatos
• O banco de dados não relacional usado foi
HBase.
13. • Foram calculam cubos OLAP com base nas 19 consultas com um
número gradualmente crescente dimensões
• O grau dessa dimensionalidade é dividido em 3 níveis:
– pequeno (SD), médio (MD) e grande (LD)
– Quanto maior o grau de dimensionalidade da consulta, maior será o
numero de informações (tabelas, atributos e predicados) usados para
efetuar uma consulta
Implementação, Experimentos e Resultados
14. • Benchmark TPC-DS foi usado para avaliar o
desempenho da técnica
• O método proposto foi analisado com os valores de k:
• k = 4
• k = 11
• k = 13
• Outros dois métodos foram escolhidos para serem
comparados ao nosso:
– Flat Schema
• Os dados são armazenados em uma tabela Hbase com uma família
de colunas para todos os atributos
– Naıve schema
• Os dados são armazenados em uma tabela Hbase com 10 famílias
de colunas
Implementação, Experimentos e Resultados
16. Implementação, Experimentos e Resultados
Duração do tempo de execução das consultas q1, q2, q3
• Esquema k = 4
– Não teve um bom resultado pela má escolha do número de famílias da
colunas k; os atributos nas famílias de colunas não estão bem agrupados.
• Flat schema
– Todos os atributos das tabelas de fatos e dimensões são combinados em
uma família de colunas; HBase solicita que carregue na memória um
grande número de arquivos HFiles
• Naive schema, k = 11, k = 13
– HBase explora famílias de colunas com tamanhos de dados pequenos
– O número de HFiles na memória é pequeno
19. Implementação, Experimentos e Resultados
Pequeno (SD), Médio (MD) e Grande (LD),
Tempo de resposta das consultas globais de q1 a q19
20. Conclusão
• O objetivo principal deste trabalho é a transformação
do data warehouse relacional em um data warehouse
NoSQL colunar (CN-DW).
• Vários testes foram feitos usando benchmark TPC-DS
• Os resultados obtidos, comparado aos outros métodos,
confirmam os benefícios das técnicas de agrupamento
(clustering) para a criação de famílias de colunas
aumentando assim o desempenho das consultas