Você está na página 1de 15

Módulo 4. Construindo uma solução OLAP

Objetivos

Diferenciar as diversas formas de armazenamento

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

4.1.

Introdução

4.1. Introdução Nesta unidade abordaremos os conceitos que devem ser considerados para a implementação de um

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

uma cópia dos

dados de origem do cubo, junto com as suas agregações armazenam-se em uma

No modo de armazenamento MOLAP (OLAP Multidimensional)

estrutura multidimensional.

É 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.

cubos com uso freqüente devido à sua rápida resposta. Banco de Dados Relacional AGREGAÇÕES E DADOS

Banco de

Dados

Relacional

AGREGAÇÕES E DADOS

resposta. Banco de Dados Relacional AGREGAÇÕES E DADOS Banco de Dados Multidimensional 4.2.2. ROLAP Visão do
resposta. Banco de Dados Relacional AGREGAÇÕES E DADOS Banco de Dados Multidimensional 4.2.2. ROLAP Visão do

Banco de Dados Multidimensional

4.2.2.

ROLAP

E DADOS Banco de Dados Multidimensional 4.2.2. ROLAP Visão do Usuário Em um modelo ROLAP (
E DADOS Banco de Dados Multidimensional 4.2.2. ROLAP Visão do Usuário Em um modelo ROLAP (

Visão do

Usuário

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.

Os usos comuns deste esquema são:

Quando os clientes desejam ver as mudanças imediatamente.

Quando

contamos

com

grandes

conjuntos

de

dados

que

consultados freqüentemente.

não

AGREGAÇÕES E DADOS

que consultados freqüentemente. não AGREGAÇÕES E DADOS Banco de Dados Relacional Banco de Dados Multidimensional

Banco de

Dados

Relacional

não AGREGAÇÕES E DADOS Banco de Dados Relacional Banco de Dados Multidimensional Visão do Usuário 4.2.3.
não AGREGAÇÕES E DADOS Banco de Dados Relacional Banco de Dados Multidimensional Visão do Usuário 4.2.3.

Banco de Dados Multidimensional

Banco de Dados Relacional Banco de Dados Multidimensional Visão do Usuário 4.2.3. HOLAP são O HOLAP
Banco de Dados Relacional Banco de Dados Multidimensional Visão do Usuário 4.2.3. HOLAP são O HOLAP

Visão do

Usuário

4.2.3.

HOLAP

são

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.

DADOS

DADOS Banco de Dados Relacional AGREGAÇÕES Banco de Dados Multidimensional Visão do Usuário É importante considerar

Banco de

Dados

Relacional

DADOS Banco de Dados Relacional AGREGAÇÕES Banco de Dados Multidimensional Visão do Usuário É importante considerar

AGREGAÇÕES

DADOS Banco de Dados Relacional AGREGAÇÕES Banco de Dados Multidimensional Visão do Usuário É importante considerar
DADOS Banco de Dados Relacional AGREGAÇÕES Banco de Dados Multidimensional Visão do Usuário É importante considerar

Banco de Dados Multidimensional

Relacional AGREGAÇÕES Banco de Dados Multidimensional Visão do Usuário É importante considerar que, se os

Visão do

Usuário

É importante considerar que, se os usuários geram consultas que devem utilizar os dados do

É 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:  

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 algum cruzamento de Cliente – Tempo onde pelo menos uma das duas dimensões não esteja no nível mínimo. (Cliente e Mês ou Ano, Dia e Cidade ou País, etc.)

     

sumarizados

EM

BR

EM

EM = Estrutura Multidimensional BR = Banco de Dados Relacional

 
 

MOLAP

ROLAP

HOLAP

Armazenamento das Agregações

Modelo

Banco de dados relacional

Modelo

Multidimensional

Multidimensional

Armazenamento dos dados

Modelo

Banco de dados relacional

Banco de dados relacional

Multidimensional

Facilidade de

Simples

Muito Simples

Simples

Criação

Velocidade de resposta

Boa

Regular ou Baixa

Boa para consultas que apresentam agregações,

Regular para dados de baixo nível

Escalabilidade

Problemas de

São mais

Depende do perfil de consultas

escalabilidade

escaláveis

Recomendados

Cubos com uso freqüente

Dados que não são utilizados freqüentemente

Se o cubo requer uma resposta rápida

para

   

Vantagens

 

Desvantagens

MOLAP

Melhor desempenho no tempo de resposta.

Duplica o armazenamento de dados (ocupa mais espaço)

Tempo de Latência

ROLAP

Economia de espaço de armazenamento. Útil quando se trabalha com conjuntos de dados muito grandes.

O tempo de resposta das consultas é maior.

HOLAP

Bom tempo de resposta apenas para informação sumarizada.

Volumes de dados maiores no banco de dados relacional.

O MOLAP é um OLAP baseado no acesso a um banco de dados multidimensional.

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

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:

No gráfico é possível observar que se chega a um ponto no qual já não

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
Para um maior número de agregações é necessário mais tempo de processamento e mais requerimento

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

Quando são processadas dimensões ou cubos, estão sendo atualizados os dados, as estruturas multidimensionais ou ambos.

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
No sistema de tráfego telefônico, se os dados das ligações forem recebidos uma vez por

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 simplificar a manipulação da segurança.

uma forma de

de um

cubo. É

No sistema de tráfego telefônico, pode ser desejável relacionar as ligações telefônicas com a quantidade

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.

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

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.

Podemos criar uma partição por cada ano contido no cubo (por exemplo, 2004, 2005 e

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

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.

Resposta Ação
Resposta
Ação
 

Tempo de Processamento

Tempo de Resposta

 

Manutenção

Consultas

Mudanças

Espaço

Ocupado

% Pré-agregações

 

Armazenamento

MOLAP

X

Alto

Alto

x

Agenda

Alto

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.

Estudo de Caso

Veremos como implementar o desenho do modelo OLAP desenvolvido no módulo anterior. Como vimos, nosso

Veremos como implementar o desenho do modelo OLAP desenvolvido no módulo anterior. Como vimos, nosso modelo era:

Este modelo será implementado sobre um cubo denominado Vendas. Cubo Vendas Levando em consideração que

Este modelo será implementado sobre um cubo denominado Vendas.

modelo será implementado sobre um cubo denominado Vendas. Cubo Vendas Levando em consideração que o nosso

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.

forma obteremos uma partição para 2005 e outra para 2006. 2005 O objetivo desta partição é

2005

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.

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

depois, apenas quando for solicitada pelo cliente.

depois, apenas quando for solicitada pelo cliente. 2006 O objetivo desta partição é oferecer suporte às

2006

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 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

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.

Os tempos de resposta das consultas são um fator chave? Estão definidos os valores mínimos

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?