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

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 oraz scalenie ich w jedną tabelę w programie Qlik Sense.

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 przydatne, gdy wymagane jest wykonanie obliczeń 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.

W tym przykładzie zostanie utworzona nowa tabela o nazwie Sales_Buckets, a następnie za pomocą opcji resident load zostaną załadowane dane z Table1. 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 aplikacji Scripting Tutorial.
  2. Kliknij kartę Sales.
  3. Dodaj następujący kod na końcu skryptu:
  4. 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.
  5. Kliknij polecenie Ładuj dane.
  6. 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.
  7. Tabela Sales_Buckets w przeglądarce modelu danych

    Tabela Sales_Buckets w przeglądarce modelu danych.
  8. 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:
  9. = Sum(High_Quantity) / Count(High_Quantity)

    Nowa miara ze wzorem

    Nowa miara ze wzorem.

    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.
  10. Teraz, po zakończeniu tego przykładu, opatrz komentarzem skrypt zmiennej quantity_threshold i tabeli Sales_Buckets.
  11. Zakończenie skryptu powinno wyglądać w następujący sposób:

    Skomentowany skrypt

    Skrypt umieszczony w komentarzu.

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 opisano to wcześniej w niniejszym kursie, dane do Qlik Sense można załadować za pomocą instrukcji LOAD i SELECT. Każda z tych instrukcji powoduje wygenerowanie tabeli wewnętrznej. 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:
  4. 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.
  5. Kliknij polecenie Ładuj dane.
  6. 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.
  7. Nowe pole transaction_date w przeglądarce modelu danych

    Nowe pole transaction_date w przeglądarce modelu danych.

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