Ir para conteúdo principal Pular para conteúdo complementar

Usando o mapeamento como uma alternativa à junção

O prefixo Join no QlikView é uma ótima maneira de combinar várias tabelas de dados no modelo de dados. Uma desvantagem é que as tabelas combinadas podem se tornar grandes e criar problemas de desempenho. Uma alternativa ao Join, nas situações em que você precisa analisar um único valor de outra tabela, é usar o mapeamento. Isso pode prevenir o carregamento de dados desnecessários, que atrasa os cálculos e pode criar erros de cálculo, porque as junções podem mudar o número de registros nas tabelas.

A tabela de mapeamento consiste em duas colunas: um campo de comparação (entrada) e um campo de valor de mapeamento (saída).

Nesse exemplo, temos uma tabela de pedidos (Orders) e precisamos saber qual é o país do cliente, que está armazenado na tabela de clientes (Customers).

Orders data table
OrderID OrderDate ShipperID Freight CustomerID
12987 2007-12-01 1 27 3
12988 2007-12-01 1 65 4
12989 2007-12-02 2 32 2
12990 2007-12-03 1 76 3
Customers data table
CustomerID Name Country ...
1 DataSales Spain ...
2 BusinessCorp Italy ...
3 TechCo Germany ...
4 Mobecho France ...

A fim de procurar o país (Country) de um cliente, precisamos de uma tabela de mapeamento que teria a seguinte aparência:

Country mapping table
CustomerID Country
1 Spain
2 Italy
3 Germany
4 France

A tabela de mapeamento, que nomeamos para MapCustomerIDtoCountry, é definida no script da seguinte forma:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

O próximo passo é aplicar o mapeamento, utilizando a função ApplyMap ao carregar a tabela de pedidos:

Orders: S *, ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country From Orders ;

O terceiro parâmetro da função ApplyMap é usado para definir o que deve ser retornado quando o valor não for encontrado na tabela de mapeamento, neste caso Null().

A tabela resultante teria a seguinte aparência:

Result mapping table
OrderID OrderDate ShipperID Freight CustomerID Country
12987 2007-12-01 1 27 3 Germany
12988 2007-12-01 1 65 4 France
12989 2007-12-02 2 32 2 Italy
12990 2007-12-03 1 76 3 Germany

Esta página ajudou?

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!

Participe do Programa de Modernização do Analytics

Remove banner from view

Modernize sem comprometer seus valiosos aplicativos QlikView com o Programa de Modernização do Analytics. Clique aqui para mais informações ou entre em contato: ampquestions@qlik.com