O prefixo NoConcatenate força duas tabelas carregadas com conjuntos de campos idênticos a serem tratadas como tabelas internas à parte, quando do contrário seriam concatenadas automaticamente.
Sintaxe:
NoConcatenate(
loadstatement |
selectstatement )
Por padrão, se for carregada uma tabela que contenha um número idêntico de campos e nomes de campo correspondentes a uma tabela carregada anteriormente no script, o Qlik Sense concatenará automaticamente essas duas tabelas. Isso acontecerá mesmo que a segunda tabela tenha um nome diferente.
No entanto, se o prefixo do script NoConcatenate for incluído antes da instrução de carregamento ou da instrução de seleção da segunda tabela, essas duas tabelas serão carregadas separadamente.
Um caso de uso típico de NoConcatenate é quando você pode precisar criar uma cópia temporária de uma tabela para realizar algumas transformações temporárias nessa cópia, mantendo uma cópia dos dados originais. NoConcatenate garante que você possa fazer essa cópia sem adicioná-la implicitamente de volta à tabela de origem.
Configurações regionais
A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução SET DateFormat no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos.
As configurações regionais padrão nos aplicativos são baseadas nas configurações regionais do sistema do computador ou servidor em que o Qlik Sense está instalado. Se o servidor Qlik Sense que você está acessando estiver definido como Suécia, o Editor de carregamento de dados usará as configurações regionais suecas para datas, horas e moedas. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Sense. O Qlik Sense será exibido no mesmo idioma do navegador que você está usando.
Quando o script é executado, a tabela Sales é implicitamente concatenada na tabela Transactions existente pelo fato de os dois conjuntos de dados compartilharem um número idêntico de campos, com nomes de campo idênticos. Isso acontece apesar de a segunda tag de nome da tabela tentar nomear o conjunto de resultados ‘Sales’.
Examinando o registro de Progresso do carregamento de dados, é possível ver que o conjunto de dados de vendas está implicitamente concatenado.
Registro de progresso do carregamento de dados mostrando dados de Transactions sendo concatenados implicitamente.
Exemplo 2: Cenário de caso de uso
Visão geral
Nesse cenário de caso de uso, você tem:
Um conjunto de dados de transações com:
id
date
amount (em GBP)
Uma tabela de moedas com:
Taxas de conversão de USD para GBP
Um segundo conjunto de dados de transações com:
id
date
amount (em USD)
Você carregará cinco scripts em ordem sequencial.
O primeiro script de carregamento contém um conjunto de dados inicial com datas e valores em GBP que é enviado para uma tabela denominada Transactions.
O segundo script de carregamento contém:
Um segundo conjunto de dados com datas e valores em USD que é enviado para uma tabela denominada Transactions_in_USD.
O prefixo noconcatenate que é colocado antes da instrução de carregamento do conjunto de dados Transactions_in_USD para evitar a concatenação implícita.
O terceiro script de carregamento contém o prefixo join que será usado para criar uma taxa de câmbio entre GBP e USD na tabela Transactions_in_USD.
O quarto script de carregamento contém o prefixo concatenate que adicionará Transactions_in_USD à tabela inicial Transactions.
O quinto script de carregamento contém a instrução drop table que removerá a tabela Transactions_in_USD cujos dados foram concatenados à tabela Transactions.
Carregue os dados e acesse o Visualizador do modelo de dados. Selecione a tabela Transactions_in_USD, e você verá que cada registro existente tem um valor de campo de “rate” de 0,7.
Quarto script de carregamento
Usando carregamento residente, esse script de carregamento concatenará a tabela Transactions_in_USD com a tabela Transactions depois de converter os valores em USD.
Carregue os dados e vá até a tabela. Você verá novas entradas com valores em GBP das linhas de oito a quatorze.
Resultados do quarto script de carregamento
id
date
amount
1
12/30/2018
23.56
2
12/07/2018
556.31
3
12/16/2018
5.75
4
12/22/2018
125.00
5
12/22/2018
484.21
6
12/22/2018
59.18
7
12/23/2018
177.42
8
01/01/2019
114.989
8
01/01/2019
164.27
9
01/03/2019
268.80
9
01/03/2019
384.00
10
01/06/2019
18.074
10
01/06/2019
25.82
11
01/09/2019
218.40
11
01/09/2019
312.00
12
01/15/2019
3.192
12
01/15/2019
4.56
13
01/16/2019
63.168
13
01/16/2019
90.24
14
01/18/2019
13.524
14
01/18/2019
19.32
Quinto script de carregamento
Esse script de carregamento eliminará as entradas duplicadas da tabela de resultados do quarto script de carregamento, deixando apenas entradas com valores em GBP.
drop tables Transactions_in_USD;
Resultados
Carregue os dados e vá até a tabela.
Resultados do quinto script de carregamento
id
date
amount
1
12/30/2018
23.56
2
12/07/2018
556.31
3
12/16/2018
5.75
4
12/22/2018
125.00
5
12/22/2018
484.21
6
12/22/2018
59.18
7
12/23/2018
177.42
8
01/01/2019
114.989
9
01/03/2019
268.80
10
01/06/2019
18.074
11
01/09/2019
218.40
12
01/15/2019
3.192
13
01/16/2019
63.168
14
01/18/2019
13.524
Após o carregamento do quinto script de carregamento, a tabela de resultados mostra todas as quatorze transações que existiam em ambos os conjuntos de dados de transações. No entanto, as transações de 8 a 14 tiveram seus valores convertidos em GBP.
Se removermos o prefixo NoConcatenate usado antes de Transactions_in_USD no segundo script de carregamento, o script falhará com o erro: “Tabela Transactions_in_USD não encontrada”. Isso ocorre porque a tabela Transactions_in_USD teria sido concatenada automaticamente com a tabela Transactions original.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!