Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde,
Por favor podem me ajudar em uma questão técnica:
Minha nuvem de dados advém de um banco de dados, ou seja, tenho alguns 'Selects' entre as tabelas que acabam criando chaves.
Preciso adicionar a essa nuvem de dados informações do tipo histórico (Excel) porém tenho chaves sintéticas ao fazer isso, pois alem das chaves da base histórico que são criadas para os 'Selects', tenho chaves entre os 'Selects'.
Chave sintética: Mais de uma campo em uma tabela que se relacionam com mais de uma tabela, o conceito é esse?
Pensei em criar uma chave com todos os campos da base de histórico, e dentro de cada 'Select' criar essa chave, e para os campos que não atenderem o select colocaria na chave o valor de -1.
Qual seria a melhor estrategia?
Obrigado
yuri.nicolett pode me ajudar?
Boa noite. Vou tentar te esclarecer.....
Chave sintetica seriam campos iguais em duas ou mais tabelas aonde o Qlik cria uma tabela no meio delas com as ligacoes......
Vejamos o exemplo abaixo:
Tabela_A:
LOAD * INLINE [
Campo1, Campo2,Campo3
A , B ,C
A , C ,D
A , D ,E
];
Tabela_B:
LOAD * INLINE [
Campo1, Campo2,Campo4
A , B ,1
A , C ,2
A , D ,3
];
Este script vai criar no modelo uma chave sintetica....
que seria
Então, para evitar isto existem algumas formas
- Criar chave unindo campos
- Renomear campo
- unir as tabelas (ex: left join ou concatenate)
- linked table
Exemplo
Tabela_A:
LOAD
Campo1 & Campo2 as NovoCampo,
Campo1,
Campo2,
Campo3;
LOAD * INLINE [
Campo1, Campo2,Campo3
A , B ,C
A , C ,D
A , D ,E
];
Tabela_B:
LOAD
Campo1 & Campo2 as NovoCampo,
Campo4;
LOAD * INLINE [
Campo1, Campo2,Campo4
A , B ,1
A , C ,2
A , D ,3
];
Segue um material com melhores explicacoes.....especialmente paginas 12 a 21...
AMF
Boa noite. Vou tentar te esclarecer.....
Chave sintetica seriam campos iguais em duas ou mais tabelas aonde o Qlik cria uma tabela no meio delas com as ligacoes......
Vejamos o exemplo abaixo:
Tabela_A:
LOAD * INLINE [
Campo1, Campo2,Campo3
A , B ,C
A , C ,D
A , D ,E
];
Tabela_B:
LOAD * INLINE [
Campo1, Campo2,Campo4
A , B ,1
A , C ,2
A , D ,3
];
Este script vai criar no modelo uma chave sintetica....
que seria
Então, para evitar isto existem algumas formas
- Criar chave unindo campos
- Renomear campo
- unir as tabelas (ex: left join ou concatenate)
- linked table
Exemplo
Tabela_A:
LOAD
Campo1 & Campo2 as NovoCampo,
Campo1,
Campo2,
Campo3;
LOAD * INLINE [
Campo1, Campo2,Campo3
A , B ,C
A , C ,D
A , D ,E
];
Tabela_B:
LOAD
Campo1 & Campo2 as NovoCampo,
Campo4;
LOAD * INLINE [
Campo1, Campo2,Campo4
A , B ,1
A , C ,2
A , D ,3
];
Segue um material com melhores explicacoes.....especialmente paginas 12 a 21...
AMF
A resposta do Alessandro esta muito boa. Pode seguir que é o caminho correto.
Apenas um complemento: É sempre bom evitar o uso de chave sintética, pois você perde o controle da quantidade de registros que serão criados nesta tabela (essa ação é definida pelo próprio Qv e geralmente ele faz um produto cartesiano entre todos os campos da chave entre as duas tabelas).
Chave sintética não quer dizer que é um problema, mas pode se tornar. Por esta razão sempre evite.
Twister8, caso o problema tenha sido resolvido, feche o tópico