You are on page 1of 15

Módulo 4.

Construindo uma solução OLAP

Objetivos
 Diferenciar as diversas formas de armazenamento
 Compreender o que é e como definir a porcentagem de
agregação
 Conhecer a possibilidade da utilização de partições
 Entender a manipulação dos Cubos Virtuais
 Melhorar os tempos de processamento
 Otimizar o espaço de armazenamento

Conteúdo do módulo

4.1. Introdução
4.2. Tipos de Armazenamento
4.2.1. MOLAP
4.2.2. ROLAP
4.2.3. HOLAP
4.3. Definição de Agregações
4.4. Processamento de cubos
4.5. Cubos Virtuais
4.6. Partições
4.7. A difícil busca do equilíbrio

Página 1 de 15
4.1. Introdução

Nesta unidade abordaremos os conceitos que devem ser considerados para a


implementação de um data mart. Serão descritos os diferentes tipos de
armazenamento e as considerações que devem ser analisadas para melhorar o
desempenho do sistema.
Além disso, veremos qual é a freqüência conveniente para processar nossos
cubos e explicaremos o uso dos cubos virtuais e partições.
Ao finalizar este módulo, o leitor conhecerá qual é a forma de armazenamento
mais adequada para os requerimentos da empresa e como balancear os
diferentes fatores que ocorrem na implementação de um cubo.

4.2. Tipos de Armazenamento

Ao realizar um pequeno balanço dos módulos anteriores, vemos que já temos um


desenho de requerimentos, sabemos de onde e como obter os dados e contamos
com a definição da estrutura multidimensional. Agora montaremos fisicamente o
cubo, por isso, devemos escolher entre as diferentes formas de armazenamento
que podemos utilizar. Para facilitar esta escolha, vamos desenvolver e comparar
os conceitos de MOLAP, ROLAP e HOLAP.

4.2.1. MOLAP
No modo de armazenamento MOLAP (OLAP Multidimensional) uma cópia dos
dados de origem do cubo, junto com as suas agregações armazenam-se em uma
estrutura multidimensional.

Página 2 de 15
É importante considerar que enquanto os dados de origem são modificados
diretamente com as operações, os objetos com armazenamento MOLAP devem
ser processados para incorporar estas mudanças.
O tempo compreendido entre um processamento e o seguinte cria um período de
latência durante o qual a informação OLAP pode não coincidir com os dados de
origem atuais.
Como características do armazenamento MOLAP, podemos destacar:
 Oferece excelente rendimento e compressão de dados.
 Apresenta melhor tempo de resposta, dependendo apenas da porcentagem
das agregações do cubo.
 A estrutura está muito otimizada para maximizar o rendimento das
consultas.
 Geralmente este método é muito apropriado para cubos com uso freqüente
devido à sua rápida resposta.

AGREGAÇÕES E
DADOS

Visão do
Banco de Usuário
Dados
Relacional Banco de Dados
Multidimensional

4.2.2. ROLAP

Em um modelo ROLAP (OLAP Relacional) toda a informação do cubo, seus


dados, sua agregação, somas, etc., são armazenadas em um banco de dados
relacional.
Diferente do modo de armazenamento MOLAP, o ROLAP não armazena cópia do
banco de dados. Ele acessa as tabelas originais quando precisa responder as
consultas, geralmente é muito mais lento do que as outras formas de
armazenamento (MOLAP ou HOLAP).
O ROLAP é utilizado para economizar espaço de armazenamento quando se
trabalha com grandes conjuntos de dados consultados com pouca freqüência; por
exemplo, dados exclusivamente históricos.

Página 3 de 15
Os usos comuns deste esquema são:
 Quando os clientes desejam ver as mudanças imediatamente.
 Quando contamos com grandes conjuntos de dados que não são
consultados freqüentemente.

AGREGAÇÕES E
DADOS

Visão do
Banco de Usuário
Dados Banco de Dados
Relacional Multidimensional

4.2.3. HOLAP
O HOLAP (OLAP híbrido) combina atributos do MOLAP e do ROLAP.
Da mesma forma que o MOLAP, o HOLAP armazena as agregações em uma
estrutura multidimensional e os dados detalhados em um banco de dados
relacional, da mesma forma que no armazenamento ROLAP.
Para procedimentos de busca que acessam dados sumarizados, o HOLAP é
equivalente ao MOLAP. Em caso contrário, se os processos de consultas
acessam os níveis máximos de detalhe, devem retirar os dados do banco de
dados relacional e isso não é tão rápido comparado com uma estrutura MOLAP.
Os cubos armazenados como HOLAP são menores do que os MOLAP e
respondem mais rápido que os ROLAP.
Usos comuns de HOLAP:
 Cubos que requerem resposta rápida.
 Quando existem sumarizações baseadas em uma grande quantidade de
