A modelação de dados é um dos temas fundamentais quando pretendemos desenhar uma arquitetura de Business Intelligence.
As opções efetuadas na modelização irão, mais tarde, influenciar positiva ou negativamente o desempenho das nossas apps. Neste sentido, recomendamos que se invista tempo no desenho de um bom modelo de dados que nos evitará bastantes dores de cabeça no futuro.
Algumas das mais valias de se implementar um modelo de dados prendem-se com:
• Facilidade em entender, manter e evoluir
• Poupar imenso tempo na criação do Front End
• Melhorar a performance
• Reutilização de componentes
De acordo com o autor Kimball, os primeiros passos na modelação de dados são:
• Escolher o processo de negócio a modelar
• Definir a granularidade do modelo de dados
• Unir os factos numa única tabela de factos
• Desnormalizar as dimensões e unir à tabela de factos
Vamos a um exemplo...
1. Processo de negócio: Vendas
2. Granularidade: Linhas de Fatura
3. Tabela de factos: F_Vendas
4. Dimensões: Cliente; Produto; Vendedor; Loja
Todos os developers de Qlik já se questionaram sobre qual o melhor modelo de dados, se Single Table, Star Schema ou Snowflake.
Sendo que o motor do Qlik assenta num modelo associativo em que automaticamente junta as tabelas todas pelos campos de nomes iguais, seria de esperar que o desenho Single Table fosse sempre o mais rápido...
Como é óbvio, a resposta depende em concreto de:
• Requisitos de negócio
• Complexidade do modelo de dados
• Quantidade de dados
Neste sentido, aconselhamos sempre a testar diversas opções de modelos de dados e não apenas escolher uma Single Table, pois a escolha do melhor modelo de dados depende de várias variáveis.
Na tabela seguinte demonstramos em termos de performance como se comportam os diferentes modelos de dados no Qlik:
Mais testes...
Para testarmos esta tabela, decidimos simular um conjunto de dados para averiguarmos o impacto de cada um dos modelos de dados, com as seguintes características:
Como podemos validar pela tabela de resultados a Single Table tem um melhor response time para o utilizador final, mas comprometemos toda a infraestrutura necessária. Este modelo de dados será ideal para modelos muito simples com poucas dimensões de análise.
O modelo Star Schema e Snowflake têm comportamentos semelhantes, neste sentido recomendamos o Start Schema pela sua simplicidade face ao snowflake, não descurando os primeiros principios apresentados no post sobre as vantagens de uma boa modelização.
Referências:
1. The Data Warehouse Toolkit : The Definitive Guide to Dimensional Modeling - Ralph Kimball, Margy Ross
2. QlikView 11 for Developers - Barry Harmsen