Ładowanie danych z wcześniej załadowanej tabeli
Istnieją dwa sposoby ładowania i przekształcania danych z tabeli, która została już załadowana.
- Resident LOAD — w tym przypadku w celu załadowania nowej tabeli używany jest predykat Resident w kolejnej instrukcji LOAD.
- Poprzedzające polecenie LOAD — w tym przypadku ładowanie odbywa się z poprzedzającej instrukcji LOAD lub SELECT bez określania źródła.
Resident czy poprzedzające LOAD?
W większości przypadków można uzyskać te same wyniki przy użyciu dowolnej z tych metod. Poprzedzające polecenie LOAD jest zwykle szybszą opcją, ale istnieją przypadki, gdy konieczne jest użycie polecenia Resident LOAD:
- Jeśli klauzula Order_by będzie używana do sortowania rekordów przed przetworzeniem instrukcji LOAD.
- Aby użyć dowolnego z poniższych prefiksów, kiedy to poprzedzająca instrukcja LOAD nie jest obsługiwana.
- Crosstable
- Join
- Intervalmatch
Resident LOAD
Aby załadować dane z wcześniej załadowanej tabeli, można użyć predykatu Resident w instrukcji LOAD. Jest to przydatne, gdy trzeba wykonać obliczenia na danych załadowanych przy użyciu instrukcji SELECT, kiedy nie ma możliwości skorzystania z funkcji Qlik Sense, takich jak przetwarzanie dat lub wartości liczbowych.
Przykład:
W tym przykładzie interpretacja danych jest przeprowadzana w ładowaniu Resident, ponieważ nie można jej wykonać w początkowym ładowaniu Crosstable LOAD.
Poprzedzające polecenie LOAD
Funkcja poprzedzającego polecenia load umożliwia ładowanie tabeli w jednej operacji przy jednoczesnym określeniu kilku kolejnych transformacji. Zasadniczo jest to instrukcja LOAD ładowana z instrukcji LOAD lub SELECT bez określania kwalifikatora źródłowego, takiego jak From lub Resident, jak to się zwykle dzieje. W ten sposób można skumulować dowolną liczbę instrukcji LOAD. Instrukcja na dole zostanie oceniona jako pierwsza, następnie zostanie oceniona instrukcja znajdująca się powyżej aż do instrukcji na samej górze.
Ten sam wynik można uzyskać przy użyciu klauzuli Resident, ale w większości przypadków poprzedzające polecenie LOAD będzie działać szybciej.
Inną zaletą poprzedzającego ładowania jest przechowywanie obliczenia w jednym miejscu i możliwość jego ponownego wykorzystania w instrukcjach LOAD umieszczonych wyżej.
Przykład 1: Przekształcanie danych ładowanych przy użyciu instrukcji SELECT
W przypadku ładowania danych z bazy danych przy użyciu instrukcji SELECT nie można używać funkcji aplikacji Qlik Sense do interpretowania danych w instrukcji SELECT. Rozwiązaniem jest dodanie instrukcji LOAD, gdy wykonuje się przekształcenie danych, powyżej instrukcji SELECT.
W tym przykładzie interpretujemy datę przechowywaną jako ciąg znaków przy użyciu funkcji Date# aplikacji Qlik Sense w instrukcji LOAD, przy użyciu poprzedniej instrukcji SELECT jako źródła.
Przykład 2: Upraszczanie skryptu przez ponowne użycie obliczeń
W tym przykładzie obliczenie jest wykorzystywane w skrypcie więcej niż raz:
Wprowadzając obliczenie w pierwszym uruchomieniu, możemy użyć go ponownie w funkcji Age w poprzedzającej funkcji LOAD:
Ograniczenia dotyczące poprzedzających poleceń Load
- Następujących prefiksów nie można używać w poprzedzającej instrukcji LOAD: Join, Crosstable i Intervalmatch.
- Jeśli używane jest polecenie distinct w celu ładowania unikatowych rekordów, wówczas polecenie distinct należy umieścić w pierwszej instrukcji Load, ponieważ distinct wpływa tylko na tabelę docelową.