Trasformazione dei dati
È possibile trasformare e manipolare i dati utilizzando svariate tecniche in Editor caricamento dati.
Uno dei vantaggi offerti dalla manipolazione dei dati è che è possibile scegliere di caricare solo un sottogruppo di dati da un file, ad esempio alcune colonne di una tabella, per rendere la gestione dei dati più efficiente. È inoltre possibile caricare i dati più volte per suddividere i dati non elaborati in molte nuove tabelle logiche. È infine possibile caricare i dati da più sorgenti e unirli in una tabella in Qlik Sense.
In questo argomento verranno illustrate alcune trasformazioni di base dei dati utilizzando un'istruzione LOAD Resident seguita da un'istruzione LOAD Preceding.
Resident LOAD
È possibile utilizzare il qualificatore di sorgente 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.
In questo esempio si creerà una nuova tabella denominata Sales_Buckets e si caricheranno i dati da Table1 utilizzando un'istruzione LOAD Resident. Nella tabella Sales_Buckets si creerà una variabile denominata quantity_threshold, quindi si utilizzerà un'istruzione Where per caricare solo i dati che soddisfano i requisiti di soglia.
- Aprire l'editor caricamento dati nell'app Scripting Tutorial.
- Fare clic sulla scheda Sales.
- Aggiungere quanto segue alla fine dello script:
- Fare clic su Carica dati.
- Aprire il sistema di visualizzazione modello dati. È possibile vedere che è stata creata una nuova tabella denominata Sales_Buckets con i dati caricati in base ai campi specificati in precedenza, insieme alla soglia impostata.
- Aggiungere i dati a una tabella nell'app. Aggiungere Item e Customer come dimensioni. Aggiungere High-Quantity come misura aggregata per Count, quindi di nuovo come misura aggregata per Sum. Aggiungere quindi una nuova colonna come misura con la seguente formula:
- Ora che abbiamo completato l'esempio, impostare come commento lo script per la variabile quantity_threshold e la tabella Sales_Buckets.
SET quantity_threshold = 12000;
Sales_Buckets:
LOAD
"Sales Qty" as "High_Quantity",
"Item Description" as "Item",
"Customer Number" as "Customer"
Resident Table1
Where ("Sales Qty" > $(quantity_threshold));
Lo script avrà questo aspetto:
= Sum(High_Quantity) / Count(High_Quantity)
La tabella mostra, ad esempio, che Customer 10025737 ha effettuato 4 grandi ordini di High Top Dried Mushrooms, con una quantità media di 14.800. Per ordinare i dati nei campi, chiudere la modalità di Modifica facendo clic su Fine.
La parte finale dello script avrà ora il seguente aspetto:
LOAD precedente
Un'istruzione LOAD precedente consente di eseguire trasformazioni e applicare filtri in modo da poter caricare i dati in un unico passaggio. 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'istruzione sopra e così via fino ad arrivare alla valutazione dell'istruzione più in alto.
Come menzionato in precedenza in questo tutorial, è possibile caricare i dati in Qlik Sense utilizzando le istruzioni LOAD e SELECT. Ciascuna di queste istruzioni genera una tabella interna. L'istruzione LOAD viene utilizzata per caricare i dati dai file o da una tabella inline, mentre l'istruzione SELECT viene utilizzata per caricare i dati dai database. In questo tutorial sono stati utilizzati dati caricati da file. In questo esempio si utilizzerà una tabella inline. È tuttavia opportuno precisare che per manipolare i dati è possibile utilizzare un'istruzione LOAD prima di un'istruzione SELECT. I concetti di base sono gli stessi di quelli illustrati qui per LOAD.
Questo esempio non è correlato ai dati che si stanno caricando in questo tutorial. Viene utilizzato solo per mostrare un esempio dell'aspetto che un'istruzione LOAD precedente può avere. Creeremo una tabella inline denominata Transactions nell'editor caricamento dati. L'interpretazione della data verrà eseguita nell'istruzione LOAD precedente, in cui verrà creato un nuovo campo denominato transaction_date. Questo campo viene creato in base al campo sale_date.
- Creare una nuova app e denominarla ReformatDate.
- Aprire l'editor caricamento dati e creare una nuova scheda denominata TransactionData.
- Aggiungere il seguente script:
- Fare clic su Carica dati.
- Aprire il sistema di visualizzazione modello dati. Selezionare ed espandere la tabella Transactions. Si noti come tutti i campi siano stati caricati come specificato dal simbolo * nell'istruzione LOAD precedente. È stato creato un nuovo campo denominato transaction_date, con la data riformattata.
Transactions:
Load *,
Date(Date#(sale_date,'YYYYMMDD'),'DD/MM/YYYY') as transaction_date;
Load * Inline [ transaction_id, sale_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black ];
Lo script avrà questo aspetto: