Vai al contenuto principale Passa a contenuto complementare

Utilizzo del mapping come alternativa all'unione

Il prefisso Join in Qlik Sense è un metodo efficace per la combinazione di più tabelle dati nel modello dati.

Uno dei suoi svantaggi è che le dimensioni delle tabelle combinate possono diventare eccessive creando problemi di prestazioni. Una soluzione alternativa a Join nei casi in cui occorra ricercare un unico valore in un'altra tabella è quella di utilizzare il mapping. Ciò evita di dover caricare dati superflui che rallentano i calcoli e possono creare errori di calcolo, dato che le unioni possono modificare il numero di record nelle tabelle.

Una tabella di mapping è composta da due colonne; un campo di confronto (input) e un campo con il valore del mapping (output).

In questo esempio, occorre presentare una tabella di ordini (Orders) ed è necessario conoscere i paesi dei clienti, memorizzati nella tabella dei clienti (Customers).

Tabella dati Orders
IDOrdineDataOrdineShipperIDSpedizioneCustomerID
129872007-12-011273
129882007-12-011654
129892007-12-022322
129902007-12-031763
Tabella dati Customers
CustomerIDNomePaese...
1DatiVenditeSpagna...
2BusinessCorpItalia...
3TechCoGermania...
4MobechoFrancia...

Per poter ricercare il paese (Country) di un cliente, occorre una tabella di mapping come quella seguente:

Tabella di mapping
CustomerIDPaese
1Spagna
2Italia
3Germania
4Francia

La tabella di mapping, denominata MapCustomerIDtoCountry, viene definita nello script nel modo seguente:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

Il passaggio successivo è quello di applicare il mapping mediante la funzione ApplyMap durante il caricamento della tabella dell'ordine:

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

Il terzo parametro della funzione ApplyMap viene utilizzato per definire i valori da restituire quando il valore non è stato trovato nella tabella di mapping, in questo caso Null().

La tabella risultante avrà l'aspetto seguente:

Tabella risultante
IDOrdineDataOrdineShipperIDSpedizioneCustomerIDPaese
129872007-12-011273Germania
129882007-12-011654Francia
129892007-12-022322Italia
129902007-12-031763Germania

Ulteriori informazioni

 

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – ti pregiamo di farcelo sapere!