Grandes erros na elaboração do Data Warehouse que devem ser evitados

Por Diego Elias | 30.05.2014 às 09:06

O Data Warehouse (DW) é uma tecnologia de grande importância e um dos principais recursos utilizados nas soluções de Business Intelligence (BI). É usado para armazenar informações organizacionais de forma consolidada, favorecendo a análise de grandes volumes de dados e obtenção de informações estratégicas.

O valor existente no DW faz com que diversas empresas invistam tempo e dinheiro na construção desses depósitos de dados. O desenvolvimento requer profissionais qualificados e levantamento cuidadoso das informações que deverão ser armazenadas.

Porém, devem ser evitados alguns equívocos que podem gerar grandes transtornos, chegando até ao ponto crítico de fracassar a iniciativa. Vejamos agora alguns dos erros que devem ser evitados no projeto de um DW:

Campo texto em Dimensões e Fatos

Os campos de texto aberto (como observações, detalhes e etc) podem causar oneração do DW. Esses atributos custam grande espaço de armazenamento na base consolidada, além de tirarem o foco gerencial das informações do DW. Por isso, devemos evitar ao máximo a inclusão desses dados, questionando sempre sua necessidade quando for solicitado.

Construção do DW pensando apenas em necessidades operacionais

O DW conceitualmente visa atender desejos estratégicos, pois as necessidades operacionais são essencialmente extraídas pelos próprios sistemas transacionais (OLTP). Construir o DW visando necessidades operacionais impede o real benefício à organização e transforma uma potencial solução em um enorme "elefante branco".

Utilização de chaves operacionais para junção de Dimensões e Fatos

Não podemos utilizar chaves das tabelas operacionais para junções entre Dimensões e Fatos. Devemos utilizar as surrogate keys (chaves artificiais ou substitutas) pois só assim é possível tratar dados históricos nas tabelas de Fatos e o versionamento (modificações) dos dados nas Dimensões. Sem as chaves substitutas esse artifício é inviabilizado.

Modelar o DW com base em uma visão específica ou necessidade pontual

O DW depois de pronto deve permitir a flexibilização de cruzamento das informações da forma que o usuário, por ventura, necessitar. Por isso, não devemos construir visando uma necessidade pontual ou uma análise única do problema.

Não manter a conformidade entre Dimensões e Fatos nos diversos Data Marts

Um grande problema é a falta de conformidade entre dados do DW, causando retrabalho e falta de padronização nas informações apresentadas. Por isso, devemos sempre elaborar a modelagem tendo em vista a reutilização dos objetos nos diferentes Data Marts para que, dessa forma, o projeto tenha eficácia e consistência.

Negligenciar o versionamento (alterações) dos dados nas Dimensões

Nos projetos de DW não podemos subestimar a necessidade de armazenar as mudanças dos campos (atributos) das Dimensões. Dizer que os dados nunca vão alterar ou que os usuários nunca precisarão saber das mudanças ocorridas nas informações ao longo do tempo requer ponderação e muito cuidado. Devemos considerar todas as possibilidades – incluindo a mudança de desejo do usuário – e elaborar o projeto (modelagem) de forma que suporte futuras alterações na estrutura do DW com o menor impacto possível.

Priorizar o tipo de modelagem snowflake ao invés do star schema

O star schema (chamado também de modelo estrela) deve ser sempre priorizado. Esse tipo de modelagem possui maior intuitividade e melhor desempenho nas consultas que serão executadas no DW. Por isso, devemos evitar ao máximo o modelo snowflake (chamado também de modelo floco de neve) e utilizá-lo apenas nas exceções onde o star schema não pode ser aplicado.

Esses são alguns exemplos de erros que devem ser evitados no desenvolvimento de um DW. Porém existem outros e devemos ter total cuidado e atenção na elaboração do projeto para que não haja grande retrabalho e custos adicionais que podem, até mesmo, inviabilizar o DW. Dessa forma, minimizamos os ricos das adversidades e aumentando as chances de sucesso do projeto.