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:
Rok | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2013 | 34 | 54 | 53 | 52 |
2014 | 47 | 56 | 65 | 67 |
2015 | 57 | 56 | 63 | 71 |
Proponowane działanie
W tym celu po załadowaniu tabeli należy użyć prefiksu Crosstable.
Rezultat będzie następujący:
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.
Object | Attribute | Value |
---|---|---|
ball | color | red |
ball | diameter | 25 |
ball | weight | 3 |
box | color | 56 |
box | height | 30 |
box | length | 20 |
box | width | 25 |
Proponowane działanie
W tym celu należy utworzyć ogólny model danych za pomocą prefiksu Ogólne.
W rezultacie powstanie poniższy model danych.
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.
NodeID | ParentNodeID | Title |
---|---|---|
1 | - | General manager |
2 | 1 | Country manager |
3 | 2 | Region manager |
Proponowane działanie
Aby utworzyć tabelę węzłów rozwiniętych, należy załadować dane za pomocą prefiksu Hierarchia.
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.
Proponowane działanie
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.
Proponowane działanie : 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.
Proponowane działanie : 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).
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 |
Start | End | Kolejność |
---|---|---|
01:00 | 03:35 | A |
02:30 | 07:58 | B |
03:04 | 10:27 | C |
07:23 | 11:43 | D |
Proponowane działanie
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.
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.
Kraj | Region |
---|---|
US | Maryland |
US | Idaho |
US | New York |
US | California |
Country | Population |
---|---|
United States | 304 |
Japan | 128 |
Brazil | 192 |
China | 1333 |
Proponowane działanie
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.
Type | Cena |
---|---|
single | 23 |
double | 39 |
Typ | Kolor |
---|---|
Pojedyncze | Czerwony |
Pojedyncze | Niebieski |
Double | Biały |
Double | Black |
Proponowane działanie
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:
- W menedżerze danych otwórz tabelę Table2 w edytorze tabel.
-
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.
- Utwórz pole wyliczane za pomocą wyrażenia Lower(Table2.Type) i nadaj mu nazwę Type.
- 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.
Proponowane działanie
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.