Przeskocz do zawartości głównej

Przekształcanie danych

NA TEJ STRONIE

Przekształcanie danych

W edytorze ł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
    Load script window with script to create new table called 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
    Sales_Buckets table in data model viewer.

  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
    New measure with formula.

    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
    Table showing customers that have made large orders.

  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
    Commented out script.

Instrukcja preceding LOAD

Instrukcja preceding load pozwala na wykonywanie przekształceń i stosowanie filtrów w celu ładowania danych w jednym przejściu. 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
    Load script with 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
    New field called transaction_date in data model viewer.