# Procedure consigliate per la modellazione dati

Questa sezione descrive diversi modi in cui è possibile caricare i dati in un'Qlik Sense applicazione, a seconda di come i dati 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:

Tabella di dati originale

| 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:

Tabella dopo l'applicazione del prefisso Crosstable

| 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/LoadData/work-with-cross-tables.htm) e [Crosstable](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/crosstable.htm).

## 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:

Tabella generica con tre campi

| 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:

![modello dati generico.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/ex_gen_GenericDatabase_300x300.png)

Per ulteriori informazioni sui dati generici, vedere [Database generici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/generic-databases.htm) e [Generic](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Generic.htm).

## 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:

Tabella di nodi adiacenti

| 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:

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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/DataSource/hierarchies.htm) e [Hierarchy](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Hierarchy.htm).

## 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 nella mia applicazione. 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/LoadData/use-QVD-files-incremental-load.htm).

## 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/combine-tables-join-keep.htm).

Azione proposta Mappatura

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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/use-mapping-as-alternative-join.htm).

## 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).

Tabella di valori numerici discreti (EventEvent)

| Ora | Evento | Commento |
| --- | --- | --- |
| 00:00 | 0 | Inizio turno 1 |
| 01:18 | 1 | Arresto linea |
| 02:23 | 2 | Riavvio linea 50% |
| 04:15 | 3 | Velocità linea 100% |
| 08:00 | 4 | Inizio turno 2 |
| 11:43 | 5 | Fine produzione |

Tabella con intervalli (StartStart e End End)

| Avvia | Fine | Ordinamento |
| --- | --- | --- |
| 01:00 | 03:35 | Una |
| 02:30 | 07:58 | B |
| 03:04 | 10:27 | Scrivere |
| 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/LoadData/matching-intervals-to-discrete-data.htm).

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.

Tabella con un'indicazione data e ora di modifica

| Valuta | Modifica dei dati | Valutazione |
| --- | --- | --- |
| 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/create-date-interval-from-single-date.htm).

## 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.

Tabella 1

| Paese | Regione |
| --- | --- |
| USA | Maryland |
| USA | Idaho |
| USA | New York |
| USA | California |

Table 2

| 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/LoadData/data-cleansing.htm).

## 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.

Tabella 1

| Tipo | Prezzo |
| --- | --- |
| singolo | 23 |
| doppio | 39 |

Tabella 2

| 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:

1. In Gestione dati, aprireTable2 nell'editor tabelle.

2. 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.

3. Creare un campo calcolato utilizzando l'espressione `Lower(Table2.Type)` e denominarlo Type.

4. 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/LoadData/add-calculated-field.htm).

Per ulteriori informazioni sull'uso delle lettere maiuscole, vedere [Capitalize Funzione per script e grafici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Capitalize.htm), [Lower Funzione per script e grafici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Lower.htm) e [Upper Funzione per script e grafici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/Upper.htm).

## 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](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Visualizations/Map/load-map-data.htm).