1
resposta

Especificando o join no script da carga de dados

Não entendi o script utilizando na carga de dados, especificando o tipo de join. No primeiro script, quando especificou as tabelas paises1 e paises2, foram criadas duas tabelas no modelo. Mas quando especifica o join e retira o nome da tabela paises2, é criada apenas 1 tabela com 3 colunas? Ficou confuso.

Por exemplo, no script abaixo, é criada apenas a tabela "Paises1" com 3 colunas? codigo_pais, nome_pais_1 e nome_pais_2?

[Paises1]:
Load * Inline
[
codigo_pais, nome_pais_1
001,Brasil
002,Argentina
003,Paraguai
];

Outer Join (Paises1)
Load * Inline
[
codigo_pais, nome_pais_2
001,Brasil
002,Argentina,
004,Uruguai
];

1 resposta

Ei! Tudo bem, Flavio?

Quando você carrega dados com um rótulo como [Paises1]: ou [Paises2]: antes do LOAD, o Qlik cria uma tabela independente no modelo de dados com esse nome.

Ao usar o Outer Join no Qlik Sense, ele não cria uma nova tabela para o segundo LOAD, mas combina os dados na tabela especificada entre parênteses (ex.: (Paises1)), modificando-a diretamente.
No script, o Outer Join entre Paises1 e a tabela inline Paises2 resulta em uma única tabela chamada Paises1, com as colunas codigo_pais, nome_pais_1 e nome_pais_2, incluindo todas as combinações possíveis de codigo_pais de ambas as tabelas, até mesmo os países presentes em apenas uma delas.

Por que isso acontece? O Qlik Sense processa o script de carga de forma sequencial: primeiro carrega a tabela inicial e, em seguida, aplica o join para mesclar a segunda tabela diretamente na primeira, otimizando o modelo de dados para melhor desempenho (evitando tabelas desnecessárias).

Conteúdos relacionados

Espero que isso ajude a esclarecer e qualquer dúvida, compartilhe no fórum.

Até mais, Flávio!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!