Modelagem de Dados aplicada em ambiente de Data Warehouse – Técnicas utilizadas na Modelagem Dimensional ou Multidimensional

Olá, boa noite!

Seja bem-vindo a mais um post da sessão “Contando História com Dados“.

Nesta sessão, você encontrará posts relacionados a área de dados, destacando ao longo dos anos como este elemento atualmente reconhecimento como o mais importante em nossas vidas, conseguiu evoluir, conquistar o seu espaço, tornando-se cada vez mais vital para nossa evolução.

Em adicional, estarei compartilhando sempre que possível, um documento, apresentação ou resumo do conteúdo aqui compartilhado, o qual conterá o meu ponto de vista, conhecimento e aprendizados obtidos ao longo dos estudos realizados para elaboração do referido post.

Neste sétimo post, destaco de forma breve outros conceitos relacionados a Modelagem de Dados aplicada em ambientes de Data Warehouse, em especial as técnicas mais comuns utilizadas no processo de Modelagem Dimensional ou Multidimensional.

Introdução

As técnicas de modelagem dimensional, ou multidimensional, representam uma
maneira de se desenvolver um modelo dimensional.

Em outras palavras, estas técnicas têm o propósito de gerar um modelo dimensional que seja correto do ponto de vista do negócio e apresente um bom desempenho para a execução de consultas.

A seguir são apresentadas algumas técnicas aplicadas a implementação da modelagem dimensional.

Granularidade

Para muitos profissionais da área de dados, a granularidade é conhecida como a mais importante questão de projeto de data warehouse precisa analisar, em alguns casos se tornando um desafio a ser enfrentado.

A granularidade refere-se ao nível de detalhe ou de resumo dos dados existentes no data warehouse.

Segundo INMON:

Quando a granularidade de um data warehouse é apropriadamente estabelecida, os demais aspectos de projeto e implementação fluem tranqüilamente; quando ela não é estabelecida, todos os outros aspectos se complicam.

Bill Inmon, 1997.

A razão pelo qual a granularidade é a principal questão de projeto consiste no fato de
que ela afeta profundamente o volume de dados que residem no data warehouse e, ao mesmo tempo, afeta o tipo de consulta que pode ser atendida.

Com o nível de granularidade, podemos dizer que o volume de dados é bem menor e menos índices serão necessários, como a quantidade de registro é geralmente bem grande, a força de processamento necessária para acessar os dados é um fator importante.

Justamente este aumento torna-se um problema a ser considerado, à medida que o nível de granularidade aumenta, o número de consultas que podem ser atendidas diminui, sendo que numa granularidade mínima as consultas mais detalhadas podem ser respondidas.

Níveis duais de granularidade (Dois ou Mais níveis)

As organizações geralmente buscam uma eficiência de armazenamento e acesso a
dados, assim como querem ter a possibilidade de consultar os dados em maior detalhe, mediante as estas características e necessidades, deve-se pensar em dois, ou mais, níveis de granularidade no data warehouse, ou seja, níveis duais de granularidade.

Um ambiente com níveis duais de granularidade consiste em ter dados a respeito de
um mesmo assunto em granularidades diferentes. Para tentar elucidar cito os exemplos abaixo:

Exemplo 1: Em um sistema bancário, pode-se armazenar os lançamentos individuais em contas correntes nos últimos 30, 45, 60 ou 90 dias, este armazenamento representa um período histórico, o qual permite se estabelecer um resumo de todas as transações realizadas ao longo do período, conhecidas como resumo de lançamentos.

Exemplo 2: No mesmo sistema bancário, podemos considerar a possibilidade de se implementar um período de armazenamento levando-se em consideração os últimos 5 anos, com o valor total de lançamentos sumarizados por mês.

Em outras palavras, tanto os dados resumidos, quanto os detalhados estarão disponíveis para o usuário.

Mais uma vez Inmon destaca:

O ponto de partida para a definição do nível de granularidade apropriado consiste em se fazer uma estimativa do número de linhas de dados que o data warehouse conterá.

Se para o primeiro ano ultrapassar o total de 1.000.000 de linhas, níveis duais de granularidade se farão necessários.

Níveis duais de granularidade permitem que você processe eficientemente a enorme
quantidade de solicitações e atenda a qualquer questão que possa ser respondida, considerada como a melhor de todas as situações e deveria ser a opção de projeto padrão.