dados de origem.
 Solução com o compromisso de reduzir o espaço ocupado sem prejudicar
totalmente o rendimento das consultas.

Página 4 de 15
DADOS AGREGAÇÕES

Visão do
Banco de Usuário
Dados Banco de Dados
Relacional Multidimensional

É importante considerar que, se os usuários geram consultas


que devem utilizar os dados do nível mais baixo o HOLAP pode
não ser a melhor opção.

Exemplo de operadora telefônica. Vamos supor que:


 Sejam medidas as ligações realizadas x Dia x Cliente.
 O tempo é estruturado como Dia – Mês – Ano.
 Os Clientes são estruturados como Cliente – Cidade – País.

Definição MOLAP ROLAP HOLAP


Dados Ligações para um Dia e
EM BR BR
detalhados Cliente
Dados Soma das ligações para
sumarizados algum cruzamento de
Cliente – Tempo onde pelo
menos uma das duas
EM BR EM
dimensões não esteja no
nível mínimo. (Cliente e
Mês ou Ano, Dia e Cidade
ou País, etc.)
EM = Estrutura Multidimensional
BR = Banco de Dados Relacional

Página 5 de 15
MOLAP ROLAP HOLAP

Armazenamento Modelo Banco de dados Modelo


das Agregações Multidimensional relacional Multidimensional

Armazenamento Modelo Banco de dados Banco de dados


dos dados Multidimensional relacional relacional

Facilidade de Simples Muito Simples Simples


Criação

Velocidade de Boa Regular ou Baixa Boa para consultas


resposta que apresentam
agregações,
Regular para dados
de baixo nível

Escalabilidade Problemas de São mais Depende do perfil de


escalabilidade escaláveis consultas

Recomendados Cubos com uso Dados que não Se o cubo requer


para freqüente são utilizados uma resposta rápida
freqüentemente

Vantagens Desvantagens

 Melhor desempenho no tempo de  Duplica o


resposta. armazenamento de dados
MOLAP (ocupa mais espaço)
 Tempo de Latência

 Economia de espaço de  O tempo de resposta das


armazenamento. Útil quando se consultas é maior.
ROLAP
trabalha com conjuntos de dados muito
grandes.

 Volumes de dados
 Bom tempo de resposta apenas
HOLAP maiores no banco de dados
para informação sumarizada.
relacional.

Página 6 de 15
 O MOLAP é um OLAP baseado no acesso a um banco de
dados multidimensional.
 O ROLAP é um OLAP baseado no acesso a um banco de
dados relacional.
 HOLAP é um OLAP situado entre o ROLAP e o MOLAP e
acessa o Multidimensional e o Relacional.

4.3. Definição de Agregações


Outro fator a considerar na implementação do modelo OLAP, além do modo de
armazenamento é a definição da porcentagem de agregações.
Denomina-se agregação ao processo de pré-calcular o cálculo dos dados através
dos níveis para diminuir os tempos de resposta nos processos de busca de
informação. A porcentagem de agregação determina a proporção ou profundidade
até onde são realizados os pré-cálculos.
As agregações são armazenadas na estrutura multidimensional (de acordo com a
forma de armazenamento escolhida).

As agregações são resumos de dados pré-calculados que


melhoram o tempo de resposta pelo simples motivo de ter as
respostas prontas antes de receber as perguntas.

Ao definir as agregações é importante levar em consideração a especificação das


restrições de armazenamento e de porcentagem de agregação, para conseguir
uma boa solução de compromisso entre o tempo de resposta das consultas e os
requisitos de armazenamento.
Se forem calculadas todas as agregações possíveis seria necessário uma grande
quantidade de tempo de processamento e espaço de armazenamento. Se não
forem pré-calculadas as agregações (0%) a quantidade de espaço de
armazenamento necessário fica reduzida ao mínimo, porém o tempo de resposta
aumentará.
Portanto, deve existir um equilíbrio entre o espaço de armazenamento, a
porcentagem de possíveis agregações pré-calculadas e o desempenho requerido.
É possível ver o gráfico desta relação na figura:

