NoConcatenate
Het prefix NoConcatenate zorgt ervoor dat twee geladen tabellen met identieke veldensets worden behandeld als twee aparte interne tabellen, terwijl ze anders automatisch zouden worden aaneengeschakeld.
Syntaxis:
NoConcatenate( loadstatement | selectstatement )
Als een tabel met een identiek aantal velden en overeenkomende veldnamen eerder in het script in een tabel is geladen, zal Qlik Sense standaard deze twee tabellen automatisch aaneenschakelen. Dit gebeurt ook als de tweede tabel een andere naam heeft.
Maar als het script-prefix NoConcatenate is ingevoegd vóór de load-opdracht of de selecteeropdracht van de tweede tabel, dan worden deze twee tabellen afzonderlijk geladen.
Een typische gebruikssituatie voor NoConcatenate is wanneer u mogelijk een tijdelijke kopie van een tabel moet maken om een aantal tijdelijke transformaties in die kopie uit te voeren, terwijl u een kopie van de oorspronkelijke gegevens bewaart. NoConcatenate zorgt ervoor dat u die kopie kunt maken zonder deze impliciet weer toe te voegen aan de brontabel.
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeeld | Resultaat |
---|---|
Source: LOAD A,B from file1.csv; CopyOfSource: NoConcatenate LOAD A,B resident Source; |
Er wordt een tabel met A en B als metingen geladen. Een tweede tabel met dezelfde velden wordt afzonderlijk geladen door gebruik van de NoConcatenate-variabele. |
Voorbeeld 1 – Impliciete aaneenschakeling
Overzicht
In dit voorbeeld voegt u twee load-scripts achter elkaar toe.
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
-
Een eerste gegevensverzameling met datums en bedragen die naar de tabel Transactions wordt gestuurd.
Eerste load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
-
id
-
date
-
amount
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 |
Tweede load-script
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
-
Een tweede gegevensset met identieke velden wordt naar de tabel Sales gestuurd.
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
];
Resultaten
Laad de gegevens en ga naar de tabel.
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 |
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 |
Wanneer het script wordt uitgevoerd, wordt de tabel Sales impliciet aaneengeschakeld met de bestaande Transactions-tabel omdat de twee gegevensset een identiek aantal velden delen met identieke veldnamen. Dit gebeurt ondanks het feit dat het tweede tabelnaamlabel de resultatenset ‘Sales’ probeert te noemen.
Als u naar het logbestand Voortgang laden van gegevens kijkt, kunt u zien dat de verkoopgegevensset impliciet aaneengeschakeld wordt.
Voorbeeld 2 – Scenario voor gebruikssituatie
Overzicht
In deze gebruikssituatie hebt u:
-
Een transactiegegevensset met:
-
id
-
date
-
bedrag (in GBP)
-
-
Een valutatabel met:
-
Wisselkoers voor USD naar GBP
-
-
Een tweede transactiegegevensset met:
-
id
-
date
-
bedrag (in USD)
-
U laadt vijf scripts achter elkaar.
-
Het eerste load-script bevat een aanvankelijke gegevensset met datums en bedragen in GBP, die naar de tabel Transactions wordt gestuurd.
-
Het tweede load-script bevat:
-
Een tweede gegevensset met datums en bedragen in USD, die naar de tabel Transactions_in_USD wordt gestuurd.
-
Het noconcatenate-prefix dat vóór de load-instructie van de Transactions_in_USD-gegevensset is geplaatst om impliciete aaneenschakeling te voorkomen.
-
-
Het derde load-script bevat het join-prefix dat wordt gebruikt om een wisselkoers op te zetten tussen GBP en USD in de Transactions_in_USD-tabel.
-
Het vierde load-script bevat het concatenate-prefix dat de Transactions_in_USD toevoegt aan de aanvankelijke Transactions-tabel.
-
Het vijfde load-script bevat de drop table-opdracht die de Transactions_in_USD-tabel verwijdert waaruit gegevens zijn aaneengeschakeld met de Transactions-tabel.
Eerste load-script
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
];
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
- id
- date
- amount
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 |
De tabel toont de eerste gegevensset met bedragen in GBP.
Tweede load-script
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
];
Resultaten
Laad de gegevens en ga naar de tabel.
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 |
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 |
U ziet dat de tweede gegevensset uit de Transactions_in_USD-tabel is toegevoegd.
Derde load-script
Dit load-script koppelt een wisselkoers van USD naar GBP aan de Transactions_in_USD-tabel.
Join (Transactions_in_USD)
Load * Inline [
rate
0.7
];
Resultaten
Laad de gegevens en ga naar de gegevensmodelviewer. Selecteer de Transactions_in_USD-tabel en u zult zien dat elk bestaand record een koersveldwaarde heeft van 0,7.
Vierde load-script
Met gebruik van een resident-load zal dit load-script de Transactions_in_USD-tabel aaneenschakelen met de Transactions-tabel nadat de bedragen zijn omgezet in USD.
Concatenate (Transactions)
LOAD
id,
date,
amount * rate as amount
Resident Transactions_in_USD;
Resultaten
Laad de gegevens en ga naar de tabel. U ziet nieuwe invoeren met bedragen in GBP van regels acht t/m veertien.
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 |
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 |
Vijfde load-script
Dit load-script verwijdert de dubbele invoeren uit de resultatentabel van het vierde load-script en laat alleen invoeren met bedragen in GBP staan.
drop tables Transactions_in_USD;
Resultaten
Laad de gegevens en ga naar de tabel.
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 |
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 |
Nadat het vijfde load-script is geladen, toont de resultatentabel alle veertien transacties die in beide transactiegegevenssets stonden. Maar voor transacties 8-14 zijn de bedragen omgezet in GBP.
Als we het NoConcatenate-prefix verwijderen dat werd gebruikt vóór de Transactions_in_USD in het tweede load-script, geeft het script de volgende foutmelding weer: "Tabel Transactions_in_USD niet gevonden". Dit komt doordat de Transactions_in_USD-tabel automatisch had zullen worden aaneengeschakeld met de oorspronkelijke Transactions-tabel.