Najlepsze praktyki w zakresie modelowania danych

W tej sekcji opisano różne sposoby ładowania danych do aplikacji Qlik Sense w zależności od struktury danych i docelowego modelu danych.

Przekształcenie kolumn z danymi w wiersze

Poniższe dane trzeba przekształcić tak, aby wartości sprzedaży znajdowały się w oddzielnym polu.

Oryginalna tabela danych
Rok Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

W tym celu po załadowaniu tabeli należy użyć prefiksu Crosstable.

Rezultat będzie następujący:

Tabela po zastosowaniu prefiksu Crosstable
Year Quarter Sales
2013 Q1 34
2013 Q2 54
2013 Q3 53
2013 Q4 52
2014 Q1 47
... ... ...

Więcej informacji o tabelach przestawnych zawierają tematy Praca ze tabelami krzyżowymi w skrypcie ładowania danych i Crosstable.

Przekształcenie wierszy z danymi w pola

Poniższą tabelę ogólną z trzema polami trzeba przekształcić tak, aby każdy atrybut znajdował się w oddzielnej tabeli.

Tabela ogólna z trzema polami
Object Attribute Value
ball color red
ball diameter 25
ball weight 3
box color 56
box height 30
box length 20
box width 25

Proposed action  

W tym celu należy utworzyć ogólny model danych za pomocą prefiksu Ogólne.

W rezultacie powstanie poniższy model danych.

Generic data model.

Więcej informacji o danych ogólnych zawierają tematy Ogólne bazy danych i Generic.

Ładowanie danych uporządkowanych według poziomów hierarchicznych (na przykład schematu organizacyjnego)

Dane są przechowywane w podobnej do poniższej tabeli węzłów sąsiadujących.

Tabela węzłów sąsiadujących
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

Aby utworzyć tabelę węzłów rozwiniętych, należy załadować dane za pomocą prefiksu Hierarchia.

Tabela węzłów rozwiniętych
NodeID ParentNodeID Title Level1 Level2 Level3
1 - General manager General manager - -
2 1 Country manager General manager Country manager -
3 2 Region manager General manager Country manager Region manager

Więcej informacji o poziomach hierarchicznych zawierają tematy Ładowanie danych hierarchii i Hierarchy.

Ładowanie z dużej bazy danych tylko rekordów nowych lub zaktualizowanych

Baza danych zawiera bardzo dużą liczbę rekordów i trzeba uniknąć przeładowania całej bazy danych w celu odświeżenia danych w aplikacji. Należy jedynie załadować rekordy nowe lub zaktualizowane i usunąć rekordy usunięte z bazy danych.

Proposed action  

Należy zastosować funkcję ładowania przyrostowego za pomocą plików QVD.

Więcej informacji zawiera temat Ładowanie nowych i zaktualizowanych rekordów za pomocą funkcji ładowania przyrostowego.

Łączenie danych z dwóch tabel za pomocą wspólnego pola

Program Qlik Sense automatycznie powiąże tabele ze wspólnym polem, ale potrzebna jest kontrola nad sposobem połączenia tabel.

Proposed action : Join / Keep

Dwie tabele można połączyć w jedną tabelę wewnętrzną za pomocą prefiksów Join lub Keep.

Więcej informacji zawiera temat Łączenie tabel operatorami Join i Keep.

Proposed action : Mapowanie

Alternatywą dla łączenia tabel jest skorzystanie z funkcji mapowania, która automatyzuje wyszukiwanie powiązanych wartości w tabeli mapowania. Może to zmniejszyć ilość danych do załadowania.

Więcej informacji zawiera temat Korzystanie z funkcji mapowania jako alternatywy dla funkcji sprzężenia.

Dopasowywanie wartości dyskretnej do interwału

Poniższą tabelę numerycznych wartości dyskretnych (Event) trzeba dopasować do co najmniej jednego interwału (Start i End).

Tabela numerycznych wartości dyskretnych (Event)
Time Event Komentarz
00:00 0 Początek zmiany 1
01:18 1 Zatrzymanie linii
02:23 2 Restart linii na 50%
04:15 3 Szybkość linii 100%
08:00 4 Początek zmiany 2
11:43 5 Koniec lub produkcja
Tabela z interwałami (Start i End)
Start End Kolejność
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

Należy skorzystać z prefiksu IntervalMatch, aby połączyć pole Time z interwałem zdefiniowanym przez wartości Start i End.

Więcej informacji zawiera temat Dopasowywanie interwałów do danych dyskretnych.

