Procedure consigliate per la modellazione dati
In questa sezione vengono descritti molti modi differenti in cui è possibile caricare i dati in un'app Qlik Sense a seconda di come i questi sono strutturati e del modello dati che si desidera ottenere.
Trasformazione delle colonne di dati in righe
I dati hanno probabilmente appaiono in questo modo e si desidera disporre le cifre relative alle vendite in un campo separato:
Anno | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|
2013 | 34 | 54 | 53 | 52 |
2014 | 47 | 56 | 65 | 67 |
2015 | 57 | 56 | 63 | 71 |
Azione proposta
Utilizzare il prefisso Crosstable quando si carica la tabella.
Il risultato sarà simile al seguente:
Year | Quarter | Sales |
---|---|---|
2013 | Q1 | 34 |
2013 | Q2 | 54 |
2013 | Q3 | 53 |
2013 | Q4 | 52 |
2014 | Q1 | 47 |
... | ... | ... |
Per ulteriori informazioni sui prefissi crosstable, vedere Utilizzo delle tabelle incrociate nello script di caricamento dei dati e Crosstable.
Trasformazione delle righe di dati in campi
Si dispone di una tabella generica con tre campi simili al seguente e si desidera inserire ogni singolo attributo in una tabella separata:
Object | Attribute | Value |
---|---|---|
ball | color | red |
ball | diameter | 25 |
ball | weight | 3 |
box | color | 56 |
box | height | 30 |
box | length | 20 |
box | width | 25 |
Azione proposta
Creare un modello dati generico utilizzando il prefisso di caricamento Generic.
Si otterrà un modello dati simile al seguente:
Per ulteriori informazioni sui dati generici, vedere Database generici e Generic.
Caricamento dei dati organizzati in livelli gerarchici, ad esempio lo schema di un'organizzazione
I dati memorizzati in una tabella di nodi adiacenti avranno il seguente aspetto:
NodeID | ParentNodeID | Title |
---|---|---|
1 | - | General manager |
2 | 1 | Country manager |
3 | 2 | Region manager |
Azione proposta
Caricare i dati con il prefisso Hierarchy per creare una tabella di nodi espansi:
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 |
Per ulteriori informazioni sui livelli gerarchici, vedere Caricamento dei dati gerarchici e Hierarchy.
Caricamento solo dei record nuovi o aggiornati da un database di grandi dimensioni
Si dispone di un database contenente un numero elevato di record e non si desidera ricaricarlo interamente per aggiornare i dati nell'app. Si desidera caricare solo i record nuovi o aggiornati e rimuovere i record eliminati dal database.
Azione proposta
Implementare una soluzione di caricamento incrementale utilizzando i file QVD.
Per ulteriori informazioni, vedere Caricamento di record nuovi e aggiornati mediante il carico incrementale.
Unione dei dati di due tabelle con un campo comune
Qlik Sense associa automaticamente le tabelle con un campo comune, ma si desidera controllare il modo in cui queste vengono unite.
Azione proposta : Join / Keep
È possibile unire due tabelle in una singola tabella interna utilizzando i prefissi Join o Keep.
Per ulteriori informazioni, vedere Combinazione di tabelle con Join e Keep.
Azione proposta : Mapping
Un'alternativa all'unione di tabelle è l'utilizzo del mapping, il quale rende automatica la ricerca di valori associati in una tabella di mapping. Questa soluzione può ridurre la quantità di dati da caricare.
Per ulteriori informazioni, vedere Utilizzo del mapping come alternativa all'unione.
Corrispondenza di un valore discreto con un intervallo
Si dispone di una tabella di valori numerici discreti (Event) e si desidera farla corrispondere a uno o più intervalli (Start e End).
Time | Event | Commento |
---|---|---|
00:00 | 0 | Start of shift 1 |
01:18 | 1 | Line stop |
02:23 | 2 | Line restart 50% |
04:15 | 3 | Line speed 100% |
08:00 | 4 | Start of shift 2 |
11:43 | 5 | End or production |
Inizio | End | Order |
---|---|---|
01:00 | 03:35 | A |
02:30 | 07:58 | B |
03:04 | 10:27 | C |
07:23 | 11:43 | D |
Azione proposta
Utilizzare il prefisso IntervalMatch per collegare il campo Time con l'intervallo definito da Start e End.
Per ulteriori informazioni, vedere Corrispondenza degli intervalli con i dati discreti.
Se l'intervallo non è definito in modo esplicito con l'inizio e la fine, ma solo con un'indicazione temporale della modifica come nella tabella seguente, è necessario creare una tabella con intervallo.
Currency | Change Data | 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 |
Per ulteriori informazioni, vedere Creazione di un intervallo di date da una data singola.
Gestione di valori di campo non coerenti
I dati contengono valori di campo che non sono denominati in modo coerente in tabelle differenti. Ad esempio, una tabella contiene il valore US in Country, mentre un'altra tabella contiene il valore United States. Questa situazione impedirà le associazioni.
Country | Regione |
---|---|
US | Maryland |
US | Idaho |
US | New York |
US | California |
Country | Population |
---|---|
United States | 304 |
Japan | 128 |
Brazil | 192 |
China | 1333 |
Azione proposta
Eseguire la pulizia dei dati mediante una tabella di mapping che confronti i valori di campo e consenta le associazioni corrette.
Per ulteriori informazioni, vedere Pulizia dei dati.
Gestione dell'utilizzo incoerente di maiuscole/minuscole nei valori di campo
I dati contengono valori di campo che non sono formattati in modo coerente in tabelle differenti. Ad esempio, una tabella contiene il valore single in Type, mentre un'altra contiene, nello stesso campo, il valore Single. Questa situazione impedirà le associazioni, in quanto il campo Type conterrà entrambi i valori single e Single e l'utilizzo delle maiuscole/minuscole influenza il risultato ottenuto.
Tipo | Price |
---|---|
single | 23 |
double | 39 |
Tipo | Colore |
---|---|
Singolo | Rosso |
Singolo | Blu |
Doppio | Bianco |
Doppio | Nero |
Azione proposta
Se si sono caricati i dati con Aggiungi dati, è possibile correggere il problema in Gestione dati.
Procedere come indicato di seguito:
- In Gestione dati, aprireTable2 nell'editor tabelle.
-
Rinominare il campo Type come Table2.Type.
Se si è appena aggiunta la tabella con Aggiungi dati con la profilatura dei dati attivata, il campo potrebbe già essere stato denominato Table2.Type per impedire l'associazione automatica. In tal caso, questa procedura consentirà di associare le due tabelle.
- Creare un campo calcolato utilizzando l'espressione Lower(Table2.Type) e denominarlo Type.
- Fare clic su Carica dati.
Le tabelle Table1 e Table2 dovrebbero essere ora associate mediante il campo Type, il quale contiene solamente valori con lettere minuscole, come single e double.
Se si desidera utilizzare le maiuscole/minuscole in modo differente, è possibile farlo con procedure simili, tuttavia è necessario ricordare che le tabelle verranno associate mediante i campi aventi lo stesso nome.
- Per ottenere tutti valori con iniziali maiuscole, ad esempio Single, creare il campo calcolato Type in Table1 e utilizzare l'espressione Capitalize(Table1.Type).
- Per ottenere tutti valori con tutte lettere maiuscole, ad esempio SINGLE, creare il campo calcolato Type in entrambe le tabelle e utilizzare rispettivamente le espressioni Upper(Table1.Type) e Upper(Table2.Type).
Per ulteriori informazioni sui campi calcolati, vedere Utilizzo dei campi calcolati.
Per ulteriori informazioni sull'uso delle lettere maiuscole, vedere Capitalize - funzione dello script e del grafico, Lower - funzione dello script e del grafico e Upper - funzione dello script e del grafico.
Caricamento di dati geospaziali per visualizzare i dati con una mappa
Si dispone di dati che si desidera visualizzare utilizzando una mappa, ad esempio le vendite per paese o per negozio. Per utilizzare la visualizzazione della mappa, è necessario caricare l'area o i punti dati.
Azione proposta
È possibile caricare l'area o i punti dati che corrispondono alle posizioni dei valori dei dati provenienti da un file KML o Excel. Inoltre, è necessario caricare lo sfondo effettivo della mappa.
Per ulteriori informazioni, vedere Caricamento dei dati utente per la mappa.