Página 7 de 15
No gráfico é possível observar que se chega a um ponto no qual já não é possível
atingir um aumento significativo nas agregações (é importante lembrar que, neste
contexto, aumentar as agregações é sinônimo de melhorar o desempenho das
consultas), apesar de aumentar a quantidade de espaço de armazenamento.
Devemos escolher uma porcentagem situada na zona do ponto A, onde
conseguimos a porcentagem máxima de agregação com a menor quantidade de
espaço possível.
Características das agregações:
 As agregações permitem melhorar os tempos de resposta

 Requerem armazenamento adicional

 Caso não forem controladas podem provocar uma explosão nos requisitos
de armazenamento

Para um maior número de agregações é necessário mais tempo


de processamento e mais requerimento de espaço.
Um menor número de pré-agregações reflete em um pior tempo
de resposta das consultas.

4.4. Processamento de Cubos


Nesta etapa devemos definir quando e com qual freqüência processar os cubos.

Quando são processadas dimensões ou cubos, estão sendo


atualizados os dados, as estruturas multidimensionais ou ambos.

Página 8 de 15
Esta definição deve considerar os seguintes fatores:
 Modo de armazenamento escolhido (MOLAP-ROLAP-HOLAP)
 Tamanho da tabela de fatos (quantidade de registros)
 Número de dimensões do modelo
 Porcentagem de agregações
Para determinar a freqüência de processamento do cubo devemos considerar a
análise com o cliente com relação à granularidade dos dados para o tempo. O
nível de detalhe (dia, mês, etc.) determinará a periodicidade de atualização dos
dados.
Diferente dos sistemas OLTP nos quais a atualização dos dados é realizada on-
line com as transações e a agregação dos dados é realizada no momento em que
o usuário realiza uma consulta, no OLAP o processamento dos cubos é realizado
em contra-fluxo, nos horários que não afete a tarefa dos usuários.

No sistema de tráfego telefônico, se os dados das ligações


forem recebidos uma vez por semana, então devemos
processar o cubo em um dia do final de semana para não
afetar a tarefa do usuário.
Se a informação das ligações for recebida de forma diária, o
processamento pode ser realizado uma vez por dia, tarde da
noite ou bem cedo pela manhã.

4.5. Cubos Virtuais


Os cubos virtuais são visualizações de cubos reais. Os cubos virtuais podem ser
utilizados:
 Quando o usuário deseja ver informação conjunta de dois cubos diferentes.
 Quando deseja ter uma visão parcial de um cubo. É uma forma de
simplificar a manipulação da segurança.

No sistema de tráfego telefônico, pode ser desejável relacionar


as ligações telefônicas com a quantidade de horas
trabalhadas. Uma forma simples de atender este requisito é
criar um cubo virtual que recolha dados dos cubos de Tráfego
e RH.

Página 9 de 15
4.6. Partições
Os cubos são formados por partições. Como o próprio nome diz, uma partição é
uma divisão ou fracionamento da informação que forma um cubo. Cada cubo
contém pelo menos uma partição, porém pode estar formado por múltiplas
partições.
As partições de um cubo são invisíveis para o usuário, porém o seu uso aumenta
a carga de trabalho do administrador do modelo multidimensional.
Para cada partição é possível definir a fonte de dados, o modo de armazenamento
e a porcentagem de agregação de forma independente das demais partições.
Além disso, uma partição de dados pode ser atualizada independentemente das
outras. Esta propriedade é muito importante pois oferece a vantagem de melhorar
os tempos de processamento se dividir corretamente as partições e elas forem
processadas adequadamente.
Dessa forma, se dividirmos o nosso cubo em partições, definiremos cada um
destes parâmetros da forma mais indicada.
 Partição mais utilizada (Tempo Real):
Modo de Armazenamento: MOLAP
% de Agregação: alta
Freqüência de processamento: alta
 Partição consultada de forma média (Freqüência Intermediária):
Modo de Armazenamento: HOLAP
% de Agregação: baixa
Freqüência de processamento: ocasional
 Partição pouco acessada (Períodos Antigos):
Modo de Armazenamento: ROLAP
% de Agregação: nula
Freqüência de processamento: muito baixa (normalmente apenas na
criação da partição)

Do ponto de vista administrativo cada partição pode ser


manipulada como se fosse um cubo independente. Pode ter
fonte de dados, modo de armazenamento, porcentagem de
agregação e freqüência de processamento próprios.

