Carregando dados de uma tabela carregada anteriormente
Existem duas maneiras de carregar e transformar dados de uma tabela que já foi carregada.
- Resident LOAD - em que você usa o predicado Resident em um comando LOAD subsequente ao carregamento de uma nova tabela.
- Antes do carregamento - no qual você carrega a partir do comando LOAD ou SELECT anterior, sem especificar uma fonte.
Resident ou LOAD precedente?
Na maioria dos casos, o mesmo resultado pode ser obtido usando qualquer um desses métodos. Um LOAD anterior é geralmente a opção mais rápida, mas há alguns casos que, em vez dela, você precisa usar um Resident LOAD:
- Se você quiser usar a cláusula Order_by para classificar os registros antes de processar a declaração LOAD.
- Se você quiser usar qualquer um dos seguintes prefixos, casos em que o LOAD precedente não é suportado:
- Crosstable
- Join
- Intervalmatch
Resident LOAD
Você pode usar o predicado Resident em um comando LOAD para carregar dados de uma tabela anteriormente carregada. Isso será útil quando você quiser fazer cálculos nos dados carregados com um comando SELECT que não oferece a opção de utilizar as funções do Qlik Sense, como manipulação do valor de data ou numérico.
Exemplo:
Nesse exemplo, a interpretação dos dados é realizada no carregamento Resident, uma vez que não pode ser feito no Crosstable LOAD inicial.
Carregamento precedente
O recurso de carregamento precedente permite carregar uma tabela em uma única etapa, mas ainda define várias transformações sucessivas. Basicamente, é uma instrução LOAD carregada da instrução LOAD ou SELECT abaixo, sem especificar um qualificador de origem, como From ou Resident, como você faria normalmente. É possível empilhar qualquer número de instruções LOAD dessa maneira. A declaração no final será avaliada primeiro, seguida da declaração acima e assim por diante até que a declaração superior seja avaliada.
Você pode conseguir o mesmo resultado usando Resident, mas na maioria dos casos, um LOAD precedente será mais rápido.
Outra vantagem do load precedente é que você pode manter um cálculo em um lugar e reutilizá-lo em comandos LOAD colocados acima.
Exemplo 1: Transformando os dados carregados por uma cálculo SELECT
Se você carregar dados de um banco de dados usando um comando SELECT, não será possível usar as funções do Qlik Sense para interpretar os dados no comando SELECT. A solução é adicionar um comando LOAD, no qual você executará a transformação de dados, acima da declaração SELECT.
Neste exemplo, interpretamos uma data armazenada como um caractere usando a função Date# do Qlik Sense em um comando LOAD, usando o comando SELECT precedente como fonte.
Exemplo 2: Simplificando o seu script reutilizando cálculos
Neste exemplo, usamos um cálculo mais de uma vez no script:
Ao introduzir o cálculo em uma primeira passagem, podemos reutilizá-lo na função Age em um LOAD precedente:
Limitações de cargas precedentes
- Os seguintes prefixos não podem ser usados em combinação com o LOAD precedente: Join, Crosstable e Intervalmatch.
- Se você estiver usando distinct para carregar registros exclusivos, precisará colocar distinct na primeira instrução de carga, pois distinctafeta apenas a tabela de destino.