# Przekształcanie danych

W narzędziu Edytor ładowania danych można przekształcać dane i manipulować nimi na wiele różnych sposobów.

Jedną z zalet manipulowania danych jest możliwość wyboru do ładowania tylko podzbioru danych z pliku, np. kilku kolumn z tabeli, co ułatwia obsługę danych. Dane można również załadować więcej niż raz, aby podzielić dane pierwotne na kilka nowych tabel logicznych. Możliwe jest również załadowanie danych z więcej niż jednego źródła i scalenie ich w jedną tabelę w aplikacji.

W tym temacie zostanie wykonane podstawowe przekształcenie danych przy użyciu opcji Resident load, a następnie opcji Preceding load.

## Resident LOAD

Aby załadować dane z wcześniej załadowanej tabeli, można użyć kwalifikatora źródła Resident w instrukcji LOAD. Jest to również przydatne, gdy chcesz wykonać obliczenia na danych załadowanych za pomocą instrukcji SELECT, w której nie ma możliwości użycia funkcji skryptowych, takich jak obsługa wartości daty lub wartości liczbowych.

W tym przykładzie zostanie utworzona nowa tabela o nazwie Sales\_Buckets, a następnie za pomocą opcji Table1resident load zostaną załadowane dane z . W tabeli Sales\_Buckets zostanie utworzona zmienna o nazwie quantity\_threshold, a następnie za pomocą instrukcji Where zostaną załadowane tylko dane spełniające wymagania progowe.

1. Otwórz Edytor ładowania danych w Scripting Tutorial aplikacji.
2. Kliknij kartę Sales.
3. Dodaj następujący kod na końcu skryptu:
   ```
   SET quantity_threshold = 12000;

   					Sales_Buckets:
   					LOAD
   					"Sales Qty" as "High_Quantity",
   					"Item Description" as "Item",
   					"Customer Number" as "Customer"
   					Resident Table1
   					Where ("Sales Qty" > $(quantity_threshold));
   				
   ```

   Skrypt powinien wyglądać następująco:

   Okno skryptu ładowania ze skryptem tworzącym nową tabelę o nazwie Sales\_Buckets

   Okno skryptu ładowania ze skryptem tworzącym nową tabelę o nazwie Sales\_Buckets

   Okno skryptu ładowania ze skryptem tworzącym nową tabelę o nazwie Sales\_BucketsSales\_Buckets ![Okno skryptu ładowania ze skryptem tworzącym nową tabelę o nazwie Sales_Buckets.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-load_resident_threshold-cloud-rev.png)
4. Kliknij polecenie Ładuj dane.
5. Otwórz Przeglądarkę modelu danych. Utworzona została nowa tabela o nazwie Sales\_Buckets z danymi załadowanymi zgodnie z polami i wartościami progowymi określonymi przez użytkownika.

   Tabela Sales\_Buckets w przeglądarce modelu danych

   Tabela Sales\_Buckets w przeglądarce modelu danych

   Tabela Sales\_BucketsSales\_Buckets w przeglądarce modelu danych ![Tabela Sales_Buckets w przeglądarce modelu danych.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_sales_buckets_table.png)
6. Dodaj dane do tabeli w aplikacji. Dodaj Item i Customer jako wymiary. Dodaj High\_Quantity jako wymiar zagregowany w Count, a następnie zagregowany ponownie w Sum. Następnie dodaj nową kolumnę jako miarę z następującym wzorem:
   ```
   = Sum(High_Quantity) / Count(High_Quantity)
   ```

   Nowa miara ze wzorem

   Nowa miara ze wzorem

   Nowa miara ze wzorem ![Nowa miara ze wzorem.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_load-resident-chart-expression.png)

   W tabeli widać, że Customer 10025737 dokonał 4 dużych zamówień suszonych grzybów High Top Dried Mushrooms ze średnią ilością 14 800 sztuk. Aby posortować dane w polach, zamknij tryb Edycji klikając przycisk Gotowe.

   Tabela przedstawiająca klientów, którzy złożyli duże zamówienia

   Tabela przedstawiająca klientów, którzy złożyli duże zamówienia

   Tabela przedstawiająca klientów, którzy złożyli duże zamówienia ![Tabela przedstawiająca klientów, którzy złożyli duże zamówienia.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-load-resident-threshold-table.png)
