NoConcatenate
Der Zusatz NoConcatenate bewirkt, dass zwei geladene Tabellen mit identischen Feldergruppen als zwei separate interne Tabellen behandelt werden, während sie andernfalls automatisch zusammengefasst werden würden.
Syntax:
NoConcatenate( loadstatement | selectstatement )
Standardmäßig fasst Qlik Sense zwei Tabellen automatisch zusammen, wenn eine Tabelle geladen wird, die eine identische Anzahl Felder und übereinstimmende Feldnamen wie eine andere Tabelle aufweist, die zuvor in das Skript geladen wurde. Dies trifft selbst dann zu, wenn die zweite Tabelle einen anderen Namen hat.
Wenn jedoch das Skriptpräfix NoConcatenate vor die load-Anweisung oder die select-Anweisung der zweiten Tabelle gesetzt wird, dann werden diese beiden Tabellen getrennt geladen.
Ein typischer Anwendungsfall für NoConcatenate ist, wenn Sie eine temporäre Kopie einer Tabelle erstellen möchten, um temporäre Umwandlungen in dieser Kopie vorzunehmen und eine Kopie der Originaldaten beizubehalten. NoConcatenate sorgt dafür, dass Sie diese Kopie erstellen können, ohne sie implizit wieder der Quelltabelle hinzuzufügen.
Regionaleinstellungen
Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung SET DateFormat in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern.
Die standardmäßigen regionalen Einstellungen in Apps basieren auf den regionalen Systemeinstellungen der Computer oder Server, auf denen Qlik Sense installiert ist. Wenn der Qlik Sense-Server, auf den Sie zugreifen, auf Schweden festgelegt ist, verwendet der Dateneditor die schwedischen regionalen Einstellungen für Datums-, Uhrzeit- und Währungsangaben. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Sense angezeigt wird. Qlik Sense wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.
Beispiel | Ergebnis |
---|---|
Source: LOAD A,B from file1.csv; CopyOfSource: NoConcatenate LOAD A,B resident Source; |
Eine Tabelle mit A und B als Kennzahlen wird geladen. Eine zweite Tabelle mit den gleichen Feldern wird getrennt geladen, weil die Variable NoConcatenate verwendet wird. |
Beispiel 1 – Implizite Zusammenfassung
Übersicht
In diesem Beispiel fügen Sie zwei Ladeskripte in Reihenfolge hinzu.
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
-
Ein anfänglicher Datensatz mit Datumswerten und Beträgen wird an eine Tabelle namens Transactions gesendet.
Erstes Ladeskript
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
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
-
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 |
Zweites Ladeskript
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
-
Ein zweiter Datensatz mit identischen Feldern wird an eine Tabelle namens Sales gesendet.
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
];
Ergebnisse
Laden Sie die Daten und wechseln Sie zur Tabelle.
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 |
Wenn das Skript ausgeführt wird, wird die Tabelle Sales implizit mit der vorhandenen Tabelle Transactions zusammengefasst, da die beiden Datensätze die gleiche Anzahl Felder mit identischen Namen haben. Dies geschieht, obwohl versucht wird, den Ergebnissatz mit einem Namens-Tag für die zweite Tabelle ‘Sales’ zu nennen.
Im Protokoll Datenladefortschritt können Sie sehen, dass der Datensatz „Sales“ implizit zusammengefasst wurde.
Beispiel 2 –Anwendungsfall-Szenario
Übersicht
Dieses Anwendungsfall-Szenario enthält:
-
Einen Transaktionsdatensatz mit:
-
id
-
date
-
Betrag (in GBP)
-
-
Eine Währungstabelle mit:
-
Wechselkursraten für USD in GBP
-
-
Einen zweiten Transaktionsdatensatz mit:
-
id
-
date
-
Betrag (in USD)
-
Sie laden fünf Skripte in Reihenfolge.
-
Das erste Ladeskript enthält einen anfänglichen Datensatz mit Datumswerten und Beträgen in GBP, der an eine Tabelle namens Transactions gesendet wird.
-
Das zweite Ladeskript enthält:
-
Ein zweiter Datensatz mit Datumswerten und Beträgen in USD wird an eine Tabelle namens Transactions_in_USD gesendet.
-
Das Präfix noconcatenate wird vor der load-Anweisung des Datensatzes Transactions_in_USD platziert, um eine implizite Zusammenfassung zu vermeiden.
-
-
Das dritte Ladeskript enthält das Präfix join, das verwendet wird, um eine Wechselkursrate zwischen GBP und USD in der Tabelle Transactions_in_USD zu erstellen.
-
Das vierte Ladeskript enthält das Präfix concatenate, mit dem die Transactions_in_USD zur anfänglichen Tabelle Transactions hinzugefügt werden.
-
Das fünfte Ladeskript enthält den Befehl drop table, mit dem die Tabelle Transactions_in_USD entfernt wird, nachdem ihre Daten mit der Tabelle Transactions zusammengefasst wurden.
Erstes Ladeskript
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
];
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
- 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 |
Die Tabelle zeigt den anfänglichen Datensatz mit Beträgen in GBP.
Zweites Ladeskript
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
];
Ergebnisse
Laden Sie die Daten und wechseln Sie zur Tabelle.
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 |
Sie sehen, dass der zweite Datensatz aus der Tabelle Transactions_in_USD hinzugefügt wurde.
Drittes Ladeskript
Dieses Ladeskript verknüpft eine Wechselkursrate von USD zu GBP mit der Tabelle Transactions_in_USD.
Join (Transactions_in_USD)
Load * Inline [
rate
0.7
];
Ergebnisse
Laden Sie die Daten und gehen Sie zur Datenmodellansicht. Wählen Sie die Tabelle Transactions_in_USD aus. Sie sehen, dass jeder vorhandene Datensatz einen Feldwert für „rate“ von 0,7 enthält.
Viertes Ladeskript
Mithilfe von Resident Load fasst dieses Ladeskript die Tabelle Transactions_in_USD mit der Tabelle Transactions zusammen, nachdem die Beträge in USD umgerechnet wurden.
Concatenate (Transactions)
LOAD
id,
date,
amount * rate as amount
Resident Transactions_in_USD;
Ergebnisse
Laden Sie die Daten und wechseln Sie zur Tabelle. Sie sehen neue Einträge mit Beträgen in GBP von Zeile acht bis vierzehn.
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 |
Fünftes Ladeskript
Dieses Ladeskript entfernt die duplizierten Einträge aus der Ergebnistabelle des vierten Ladeskripts und belässt nur Einträge mit Beträgen in GBP.
drop tables Transactions_in_USD;
Ergebnisse
Laden Sie die Daten und wechseln Sie zur Tabelle.
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 |
Nach dem Laden des fünften Ladeskripts zeigt die Ergebnistabelle alle vierzehn Transaktionen, die in beiden Transaktionsdatensätzen vorhanden waren; für Transaktion 8-14 wurden jedoch die Beträge in GBP umgerechnet.
Wenn das Präfix NoConcatenate entfernt wird, das im zweiten Ladeskript vor Transactions_in_USD verwendet wurde, schlägt das Skript mit dem Fehler „Tabelle Transactions_in_USD nicht gefunden“ fehl. Dies liegt daran, dass die Tabelle Transactions_in_USD automatisch mit der Originaltabelle Transactions zusammengefasst worden wäre.