Caricamento di dati da una tabella caricata in precedenza
Sono disponibili due metodi per il caricamento e la trasformazione dei dati da una tabella già caricata.
- Resident LOAD - in cui si utilizza il predicato Resident in un'istruzione LOAD successiva per caricare una nuova tabella.
- Preceding load - in cui si esegue il caricamento dall'istruzione LOAD o SELECT precedente senza specificare una sorgente.
Resident o Preceding LOAD?
In alcuni casi, è possibile ottenere lo stesso risultato utilizzando entrambi i metodi. Un'istruzione Preceding LOAD è generalmente l'opzione più veloce, ma vi sono casi in cui occorre utilizzare Resident LOAD:
- Se si desidera utilizzare la clausola Order_by per ordinare i record prima di elaborare l'istruzione LOAD.
- Se si desidera utilizzare uno dei seguenti prefissi, nel cui caso l'istruzione preceding LOAD non è supportata:
- Crosstable
- Join
- Intervalmatch
Resident LOAD
È possibile utilizzare il predicato Resident in un'istruzione LOAD per caricare i dati da una tabella caricata in precedenza. Questo risulta utile quando si desidera eseguire calcoli sui dati caricati con un'istruzione SELECT in cui non è possibile utilizzare le funzioni di Qlik Sense, come la gestione di valori numerici o di data.
Esempio:
In questo esempio l'interpretazione della data viene eseguita nel caricamento di Resident, in quanto non può essere effettuata nella sezione Crosstable LOAD iniziale.
Caricamento precedente
La funzione preceding load consente di caricare una tabella in un solo passaggio, tuttavia definisce diverse trasformazioni successive. Fondamentalmente si tratta di un'istruzione LOAD che viene caricata dall'istruzione LOAD o SELECT sottostante, senza la specifica di un qualificatore di sorgente quale From o Resident come si farebbe normalmente. In questo modo è possibile impilare qualsiasi numero di istruzioni LOAD. L'istruzione in fondo viene valutata per prima, quindi viene valutata l'espressione sopra e così via fino ad arrivare alla valutazione dell'istruzione nella parte superiore.
Lo stesso risultato può essere ottenuto mediante l'istruzione Resident, tuttavia, nella maggior parte dei casi l'utilizzo di un'istruzione preceding LOAD è l'alternativa più rapida.
Un altro vantaggio offerto dall'istruzione preceding load consiste nella possibilità di mantenere il calcolo in un punto e di poterlo riutilizzare nelle istruzioni LOAD collocate sopra.
Esempio 1: Trasformazione dei dati caricati mediante un'istruzione SELECT
Se si caricano i dati da un database mediante un'istruzione SELECT, non è possibile utilizzare le funzioni di Qlik Sense per interpretare i dati in tale istruzione SELECT. La soluzione consiste nell'aggiungere un'istruzione LOAD, in cui viene eseguita la trasformazione dei dati, sopra l'istruzione SELECT.
In questo esempio i dati vengono interpretati come stringa mediante la funzione di Qlik Sense Date# in un'istruzione LOAD utilizzando l'istruzioneSELECT precedente come sorgente.
Esempio 2: Semplificazione di uno script mediante il riutilizzo dei calcoli
In questo esempio i calcoli vengono riutilizzati più volte nello script:
Mediante l'introduzione del calcolo nel primo passaggio, è possibile riutilizzarlo nella funzione Age in un'istruzione preceding LOAD:
Limitazioni di preceding LOAD
- I prefissi seguenti non possono essere utilizzati insieme all'istruzione preceding LOAD:Join, Crosstable e Intervalmatch.
- Se si sta utilizzando distinct per caricare record univoci, è necessario inserire la clausola distinct nella prima istruzione LOAD, dal momento che distinct ha effetto solo sulla tabella di destinazione.