Le préfixe NoConcatenate oblige deux tables chargées aux ensembles de champs identiques à être traitées comme deux tables internes distinctes. Sinon, elles seraient automatiquement concaténées.
NoConcatenate(
loadstatement |
selectstatement )
Par défaut, si une table chargée contient un nombre identique de champs et des noms de champ identiques par rapport à une table précédemment chargée dans le script, Qlik Sense concatène automatiquement ces deux tables. Cela se produit, même si la deuxième table est nommée différemment.
Cependant, si le préfixe de script NoConcatenate est inclus avant l'instruction LOAD ou l'instruction SELECT de la deuxième table, ces deux tables sont chargées séparément.
Un cas d'usage type de NoConcatenate se produit si vous avez besoin de créer une copie temporaire d'une table pour effectuer des transformations temporaires sur cette copie, tout en conservant une copie des données originales. Grâce à NoConcatenate, vous pouvez effectuer cette copie sans la rajouter implicitement à la table source.
Paramètres régionaux
Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/JJ/AAAA. Le format de date est indiqué dans l'instruction SET DateFormat de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples.
Les paramètres régionaux par défaut des applications sont basés sur les paramètres système régionaux de l'ordinateur ou du serveur sur lequel Qlik Sense est installé. Si le serveur Qlik Sense auquel vous accédez est configuré sur la Suède, l'éditeur de chargement de données utilisera les paramètres régionaux suédois pour les dates, l'heure et la devise. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Sense. Qlik Sense sera affiché dans la même langue que celle du navigateur que vous utilisez.
Lors de l'exécution du script, la table Sales est implicitement concaténée à la table Transactions existante en raison du fait que les deux ensembles de données partage un nombre identique de champs portant des noms de champ identiques. Cela se produit, même si la balise de nom de la deuxième table tente de nommer l'ensemble de résultats ‘Sales’.
Vous pouvez voir que l'ensemble de données Sales est implicitement concaténé en consultant le journal Progression du chargement de données.
Journal Progression du chargement de données montrant la concaténation implicite des données Transactions.
Exemple 2 – scénario de cas d'usage
Vue d'ensemble
Dans ce scénario de cas d'usage, vous avez :
Un ensemble de données de transactions avec :
id
date
montant (en GBP)
Une table de devises avec :
taux de conversion d'USD en GBP
Un deuxième ensemble de données de transactions avec :
id
date
montant (en USD)
Vous allez charger cinq scripts dans l'ordre séquentiel.
Le premier script de chargement contient un ensemble de données initial avec des dates et des montants en GBP, envoyé à une table appelée Transactions.
Le deuxième script contient les éléments suivants :
Un deuxième ensemble de données avec des dates et des montants en USD, envoyé à une table appelée Transactions_in_USD.
Le préfixe noconcatenate, placé avant l'instruction LOAD de l'ensemble de données Transactions_in_USD, pour empêcher la concaténation implicite.
Le troisième script de chargement contient le préfixe join, utilisé pour créer un taux de change de devises entre les devises GBP et USD dans la table Transactions_in_USD.
Le quatrième script de chargement contient le préfixe concatenate, qui ajoutera la valeur Transactions_in_USD à la table Transactions initiale.
Le cinquième script de chargement contient l'instruction drop table, qui supprimera la table Transactions_in_USD dont les données ont été concaténées à la table Transactions.
Chargez les données et accédez au visionneur de modèle de données. Sélectionnez la table Transactions_in_USD et vous verrez que chaque enregistrement existant comporte une valeur de champ 'rate' égale à 0,7.
Quatrième script de données
Via l'instruction resident load, ce script de chargement concatène la table Transactions_in_USD à la table Transactions après avoir converti les montants en USD.
Chargez les données et accédez à la table. Vous verrez de nouvelles entrées avec des montants en GBP dans les lignes huit à quatorze.
Résultats du quatrième script de chargement
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
Cinquième script de chargement
Ce script de chargement abandonne les entrées en double du tableau de résultats du quatrième script de chargement, laissant uniquement les entrées avec des montants en GBP.
drop tables Transactions_in_USD;
Résultats
Chargez les données et accédez à la table.
Résultats du cinquième script de chargement
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
Après le chargement du cinquième script de chargement, le tableau de résultats montre l'ensemble des quatorze transactions qui existaient dans les deux ensembles de données de transactions ; en revanche, les montants des transactions 8 à 14 ont été convertis en GBP.
Si on supprime le préfixe NoConcatenate utilisé avant Transactions_in_USD dans le deuxième script de chargement, le script échoue avec l'erreur :“Table 'Transactions_in_USD' not found” (Table introuvable). Cela est dû au fait que la table Transactions_in_USD aurait été automatiquement concaténée à la table Transactions originale.
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !