Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Korzystanie z funkcji mapowania jako alternatywy dla funkcji sprzężenia

Prefiks Join w aplikacji QlikView to wydajny sposób łączenia kilku tabel danych w model danych. Jedyna wada polega na tym, że połączone tabele mogą stać się duże i spowalniać pracę. Alternatywą wobec prefiksu Join w sytuacjach, gdy wykonuje się wyszukiwanie wartości pojedynczej w innej tabeli, jest użycie mapowania. Pozwala to uniknąć ładowania niepotrzebnych danych, które spowalniają obliczenia i mogą spowodować błędy w obliczeniach, ponieważ sprzężenia zmieniają niekiedy liczbę rekordów w tabelach.

Tabela mapowania składa się z dwóch kolumn: pola porównania (wejściowego) i pola wartości mapowania (wyjściowego).

Na tym przykładzie mamy tabelę zamówień (Orders) i chcemy znać kraj klienta, który jest zapisany w tabeli klientów (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 ...

Aby wyszukać kraj (Country) klienta, potrzebujemy tabeli mapowania, która wygląda następująco:

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

Tabela mapowania, którą nazwiemy MapCustomerIDtoCountry, jest określana w skrypcie w następujący sposób:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

Następnym krokiem jest zastosowanie mapowania przy użyciu funkcji ApplyMap podczas ładowania tabeli z zamówieniami:

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

Trzeci parametr funkcji ApplyMap służy do definiowania, co ma być zwracane, gdy wartość nie zostanie znaleziona w tabeli mapowania (w tym przypadku Null()).

Otrzymana tabela będzie wyglądać następująco:

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

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!

Dołącz do Programu Modernizacji Analityki

Remove banner from view

Przeprowadź modernizację bez szkody dla Twoich cennych aplikacji QlikView za pomocą programu Analytics Modernization Program. Kliknij tutaj aby uzyskać więcej informacji lub skontaktuj się z nami: ampquestions@qlik.com