Vai al contenuto principale
Trasformazione dei dati

IN QUESTA PAGINA

Trasformazione dei dati

È possibile trasformare e manipolare i dati utilizzando svariate tecniche nell'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.

  1. Aprire l'editor caricamento dati nell'app Scripting Tutorial.
  2. Fare clic sulla scheda Sales.
  3. Aggiungere quanto segue alla fine dello script:
  4. 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:

    Finestra dello script di caricamento con lo script per creare una nuova tabella denominata Sales_Buckets
    Load script window with script to create new table called Sales_Buckets.

  5. Fare clic su Carica dati.
  6. 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.
  7. Tabella Sales_Buckets nel sistema di visualizzazione modello dati
    Sales_Buckets table in data model viewer.

  8. 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:
  9. = Sum(High_Quantity) / Count(High_Quantity)

    Nuova misura con formula
    New measure with formula.

    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.

    Tabella che mostra i clienti che hanno effettuato grandi ordini
    Table showing customers that have made large orders.

  10. Ora che abbiamo completato l'esempio, impostare come commento lo script per la variabile quantity_threshold e la tabella Sales_Buckets.
  11. La parte finale dello script avrà ora il seguente aspetto:

    Script impostato come commento
    Commented out script.

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.

  1. Creare una nuova app e denominarla ReformatDate.
  2. Aprire l'editor caricamento dati e creare una nuova scheda denominata TransactionData.
  3. Aggiungere il seguente script:
  4. Transazioni:  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:

    Script di caricamento con istruzione LOAD precedente
    Load script with preceding load.

  5. Fare clic su Carica dati.
  6. 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.
  7. Nuovo campo denominato transaction_date nel sistema di visualizzazione modello dati
    New field called transaction_date in data model viewer.