NoConcatenate
Con il prefisso NoConcatenate, due tabelle che vengono caricate con gruppi di campo identici verranno considerate come due tabelle interne separate, invece di venire concatenate automaticamente.
Sintassi:
NoConcatenate( loadstatement | selectstatement )
Per impostazione predefinita, se viene caricata una tabella che contiene un numero identico di campi e nomi di campi corrispondenti a una tabella caricata in precedenza nello script, queste due tabelle verranno concatenate automaticamente da Qlik Sense. Questo accade anche se la seconda tabella ha un nome diverso.
Tuttavia, se il prefisso dello script NoConcatenate viene incluso prima dell'istruzione LOAD o SELECT della seconda tabella, le due tabelle verranno caricate separatamente.
Un caso d'uso tipico per NoConcatenate è quello in cui è necessario creare una copia temporanea di una tabella per eseguire alcune trasformazioni temporanee su tale copia, conservando una copia dei dati originali. NoConcatenate assicura che sia possibile creare tale copia senza aggiungerla implicitamente alla tabella di origine.
Impostazioni locali
Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione SET DateFormat nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi.
Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.
Esempio | Risultato |
---|---|
Source: LOAD A,B from file1.csv; CopyOfSource: NoConcatenate LOAD A,B resident Source; |
Viene caricata una tabella con A e B come misure. Una seconda tabella con gli stessi campi viene caricata separatamente utilizzando la variabile NoConcatenate. |
Esempio 1 - Concatenazione implicita
Panoramica
In questo esempio verranno aggiunti due script di caricamento in ordine sequenziale.
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
-
Un set di dati iniziale con date e importi che viene inviato a una tabella denominata Transactions.
Primo script di caricamento
Transactions:
LOAD
*
Inline [
id, date, amount
1, 08/30/2018, 23.56
2, 09/07/2018, 556.31
3, 09/16/2018, 5.75
4, 09/22/2018, 125.00
5, 09/22/2018, 484.21
6, 09/22/2018, 59.18
7, 09/23/2018, 177.42
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
-
id
-
date
-
amount
id | date | importo |
---|---|---|
1 | 08/30/2018 | 23.56 |
2 | 09/07/2018 | 556.31 |
3 | 09/16/2018 | 5.75 |
4 | 09/22/2018 | 125.00 |
5 | 09/22/2018 | 484.21 |
6 | 09/22/2018 | 59.18 |
7 | 09/23/2018 | 177.42 |
Secondo script di caricamento
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
-
Un secondo set di dati con campi identici viene inviato a una tabella denominata Sales.
Sales:
LOAD
*
Inline [
id, date, amount
8, 10/01/2018, 164.27
9, 10/03/2018, 384.00
10, 10/06/2018, 25.82
11, 10/09/2018, 312.00
12, 10/15/2018, 4.56
13, 10/16/2018, 90.24
14, 10/18/2018, 19.32
];
Risultati
Caricare i dati e passare alla tabella.
id | date | importo |
---|---|---|
1 | 08/30/2018 | 23.56 |
2 | 09/07/2018 | 556.31 |
3 | 09/16/2018 | 5.75 |
4 | 09/22/2018 | 125.00 |
5 | 09/22/2018 | 484.21 |
6 | 09/22/2018 | 59.18 |
7 | 09/23/2018 | 177.42 |
8 | 10/01/2018 | 164.27 |
9 | 10/03/2018 | 384.00 |
10 | 10/06/2018 | 25.82 |
11 | 10/09/2018 | 312.00 |
12 | 10/15/2018 | 4.56 |
13 | 10/16/2018 | 90.24 |
14 | 10/18/2018 | 19.32 |
Quando viene eseguito lo script, la tabella Sales viene concatenata implicitamente alla tabella Transactions esistente, poiché i due set di dati condividono un numero identico di campi, con nomi di campo identici. Questo accade nonostante il secondo tag di nome della tabella tenti di dare un nome al set di risultati ‘Sales’.
Si può vedere che il set di dati Vendite è concatenato implicitamente osservando il registro di Avanzamento del caricamento dei dati.
Esempio 2 - Scenario d'uso
Panoramica
In questo scenario d'uso si ha:
-
Un set di dati sulle transazioni con:
-
id
-
date
-
importo (in GBP)
-
-
Una tabella delle valute con:
-
Tassi di conversione da USD a GBP
-
-
Un secondo set di dati sulle transazioni con:
-
id
-
date
-
importo (in USD)
-
Verranno caricati cinque script in ordine sequenziale.
-
Il primo script di caricamento contiene un set di dati iniziale con date e importi in GBP che viene inviato a una tabella denominata Transactions.
-
Il secondo script di caricamento contiene:
-
Un secondo set di dati con date e importi in USD viene inviato a una tabella denominata Transactions_in_USD.
-
Il prefisso noconcatenate che viene posto prima dell'istruzione LOAD del set di dati Transactions_in_USD per evitare la concatenazione implicita.
-
-
Il terzo script di caricamento contiene il prefisso join che verrà utilizzato per creare un tasso di cambio tra GBP e USD nella tabella Transactions_in_USD.
-
Il quarto script di caricamento contiene il prefisso concatenate che aggiungerà Transactions_in_USD alla tabella iniziale Transactions.
-
Il quinto script di caricamento contiene l'istruzione drop table che rimuove la tabella Transactions_in_USD i cui dati sono stati concatenati alla tabella Transactions.
Primo script di caricamento
Transactions:
Load * Inline [
id, date, amount
1, 12/30/2018, 23.56
2, 12/07/2018, 556.31
3, 12/16/2018, 5.75
4, 12/22/2018, 125.00
5, 12/22/2018, 484.21
6, 12/22/2018, 59.18
7, 12/23/2018, 177.42
];
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
- id
- date
- amount
id | date | importo |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
La tabella mostra il set di dati iniziale con importi in GBP.
Secondo script di caricamento
Transactions_in_USD:
NoConcatenate
Load * Inline [
id, date, amount
8, 01/01/2019, 164.27
9, 01/03/2019, 384.00
10, 01/06/2019, 25.82
11, 01/09/2019, 312.00
12, 01/15/2019, 4.56
13, 01/16/2019, 90.24
14, 01/18/2019, 19.32
];
Risultati
Caricare i dati e passare alla tabella.
id | date | importo |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 164.27 |
9 | 01/03/2019 | 384.00 |
10 | 01/06/2019 | 25.82 |
11 | 01/09/2019 | 312.00 |
12 | 01/15/2019 | 4.56 |
13 | 01/16/2019 | 90.24 |
14 | 01/18/2019 | 19.32 |
Si vedrà che il secondo set di dati della tabella Transactions_in_USD è stato aggiunto.
Terzo script di caricamento
Questo script di caricamento aggiunge alla tabella Transactions_in_USD un tasso di cambio da USD a GBP.
Join (Transactions_in_USD)
Load * Inline [
rate
0.7
];
Risultati
Caricare i dati e accedere al sistema di visualizzazione del modello dati. Selezionare la tabella Transactions_in_USD per vedere che ogni record esistente ha un valore di 0,7 nel campo "tasso".
Quarto script di caricamento
Utilizzando il caricamento residente, questo script di caricamento concatenerà la tabella Transactions_in_USD alla tabella Transactions dopo aver convertito gli importi in USD.
Concatenate (Transactions)
LOAD
id,
date,
amount * rate as amount
Resident Transactions_in_USD;
Risultati
Caricare i dati e passare alla tabella. Dalle righe otto a quattordici vengono visualizzate nuove voci con importi in GBP.
id | date | importo |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 114.989 |
8 | 01/01/2019 | 164.27 |
9 | 01/03/2019 | 268.80 |
9 | 01/03/2019 | 384.00 |
10 | 01/06/2019 | 18.074 |
10 | 01/06/2019 | 25.82 |
11 | 01/09/2019 | 218.40 |
11 | 01/09/2019 | 312.00 |
12 | 01/15/2019 | 3.192 |
12 | 01/15/2019 | 4.56 |
13 | 01/16/2019 | 63.168 |
13 | 01/16/2019 | 90.24 |
14 | 01/18/2019 | 13.524 |
14 | 01/18/2019 | 19.32 |
Quinto script di caricamento
Questo script di caricamento eliminerà le voci duplicate dalla tabella dei risultati del quarto script di caricamento, lasciando solo le voci con importi in GBP.
drop tables Transactions_in_USD;
Risultati
Caricare i dati e passare alla tabella.
id | date | importo |
---|---|---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 114.989 |
9 | 01/03/2019 | 268.80 |
10 | 01/06/2019 | 18.074 |
11 | 01/09/2019 | 218.40 |
12 | 01/15/2019 | 3.192 |
13 | 01/16/2019 | 63.168 |
14 | 01/18/2019 | 13.524 |
Dopo aver caricato il quinto script di caricamento, la tabella dei risultati mostra tutte le quattordici transazioni esistenti in entrambi i set di dati di transazioni; tuttavia, le transazioni 8-14 sono state convertite in GBP.
Se si rimuove il prefisso NoConcatenate utilizzato prima di Transactions_in_USD nel secondo script di caricamento, lo script non riuscirà e mostrerà l'errore: "Tabella 'Transactions_in_USD' non trovata". Questo perché la tabella Transactions_in_USD sarebbe stata concatenata automaticamente alla tabella originale Transactions.