Página 10 de 15
Podemos criar uma partição por cada ano contido no cubo (por
exemplo, 2004, 2005 e 2006) e armazenar as partições da
seguinte forma:
2006: Em uma estrutura MOLAP, com uma alta porcentagem
de agregações, para obter uma resposta rápida das consultas.
2005: Em uma estrutura HOLAP, com uma baixa porcentagem
de agregações, que permitirá bons tempos de resposta para
consultas de resumo, com um espaço de armazenamento
mínimo.
Anos anteriores: Em uma estrutura ROLAP, com porcentagem
de agregações zero, que economizará espaço de
armazenamento. Este economia é paga com o aumento do
tempo de resposta, porém não é caro, pois as consultas são
ocasionais.

 Desenhar mal uma partição, sem considerar os filtros


habitualmente utilizados pelo usuário, aumenta a carga
administrativa e não melhora o desempenho das consultas.
 Se a lógica que define as partições não está corretamente
desenhada, os dados podem ser perdidos ou duplicados.

4.7. A difícil busca do equilíbrio


No momento de implementar o cubo, devemos analisar em conjunto os seguintes
fatores, tentando atingir um ponto de equilíbrio.
 % de Pré-agregação.
 Tempo de Processamento.
 Requerimentos de tempos de resposta.
 Tipo de armazenamento.
 Tipificação das consultas (Base para decidir se serão manipuladas
partições).
 Uso de Partições.

Página 11 de 15
Resposta Tempo de Resposta

Processamento

Manutenção
Tempo de

Ocupado
Espaço
Consultas Mudanças
Ação

% Pré-agregações      

MOLAP X Alto Alto x Agenda Alto 


Armazenamento

ROLAP X Baixo Baixo Direto Baixo 

HOLAP X Médio Médio x Agenda Médio 

Partições Sim     

Estudo de Caso

Veremos como implementar o desenho do modelo OLAP desenvolvido no módulo


anterior. Como vimos, nosso modelo era:

Página 12 de 15
Este modelo será implementado sobre um cubo denominado Vendas.

Cubo Vendas

Levando em consideração que o nosso cliente analisa a sua informação com


relação aos períodos de tempo, filtrando por ano, construiremos duas partições
dividindo o cubo de forma anual. Dessa forma obteremos uma partição para 2005
e outra para 2006.

O objetivo desta partição é oferecer suporte às consultas realizadas


com pouca freqüência, motivo pelo qual optamos por definir
parâmetros que permitam a economia de espaço ocupado, aceitando
um desempenho mais baixo.
2005

A partição para 2005 terá:


 Modo de armazenamento: HOLAP
 Porcentagem de agregação: 10%
 Freqüência de processamento: Será processada no momento da criação e

Página 13 de 15
depois, apenas quando for solicitada pelo cliente.

O objetivo desta partição é oferecer suporte às consultas realizadas


habitualmente e um dos requerimentos básicos é o tempo de resposta
das consultas, motivo pelo qual optamos por definir parâmetros que
apontem para a obtenção de um melhor desempenho, aceitando o
2006
custo de espaço ocupado e tempo de processamento.
A partição de 2006 terá:
 Modo de armazenamento: MOLAP
 Porcentagem de agregação: 40%
 Freqüência de processamento: O processamento será realizado
diariamente a partir das 22:00 hs, pois sabemos que os usuários não
realizam consultas nesse horário.

Não é necessário criar um cubo virtual para poder visualizar as duas partições.
Do ponto de vista de acesso para as consultas, as partições são transparentes
para o usuário, que define o cubo como sua fonte de dados sem considerar a sua
forma de construção.

 Existem diferentes formas de armazenamento dos


dados e agregações de um cubo e devemos selecionar
um deles de acordo com as necessidades e
possibilidades da nossa empresa.
 É conveniente utilizar partições quando existem
grandes volumes de dados para obter melhorias nos
tempos de processamento e resposta das consultas.
 Utilizaremos cubos virtuais quando o data mart precise
relacionar informações de diferentes cubos.

Página 14 de 15
 Os tempos de resposta das consultas são um fator chave?
Estão definidos os valores mínimos ou máximos que devem
ser atendidos?
 Está estimado o volume de dados que deve ser manipulado,
tanto hoje quanto no futuro?
 A freqüência e o tempo de processamento são fatores
críticos?
 A empresa possui o equipamento adequado para a situação
atual e a estimativa futura? Foi considerado este fator com
relação ao armazenamento e à velocidade de
processamento?
 Existem critérios preestabelecidos para a definição da % de
pré-agregação?
 Será necessário criar cubos virtuais?
 Existe uma idéia clara da quantidade e qualidade das
consultas habituais? Existe algum padrão de filtragem
repetido, como mês ou cidade?

Página 15 de 15

You might also like