Beprövade metoder för datamodellering
Här kan du läsa om flera olika sätt att ladda dina data i en Qlik Sense-app. Vilken metod du ska välja beror på hur datastrukturen ser ut och vilken datamodell du vill skapa.
Omvandla datakolumner till rader
Mina data ser förmodligen ut så här, och jag vill ha data om försäljning i ett separat fält:
År | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2013 | 34 | 54 | 53 | 52 |
2014 | 47 | 56 | 65 | 67 |
2015 | 57 | 56 | 63 | 71 |
Föreslagen åtgärd
Använd prefixet Crosstable när du laddar tabellen.
Resultatet följer nedan:
Year | Quarter | Sales |
---|---|---|
2013 | Q1 | 34 |
2013 | Q2 | 54 |
2013 | Q3 | 53 |
2013 | Q4 | 52 |
2014 | Q1 | 47 |
... | ... | ... |
Mer information om Crosstable finns i Arbeta med korstabeller i dataladdningsskriptet och Crosstable.
Omvandla datarader till fält
Jag har en generisk tabell med tre fält som liknar denna och jag vill ha varje attribut i en separat tabell:
Object | Attribute | Value |
---|---|---|
ball | color | red |
ball | diameter | 25 |
ball | weight | 3 |
box | color | 56 |
box | height | 30 |
box | length | 20 |
box | width | 25 |
Föreslagen åtgärd
Skapa en generisk datamodell med hjälp av laddningsprefixet Generisk.
Du får en datamodell som ser ut så här:
Mer information om generiska data finns i Generiska databaser och Generic.
Ladda data som har organiserats på hierarkiska nivåer, till exempel ett schema för en organisation
Mina data är sparade i en tabell med angränsade noder som ser ut så här:
NodeID | ParentNodeID | Title |
---|---|---|
1 | - | General manager |
2 | 1 | Country manager |
3 | 2 | Region manager |
Föreslagen åtgärd
Ladda data med prefixet Hierarki för att skapa en tabell med expanderade noder:
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 |
Mer information om hierarkiska nivåer finns i Ladda hierarkiska data och Hierarchy.
Ladda endast nya eller uppdaterade poster från en stor databas
Jag har en databas med ett stort antal poster och jag vill inte ladda om hela databasen för att uppdatera data i min app. Jag vill bara ladda nya eller uppdaterade poster och eliminera poster som har tagits bort från databasen.
Föreslagen åtgärd
Implementera en lösning för inkrementell laddning med hjälp av QVD-filer.
Mer information finns i Ladda nya och uppdaterade poster med inkrementell laddning.
Kombinera data från två tabeller med ett gemensamt fält
Qlik Sense jag kommer att associera tabeller med ett gemensamt fält automatiskt, men jag vill kontrollera hur tabellen kombineras.
Föreslagen åtgärd : Join / Keep
Du kan kombinera två tabeller i en enda intern tabell med hjälp av prefixen Join eller Keep.
Mer information finns i Kombinera tabeller med Join och Keep.
Föreslagen åtgärd : Mappning
Ett alternativ till att sammanfoga tabeller är att använda mappning, för att leta rätt på associerade värden i en mappningstabell automatiskt. På så sätt kan man minska mängden data som måste laddas.
Mer information finns i Använda mappning som ett alternativ till länkning.
Matcha ett diskret värde med ett intervall
Jag har en tabell med diskreta numeriska värden (Event), och jag vill matcha den till ett eller fler intervaller (Start och End).
Time | Händelse | Kommentar |
---|---|---|
00:00 | 0 | Start för skift 1 |
01:18 | 1 | Tillverkningsstopp |
02:23 | 2 | Tillverkningsomstart 50 % |
04:15 | 3 | Tillverkningshastighet 100 % |
08:00 | 4 | Start för skift 2 |
11:43 | 5 | Slut eller produktion |
Start | End | Ordning |
---|---|---|
01:00 | 03:35 | A |
02:30 | 07:58 | B |
03:04 | 10:27 | C |
07:23 | 11:43 | D |
Föreslagen åtgärd
Använd prefixet IntervalMatch för att länka fältet Time med intervallet som definieras av Start och End.
Mer information finns i Länka diskreta data till intervall.
Om intervallet inte definieras explicit vid starten och i slutet, utan endast med en ändring av tidsmarkören som i tabellen nedan, måste du skapa en intervalltabell.
Valuta | Ändra data | Kurs |
---|---|---|
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 |
Mer information finns i Skapa ett datumintervall från ett enskilt datum.
Hantera inkonsekventa fältvärden
Mina data innehåller fältvärden som inte har beskrivits konsekvent i de olika tabellerna. Till exempel innehåller en tabell värdet US i Land samtidigt som en annan tabell innehåller United States. Då kan associationer inte utföras korrekt.
Land | Region |
---|---|
USA | Maryland |
USA | Idaho |
USA | New York |
USA | Kalifornien |
Country | Population |
---|---|
United States | 304 |
Japan | 128 |
Brazil | 192 |
China | 1333 |
Föreslagen åtgärd
Genomför en datarensning med hjälp av en mappningstabell som jämför fältvärdet och aktiverar korrekta associationer.
Mer information finns i Datatvätt.
Hantera inkonsekventa versaler i fältvärden
Mina data innehåller fältvärden som inte är konsekvent formaterade i de olika tabellerna. Till exempel innehåller en tabell värdet single i Type medan en annan tabell innehåller Single i samma fält. Denna situation förhindrar associationer. Eftersom Type-fältet kommer att innehålla både single- och Single-värden spelar bruket av versaler en roll.
Typ | Pris |
---|---|
enstaka | 23 |
dubbel | 39 |
Typ | Färg |
---|---|
En färg | Röd |
En färg | Blå |
Dubbel | Vit |
Dubbel | Black |
Föreslagen åtgärd
Om du laddade data med Lägg till data kan du åtgärda detta i Datahanteraren.
Gör följande:
- Öppna Table2 i tabellredigeraren i Datahanteraren.
-
Byt namn på fältet Type till Table2.Type.
Om du precis lade till tabellen med Lägg till data med dataprofilering aktiverat kanske fältet redan har namnet Table2.Type för att förhindra en automatisk association. I så fall kommer den här proceduren att associera de två tabellerna.
- Skapa ett beräknat fält med uttrycket Lower(Table2.Type) och ge det namnet Type.
- Klicka på Ladda data.
Table1 och Table2 ska nu associeras genom fältet Type, som bara innehåller värden i gemener, som single och double.
Om du vill använda en annan typ av versaler, kan du uppnå det med liknande procedurer men kom ihåg att tabellerna kommer att associeras med hjälp av fälten som har samma namn.
- Om alla värden ska skrivas med inledande versaler, som Single, skapar du det beräknade Type-fältet i Table1 istället och använder uttrycket Capitalize(Table1.Type).
- Om alla värden ska skrivas helt med versaler, som SINGLE, skapar du det beräknade Type-fältet i båda tabellerna och använder uttrycken Upper(Table1.Type) respektive Upper(Table2.Type).
Mer information om beräknade fält finns i Använda beräknade fält.
Mer information om inledande versal finns i Capitalize - skript- och diagramfunktion, Lower - skript- och diagramfunktion och Upper - skript- och diagramfunktion.
Ladda geospatiala data för att kunna visualisera data med en karta
Jag har data som jag vill visualisera med hjälp av en karta, till exempel säljdata per land eller per butik. För att använda mappvisualisering måste jag ladda områdes- eller punktdata.
Föreslagen åtgärd
Du kan ladda yt- eller punktdata som matchar dina datavärdesplatser från en KML- eller en Excel-fil. Dessutom måste du ladda den faktiska bakgrunden för kartan.
Mer information finns i Läs in egen kartdata.