Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Mapping als Alternative zu Joining

Der Zusatz Join bietet in Qlik Sense eine leistungsstarke Funktion, die es ermöglicht, mehrere Datentabellen in einem Datenmodell zu kombinieren.

Ein Nachteil davon ist jedoch, dass die kombinierten Tabellen sehr groß werden können, worunter möglicherweise die Performance leidet. Wenn Sie einen einzelnen Wert aus einer anderen Tabelle aufrufen müssen, ist Mapping eine Alternative zu Join. Dies kann Ihnen das Laden überflüssiger Daten ersparen, die Ihre Berechnungen nur unnötig verlangsamen und potenziell zu Berechnungsfehlern führen können, da sich durch Join-Befehle die Anzahl der Datensätze in den Tabellen ändern kann.

Eine Mapping-Tabelle besteht aus zwei Spalten, einem Vergleichsfeld (Eingabe) und einem Mapping-Feldwert (Ausgabe).

Diesem Beispiel liegt eine Tabelle mit Bestellungen (Orders) zugrunde und wir möchten erfahren, in welchem Land die jeweiligen Kunden beheimatet sind. Diese Information ist in der Kundentabelle (Customers) gespeichert.

Orders-Datentabelle
OrderIDOrderDateShipperIDFreightCustomerID
129872007-12-011273
129882007-12-011654
129892007-12-022322
129902007-12-031763
Customers-Datentabelle
CustomerIDNameLand...
1DataSalesSpanien...
2BusinessCorpItalien...
3TechCoDeutschland...
4MobechoFrankreich...

Zum Abrufen des Landes (Country) eines Kunden ist eine Mapping-Tabelle erforderlich, die folgendermaßen aussieht:

Mapping-Tabelle
CustomerIDLand
1Spanien
2Italien
3Deutschland
4Frankreich

Die Mapping-Tabelle mit dem Namen MapCustomerIDtoCountry ist im Skript folgendermaßen definiert:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

Im nächsten Schritt wird das Mapping mithilfe der Funktion ApplyMap beim Laden der Tabelle mit den Bestellungen übernommen:

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

Anhand des dritten Parameters der Funktion ApplyMap wird der Wert festgelegt, der ausgegeben wird, wenn der Wert in der Mapping-Tabelle nicht gefunden wird, wie in diesem Fall Null().

Die sich ergebende Tabelle sieht folgendermaßen aus:

Ergebnistabelle
OrderIDOrderDateShipperIDFreightCustomerIDLand
129872007-12-011273Deutschland
129882007-12-011654Frankreich
129892007-12-022322Italien
129902007-12-031763Deutschland

Weitere Informationen

 

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!