Snowflake vs. Star Schema vs. Single Table - Qlik

By:
Posted: October 22, 2015
Category: Forum BI , Qlik , QlikSense , QlikView
Comments: 0


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:









Nota: para se avaliar o response time aumentámos para 50.000.000 as linhas na tabela de factos, chegando ao limite da RAM disponível.




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


Gostou do post? Compartilhe!

Related Posts