7. Teraz, po zakończeniu tego przykładu, opatrz komentarzem skrypt zmiennej quantity\_threshold i tabeli Sales\_Buckets.

   Zakończenie skryptu powinno wyglądać w następujący sposób:

   Skomentowany skrypt

   Skomentowany skrypt

   Skomentowany skrypt ![Skrypt umieszczony w komentarzu.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial-sales_buckets_commented-cloud.png)

## Instrukcja preceding LOAD

Instrukcja preceding load pozwala na wykonywanie przekształceń i stosowanie filtrów w celu ładowania danych w jednym przebiegu. 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 samym dole zostanie obliczona jako pierwsza, następnie zostanie obliczona instrukcja znajdująca się powyżej i tak dalej, aż do instrukcji na samej górze.

Jak wspomniano wcześniej w tym samouczku, dane do aplikacji można ładować za pomocą instrukcji LOAD i SELECT. Każda z tych instrukcji generuje tabelę wewnętrzną. LOAD służy do ładowania danych z plików lub z tabeli wbudowanej, natomiast SELECT służy do ładowania danych z baz danych. W tym kursie użyto danych z plików. W tym przykładzie zostanie użyta tabela wbudowana. Warto wiedzieć, że instrukcji preceding load można użyć ponad instrukcją SELECT w celu manipulowania danymi. Podstawowe działania są takie same jak tutaj w przypadku instrukcji LOAD.

Poniższy przykład nie jest powiązany z danymi ładowanymi w tym kursie. Służy tylko do pokazania przykładowej instrukcji preceding load. W edytorze ładowania danych zostanie utworzona tabela wbudowana Transactions. Interpretacja daty zostanie przeprowadzona w instrukcji preceding LOAD, gdzie zostanie utworzone nowe pole transaction\_date. To pole jest tworzone na podstawie pola sale\_date.

1. Utwórz nową aplikację i nadaj jej nazwę ReformatDate.
2. Otwórz edytor ładowania danych, a następnie utwórz nową kartę o nazwie TransactionData.
3. Dodaj następujący skrypt:
   ```
   Transactions: 
   Load *,
   Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
   Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code 
   3750, 20180830, 23.56, 2, 2038593, L, Red 
   3751, 20180907, 556.31, 6, 203521, m, orange 
   3752, 20180916, 5.75, 1, 5646471, S, blue 
   3753, 20180922, 125.00, 7, 3036491, l, Black 
   3754, 20180922, 484.21, 13, 049681, xs, Red 
   3756, 20180922, 59.18, 2, 2038593, M, Blue 
   3757, 20180923, 177.42, 21, 203521, XL, Black ];
   ```

   Skrypt powinien wyglądać następująco:

   Skrypt ładowania z instrukcją preceding load

   Skrypt ładowania z instrukcją preceding load

   Skrypt ładowania z instrukcją preceding load ![Skrypt ładowania z instrukcją preceding load.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/tutorial_preceding_load_cloud-rev.png)
4. Kliknij polecenie Ładuj dane.
5. Otwórz Przeglądarkę modelu danych. Wybierz i rozwiń tabelę Transactions. Wszystkie pola zostały załadowane w sposób określony przez \* w instrukcji preceding load. Utworzone zostało nowe pole transaction\_date. Data w tym polu jest sformatowana.

   Nowe pole transaction\_date w przeglądarce modelu danych

   Nowe pole transaction\_date w przeglądarce modelu danych

   Nowe pole transaction\_datetransaction\_date w przeglądarce modelu danych ![Nowe pole transaction_date w przeglądarce modelu danych.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_transaction_date.png)