Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Base de dados histórico, como resolver?

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?

Labels (1)
1 Solution

Accepted Solutions
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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....

2015-03-11 20_24_45-C__OneDrive_Documentos_Chave sintetica.qvw.png

que seria

2015-03-11 20_25_05-C__OneDrive_Documentos_Chave sintetica.qvw.png

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

];

2015-03-11 20_30_40-C__OneDrive_Documentos_Chave sintetica.qvw.png

Segue um material com melhores explicacoes.....especialmente paginas 12 a 21...

AMF

furtado@farolbi.com.br

View solution in original post

3 Replies
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

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....

2015-03-11 20_24_45-C__OneDrive_Documentos_Chave sintetica.qvw.png

que seria

2015-03-11 20_25_05-C__OneDrive_Documentos_Chave sintetica.qvw.png

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

];

2015-03-11 20_30_40-C__OneDrive_Documentos_Chave sintetica.qvw.png

Segue um material com melhores explicacoes.....especialmente paginas 12 a 21...

AMF

furtado@farolbi.com.br
nicolett_yuri

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.

nicolett_yuri

Twister8, caso o problema tenha sido resolvido, feche o tópico