Bill Inmon, 1997.

Tabelas Agregadas

A agregação de dados é uma das formas mais comuns para se estabelecer ou criar uma apresentação de dados que possuem algum tipo de relação, tal técnica também é possível ser adotada quando estamos trabalhando em cenários de análise de dados.

Para estes casos, um dos fatores mais críticos para se obter a resposta desejada pelo usuário se refere ao tempo de processamento, o qual, normalmente se torna presente em virtude do grande volume de dados envolvido nas consultas desse tipo de aplicação.

Uma das alternativas existentes na modelagem dimensional, consiste na utilização das Tabelas Agregadas, técnica utilizada com objetivo obter ganhos significativos de performance, sendo um dos principais recursos para ajuste de desempenho dos data warehouses.

As tabelas agregadas, consistem na criação de novas tabelas com os dados da tabela de fatos, mas alterando a granularidade dela, gerando assim tabelas bem menores, com dados sumarizados.

A Figura 1 abaixo ilustra algumas agregações que poderiam ser feitas da tabela de fatos Venda.

Figura 1 – Tabela Fato Vendas em conjunto com as duas tabelas agregadas.

No entanto, o uso de tabelas agregadas em alguns casos requer uma análise mais profunda no que se refere aos seus impactos quando um determinado usuário necessita analisar um conjunto de dados que porventura possam estar agrupados dentro da estrutura deste objeto.

Na ocorrência de uma possível análise mais profunda o usuário terá que utilizar as tabelas não-agregadas existente no Data Warehouse, as quais lhe permitem obter o nível de detalhe desejado, sabendo que ele terá que arcar com os custos de processamento relacionados ao tempo para se obter a resposta desejada.

A decisão por qual tabela agregada utilizar para responder cada consulta não é uma
tarefa tão simples, pois muitas vezes a consulta pode ser executada em mais de uma tabela agregada retornando o mesmo resultado.

Em algumas ferramentas analíticas, durante o desenvolvimento do projeto são definidas as possibilidades de tabelas a serem utilizadas e a prioridade de cada uma, sendo a escolha feita baseada nos campos que o usuário utilizar na consulta.

Existem também ferramentas que determinam automaticamente qual tabela será
utilizada na consulta, baseados no nível de granularidade de cada uma.

Considerações sobre as Tabelas Agregadas

1 – Antes de qualquer tipo de implementação, avaliar o ambiente para definir quais agregações devem ser criadas;

2 – Considerar os possíveis relacionamentos, hierarquias e cardinalidades), é fator predominante;

3 – Analisar as estatísticas de consultas para descobrir quais os requisitos mais frequentes; e

4 – As consultas são mais críticas, e assim definir quais agregadas serão mais úteis, mais utilizadas.

5 – Outro ponto a ser considerado refere-se a distribuição estatística dos dados, ou seja, deve ser avaliado quantas instâncias (conjuntos ou linhas de dados) exclusivas existem em cada nível da hierarquia, afim de estabelecer qual a compactação será obtida quando mudamos para outro nível seguinte, imagem o possível cenário.

“Considere a existência de uma tabela que possui 100 produtos armazenados, os quais estão agrupados em 10 marcas distintas. Neste caso teremos de forma agregada ou resumida 10 linhas da tabela base (na média) para calcular uma agregação aplicada a marca do produto.

Para este cenário, não vale o esforço de pré-armazenar esta possível agregação de forma física. Entretanto, podemos evitar a consulta de 100 linhas base acessando a agregação, isso já pode ser vantajoso mediante a forma como estes dados serão obtidos.”

Download

Referências

INMON, W.H. Como construir o Data Warehouse. Rio de Janeiro: Editora Campus, 1997. 388p.

INMON, W.H, WELCH, J. D., GLASSEY, K. L. Gerenciando Data Warehouse. São Paulo: Makron Books, 1999. 375p.

Agradecimento

Obrigado por sua visita a mais este post do meu blog!

Espero que este post e todos os demais aqui compartilhados possam lhe ajudar ao longo das mais diversas necessidades da sua vida profissional e acadêmica.

Aproveite, para viver cada dia, observando como você pode transformá-la em uma nova história repleta de dados.

Um forte abraço.