Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Mapping als Alternative zu Joining

Der Zusatz Join bietet in QlikView 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 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 ...

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

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

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: S *, ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country From Orders ;

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

Die sich ergebende Tabelle sieht folgendermaßen aus:

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

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!

Nehmen Sie am Analyse-Modernisierungsprogramm teil

Remove banner from view

Modernisieren Sie mit dem Analyse-Modernisierungsprogramm, ohne Ihre wertvollen QlikView-Apps zu gefährden. Klicken Sie hier für weitere Informationen oder kontaktieren Sie uns: ampquestions@qlik.com