“As fontes e os dados terão de ser manipulados dentro do script para entregar o modelo de dados que melhor se adapte, para ambos performance e usabilidade importam.
Concatenar ou usar Tabela de Links?
Para a maioria dos cenários a Concatenação é a melhor solução. É fácil de gerenciar, fácil de entender e demanda pouco esforço de desenvolvimento para pôr em prática.
- Concatenação vem com uma chave de restrição.
Ela não garante a completa rastreabilidade da transação .
Selecionando SalesID, não serão correlacionados os registros da tabela Budget. Isto não é rigorosamente verdade, mas pode ser verdade em muitos cenários, e, portanto, poderia ser destacada como uma restrição.
- Tabelas de Link são um modelo mais tradicional, onde uma tabela de fatos substituto (link) é posto em prática para resolver todas as associações entre as tabelas de fatos e tabelas de dimensões
- Isso pode parecer à primeira vista como uma solução à prova de bala para utilizar sempre - não é verdade.
- O positivo das tabelas de link é resolver os relacionamentos como qualquer outra tabela faria. Isso dá a rastreabilidade completa à transação, mesmo dados implicitamente associados via outra tabela fato ficam rastreáveis (ao selecionar a tabela SalesCustomer - você verá os registros da tabela Orçamento associados).
Inerentemente complexo de construir. Gerar a tabela no link não é tarefa fácil. Há consideravelmente mais verificações a introduzir no código para produzir o modelo.
A tabela de link funciona como uma tabela desnormalizada, ou seja, que representa as associações de alto nível como a tabela Budget no Mês, ao nível de Grupo exigiria desnormalização para o menor denominador comum com outras fatos. Tabela Sales de Products e Data. Isto dá origem a um potencial grande volume de ligações na tabela de link necessário para resolver o mês e no Grupo correlacionando dados e produtos.
Outra desvantagem não é exclusivo das Tabelas de Link – é igualmente um desafio ao concatenar tabelas de fatos.
- Esquemas Estrelas & Snow Flake funcionam melhor no QlikView. Tabelas relacionais tendem a ter ciclos (referências circulares) e, portanto, não funcionam corretamente quando colocados em QlikView.
- Os quatro principais diretrizes para a modelagem são:
- Apontar para um esquema em estrela. Quebrar as tabelas é bom, mas tente mantê-lo ao mínimo, pois pode prejudicar o desempenho por ter muitas tabelas penduradas.
- Quando desnormalizar dados (roll up) a fim de reduzir a quebra, pare de desnormalizar quando isto significar replicar registro em milhões de vezes - os ponteiros de memória necessária para armazenar o mesmo valor de uma enorme quantidade se torna significativa
- Para soluções de multi-fato, analise os requisitos para ver se uma solução de tabelas concatenadas atende às necessidades. Se o registro de rastreabilidade transação é crucial, ao invés de análise por meio de associação de dimensões comuns, ai sim, analisar se a tabela de ligação serviria. Se nenhum modelo é uma boa opção, um modelo de dados personalizado deve ser montado através de uma análise cuidadosa das necessidades. Ele pode incorporar elementos de ambos link e tabelas concatenadas.
- Em ambientes maiores seja com mais volume de dados ou maior complexidade ou a quantidade de usuários concorrentes, o design eficiente num documento QlikView se torna cada vez mais importante. Para este objetivo, por favor utilize as ferramentas à sua disposição de teste de desempenho.
Observações
- NÃO existe uma melhor arquitetura.
- A Arquitetura dependente totalmente dos Requisitos
- Da mesma forma Melhores Práticas não são Universais
- Aplicar as melhores práticas de acordo com cada situação
Considerações Finais…
- Se os usuários finais rejeitarem o seu aplicativo então você falhou, independentemente da sua execução técnica.
- As necessidades dos usuários finais e a experiência do usuário final deve sempre ditar a sua abordagem para o desenvolvimento de aplicações QlikView, incluindo modelagem de dados.
- Muitas técnicas de data warehousing são diretamente aplicáveis a modelagem de dados QlikView.
- Modelagem de dados está em curso há muitos anos e muitas mentes brilhantes têm contribuído para o campo, não precisamos reinventar a roda.