Desafios típicos
- Quais os desafios que você encontrou na modelagem de dados básico em QlikView?
- Os mais comuns são:
–Chave sintética
–Referência circular
CHAVES SINTÉTICAS
•Quando existe mais do que um campo em comum entre tabelas
Se carregar como está, então…
QlikView criará chaves sintéticas
O que é uma chave sintética?
- É um campo que contém todas as combinações possíveis de campos comuns entre as tabelas
A chave sintética é ruim?
- Não, mas tente evitá-lo. Ela é gerada pelo QlikView. Isso significa que você pode perder o controle sobre ele quando você tem muitas delas.
Quantas maneiras existem de resolver uma chave sintética?
- Um ANSI JOIN
- Uma chave concatenada
- Tabelas Concatenadas
- Uma tabela de Link
Como evitar as chaves sintéticas?
- Juntar as tabelas pelos campos comuns
Usando o nosso exemplo:
Sales:
Load
Year,
Month,
[Customer Number],
[Sales Amount]
FROM Sales;
LEFT JOIN Load
Year,
Month,
[Customer Number],
[Budget Amount]
FROM Budget;
Customer:
Load
[Customer Number],
[Customer Name]
FROM Customer;
Problema!
- Não obtendo todos os dados da tabela do Budget de resultando em que faltam meses para o resto do ano
- Mesmo se juntar a tabela de vendas à tabela do Budget, ainda faltam atividades dos clientes que não estão orçados
- Pode se tornar um problema se as tabelas não tem um "um-para-um".
Como evitar as chaves sintéticas?
- Crie uma chave própria concatenando os campos comuns
Year & '_' & Month & '_' & [Customer Number] as Key
Mesmo problema de antes!
Como evitar as chaves sintéticas?
- Combinar (concatenar) as tabelas para ter todos os valores possíveis
Sales:
Load
Year,
Month,
[Customer Number],
[Sales Amount],
Null() as [Budget Amount]
FROM Sales;
Budget:
Load
Year,
Month,
[Customer Number],
Null() as [Sales Amount],
[Budget Amount]
FROM Budget;
Nota:
- Quando QlikView encontra várias tabelas com exatamente os mesmos campos, ele os combina em uma tabela automaticamente.
- Criar campos vazios (campos fictícios) usando a função null() para que faltam em cada tabela
O que é Forced Concatenate?
- QlikView cria campos vazios automaticamente portanto não há necessidade de criar campos fictícios manualmente
Sales:
Load
Year,
Month,
[Customer Number],
[Sales Amount]
FROM Sales;
Budget:
CONCATENATE Load
Year,
Month,
[Customer Number],
[Budget Amount]
FROM Budget;
Nota:
- Este script vai acabar com duas tabelas. É a mesma estrutura do método Auto-Concatenate
Qual é o benefício de combinar as tabelas em ums?
- Garantia de manter todos os dados em uma tabela.
Qual é o benefício de usar Auto-Concatenate?
- Quando alguns campos são erros ortográficos, ou quando alguns campos são deixados de fora por engano, então eles poderiam ser facilmente identificados (chaves sintéticas irão aparecer).
Usamos o método de concatenação com frequencia?
- Sim. É o método QlikView mais utilizado para resolver as chaves sintéticas.
Existe uma maneira de evitar a concatenação automática?
- Sim. Use a sintaxe "Load Noconcatenate" em vez de "Load". Permite melhor controle.
Continua...
Nenhum comentário:
Postar um comentário