Chargement de données à partir d'une table déjà chargée
Il existe deux façons de charger et de transformer des données à partir d'une table déjà chargée.
- Resident LOAD - où vous utilisez le prédicat Resident dans une instruction LOAD ultérieure pour charger une nouvelle table.
- Preceding load - où vous effectuer un chargement à partir de l'instruction LOAD ou SELECT antérieure sans préciser de source.
Choix entre l'instruction Resident et l'instruction LOAD antérieure
Dans la plupart des cas, les deux méthodes permettent d'aboutir au même résultat. Une instruction LOAD antérieure constitue généralement l'option plus rapide, mais certains cas nécessitent l'emploi de Resident LOAD :
- Si vous souhaitez utiliser la clause Order_by pour trier les enregistrements avant le traitement de l'instruction LOAD.
- Si vous souhaitez utiliser l'un des préfixes suivants, auquel cas l'instruction LOAD antérieure n'est pas prise en charge :
- Crosstable
- Join
- Intervalmatch
Resident LOAD
Vous pouvez utiliser le prédicat Resident dans une instruction LOAD pour charger des données à partir d'une table déjà chargée. Cela s'avère utile lorsque vous souhaitez effectuer des calculs à partir des données chargées au moyen d'une instruction SELECT et que vous ne pouvez pas utiliser les fonctions de Qlik Sense telles que la manipulation des dates ou des valeurs numériques.
Dans cet exemple, l'interprétation de la date est effectuée dans l'instruction de chargement Resident, car il est impossible de le faire dans l'instruction Crosstable LOAD initiale.
Preceding load
La fonction preceding load vous permet de charger une table en une seule fois et de définir plusieurs transformations successives. En bref, il s'agit d'une instruction LOAD chargée à partir de l'instruction LOAD ou SELECT située en dessous, sans que vous deviez spécifier un qualificateur source, tel que From ou Resident, comme vous le feriez habituellement. Vous pouvez ainsi empiler autant d'instructions LOAD que vous le souhaitez. L'instruction située au bas de la pile sera évaluée en premier, puis l'instruction au-dessus, jusqu'à l'instruction figurant en haut de la pile.
Vous pouvez parvenir au même résultat à l'aide de Resident, mais dans la plupart des cas, une instruction LOAD antérieure est plus rapide.
L'emploi d'une instruction preceding load présente l'avantage supplémentaire de conserver un calcul à un emplacement donné et de pouvoir le réutiliser dans les instructions LOAD situées avant.
Transformation des données chargées par une instruction SELECT
Si vous chargez les données d'une base de données à l'aide d'une instruction SELECT, vous ne pouvez pas utiliser les fonctions Qlik Sense pour les interpréter dans l'instruction SELECT. La solution consiste à ajouter une instruction LOAD permettant d'effectuer la transformation des données, au-dessus de l'instruction SELECT.
Dans cet exemple, nous interprétons une date stockée sous la forme d'une chaîne à l'aide de la fonction Qlik Sense Date# dans une instruction LOAD en utilisant l'instruction SELECT antérieure comme source.
Simplification d'un script via la réutilisation des calculs
Dans cet exemple, un calcul est utilisé plusieurs fois dans le script :
L'introduction du calcul dans un premier temps permet de le réutiliser dans la fonction Age, au sein d'une instruction LOAD antérieure :
Limitations des instructions preceding load
- Les préfixes suivants ne peuvent pas être utilisés avec l'instruction LOAD antérieure :Join, Crosstable et Intervalmatch.
- Si vous utilisez l'instruction distinct pour charger des enregistrements uniques, vous devez placer distinct dans la première instruction LOAD, car distinct n'affecte que la table de destination.