Jeśli interwał nie jest wyraźnie zdefiniowany za pomocą wartości Start i End, a wyłącznie za pomocą znacznika czasu zmiany (jak w tabeli poniżej), należy utworzyć tabelę interwałów.

Tabela ze znacznikiem czasu zmiany
Waluta Data wymiany Rate
EUR - 8.59
EUR 28/01/2013 8.69
EUR 15/02/2013 8.45
USD - 6.50
USD 10/01/2013 6.56
USD 03/02/2013 6.30

Więcej informacji zawiera temat Tworzenie interwałów na podstawie daty.

Postępowanie z niespójnymi wartościami pól

W dostępnych danych znajdują się wartość pól, które są niespójnie nazwane w różnych tabelach. Na przykład jedna tabela zawiera wartość US jako nazwę kraju, a druga tabela zawiera wartość United States jako nazwę kraju. Taka sytuacja uniemożliwia tworzenie asocjacji.

Tabela 1
Kraj Region
US Maryland
US Idaho
US New York
US California
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

Należy przeprowadzić proces czyszczenia danych za pomocą tabeli mapowania w celu porównania wartości pól i pozwala na tworzenie prawidłowych asocjacji.

Więcej informacji zawiera temat Czyszczenie danych.

Postępowanie z wartościami pól, których wielkości liter są różne

W dostępnych danych znajdują się wartość pól, które są niespójnie sformatowane w różnych tabelach. Na przykład jedna tabela zawiera wartość single w polu Type, a inna tabela zawiera Single w tym samym polu. Taka sytuacja uniemożliwi asocjacje, a ponieważ pole Type będzie zawierało wartości single oraz Single, dlatego istotna okazuje się wielkość znaków.

Tabela 1
Type Cena
single 23
double 39
Tabela 2
Typ Kolor
Pojedyncze Czerwony
Pojedyncze Niebieski
Double Biały
Double Black

Proposed action  

Jeśli dane zostały załadowane za pomocą opcji Dodaj dane, wówczas można to skorygować w menedżerze danych.

Wykonaj następujące czynności:

  1. W menedżerze danych otwórz tabelę Table2 w edytorze tabel.
  2. Zmień nazwę pola Type na Table2.Type.

    Jeśli tabela została dodana za pomocą opcji Dodaj dane z włączonym profilowaniem danych, wówczas pole może mieć już nazwę Table2.Type, co zapobiega automatycznemu tworzeniu asocjacji. W takim przypadku ta procedura spowoduje asocjację tych dwóch tabel.

  3. Utwórz pole wyliczane za pomocą wyrażenia Lower(Table2.Type) i nadaj mu nazwę Type.Type
  4. Kliknij polecenie Ładuj dane.

Tabele Table1 i Table2 powinny być już powiązane przez pole Type, które zawiera tylko wartości zapisane małymi literami, na przykład single oraz double.

Jeśli wymagane jest użycie innej wielkości liter, można to osiągnąć podobnymi sposobami, ale należy pamiętać o tym, że pola o takiej samej nazwie spowodują asocjację tabel.

  • Aby uzyskać wszystkie wartości z pierwszą wielką literą, na przykład Single, należy utworzyć pole wyliczane Type w tabeli Table1, a następnie użyć wyrażenia Capitalize(Table1.Type).
  • Aby uzyskać wszystkie wartości zapisane wielkimi literami, na przykład SINGLE, należy utworzyć pole wyliczane Type w obu tabelach, i odpowiednio użyć wyrażeń Upper(Table1.Type) i Upper(Table2.Type).

Więcej informacji o polach wyliczanych zawiera temat Korzystanie z pól obliczanych.

Więcej informacji o pisowni z wielkiej litery zawierają tematy Capitalize — funkcja skryptu i funkcja wykresu, Lower — funkcja skryptu i funkcja wykresu i Upper — funkcja skryptu i funkcja wykresu.

Ładowanie danych geoprzestrzennych w celu wizualizacji danych za pomocą mapy

Trzeba zwizualizować dane za pomocą mapy, na przykład dane sprzedaży według kraju lub sklepu. Aby skorzystać z wizualizacji danych na mapie, trzeba załadować dane dotyczące obszarów lub punktów.

Proposed action  

Można też załadować dane dotyczące obszarów lub punktów, które pasują do lokalizacji wartości danych z pliku KML lub pliku programu Excel. Ponadto należy załadować tło odpowiedniej mapy.

Więcej informacji zawiera temat Ładowanie danych Twojej mapy.