Accéder au contenu principal Passer au contenu complémentaire

Utilisation du mappage comme alternative à la jointure

Le préfixe Join est un excellent moyen d'associer plusieurs tables de données dans le modèle de données dans Qlik Sense.

Cette méthode présente toutefois l'inconvénient, avec des tables combinées devenues volumineuses, d'entraîner des problèmes de performances. Lorsque vous devez rechercher une valeur unique dans une autre table, l'utilisation du mappage est une alternative au préfixe Join. Cela vous évite de charger des données inutiles qui ralentissent les calculs et risquent de créer des erreurs, car les jointures peuvent modifier le nombre d'enregistrements dans les tables.

Une table de mappage se compose de deux colonnes : un champ de comparaison (en entrée) et un champ de valeur de mappage (en sortie).

Cet exemple illustre une table de commandes (Orders). Nous aimerions connaître les pays des clients, qui sont stockés dans la table de clients (Customers).

Table de données Orders
OrderIDOrderDateShipperIDFreightCustomerID
129872007-12-011273
129882007-12-011654
129892007-12-022322
129902007-12-031763
Table de données Customers
CustomerIDNomCountry...
1DataSalesSpain...
2BusinessCorpItaly...
3TechCoGermany...
4MobechoFrance...

Pour rechercher le pays (Country) d'un client, nous avons besoin d'une table de mappage similaire à la suivante :

Mapping table
CustomerIDCountry
1Spain
2Italy
3Germany
4France

La table de mappage, que nous avons nommée MapCustomerIDtoCountry, est définie dans le script de la façon suivante :

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

L'étape suivante consiste à appliquer le mappage au moyen de la fonction ApplyMap lors du chargement de la table de commandes :

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

Le troisième paramètre de la fonction ApplyMap sert à définir la valeur renvoyée lorsqu'aucune valeur n'est trouvée dans la table de mappage, Null() dans le cas présent.

La table résultante aura l'aspect suivant :

Table des résultats
OrderIDOrderDateShipperIDFreightCustomerIDCountry
129872007-12-011273Germany
129882007-12-011654France
129892007-12-022322Italy
129902007-12-031763Germany

En savoir plus

 

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !