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 Qlik Sense 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ć kraje klientów, którzy jest zapisani w tabeli klientów (Customers).

Tabela danych Orders.
OrderIDOrderDateShipperIDFreightCustomerID
129872007-12-011273
129882007-12-011654
129892007-12-022322
129902007-12-031763
Tabela danych Customers.
CustomerIDNazwaKraj...
1DataSalesSpain...
2BusinessCorpItaly...
3TechCoGermany...
4MobechoFrance...

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

Tabela mapowania
CustomerIDCountry
1Spain
2Italy
3Germany
4France

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: LOAD *, 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:

Tabela wynikowa
OrderIDOrderDateShipperIDFreightCustomerIDCountry
129872007-12-011273Germany
129882007-12-011654France
129892007-12-022322Italy
129902007-12-031763Germany

Dowiedz się więcej

 

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ć!