No post de hoje quero abordar algumas dicas rápidas ou recomendações para se evitar quando estiver modelando seu data warehouse.


São pontos simples mas que tenho certeza que podem ajudar em seus projetos.

PRIMEIRA DICA

O primeiro ponto que devemos evitar em uma modelagem dimensional para um data warehouse é evoluir do modelo star-schema para o modelo snowflake e porque?

Quando essa evolução ‘natural’ ocorre, o que estamos fazendo de forma inconsciente é a normalização do modelo para um modelo semi normalizado. 

E devemos evitar porque acabamos criando relações e chaves demais que culminarão em diversas uniões de tabelas diminuindo em muito a performance esperada do data warehouse.

Ainda que possa ser mais ‘fácil’ para gerenciar mudanças, neste tipo de banco, toda alteração é feita por sistemas de ETL que possuem meios próprios de controle garantindo a integridade, logo, não justifica este procedimento.

SEGUNDA DICA

Em alguns casos, ter uma dimensão relacionada com outra dimensão não é de todo negativo, mas deve ser feito com cuidado e quando este fenômeno ocorre, temos uma dimensão estabilizadora.

Este tipo de dimensão na maioria das vezes é proveniente de um processo de granularidade maior do que o planejado, como assim?!

Se algum gestor por exemplo quiser todas as medidas de tempo para a tabela dimensão produto, teríamos de ter uma dimensão chamada produto_tempo ligada na dimensão produto.

Dependendo da situação, pode gerar bons insights mas, mais uma vez, precisa ser usado com cautela para não ter penalidades de performance nas agregações do data warehouse.

TERCEIRA DICA

É quando as duas outras situações ocorrem de forma descontrolada criando ‘medidas’ desnecessárias que acabam se tornando normalizações e que dão origem ao que se chama de tabela fato centípede.

Este tipo de tabela é uma tabela fato normal, que possui chave estrangeira de todas as dimensões criadas e das dimensões que foram desmembradas de forma irregular transformando a tabela fato em uma verdadeira centopeia.

Este é outro tipo de modelo que compromete em muito a performance do data warehouse e por consequência, diminui os benefícios que o sistema de business intelligence poderia entregar.

Exemplo de uma tabela fato centípede.

Com estas três dicas rápidas finalizo este breve post e reforço que as situações acima utilizadas com parcimônia podem agregar valor ao seu ambiente, mas que devem ser analisadas e estudadas para não comprometer o desempenho do business intelligence.

Ainda que o modelo snowflake seja uma ‘tentação’ ou ‘evolução’ natural, ele pode acabar atrapalhando mais do que ajudando, logo, tenha muito cuidado!

Espero que tenham gostado, saúde!