Informazioni sulla sintassi dello script e sulle strutture dei dati
Estrazione, trasformazione e caricamento
In generale, il modo in cui si caricano i dati nell'app o nello script può essere spiegato mediante il processo di estrazione, trasformazione e caricamento:
-
Estrazione
Il primo passo è l'estrazione di dati dal sistema della sorgente dati. Per definire questa operazione in uno script, si utilizzano le istruzioni SELECT o LOAD. Le differenze tra queste istruzioni sono:
- SELECT viene utilizzata per selezionare dati da una sorgente dati ODBC o da un provider OLE DB. L'istruzione SQL SELECT viene valutata dal provider di dati, non da Qlik Sense.
- LOAD viene utilizzata per caricare dati da un file, da dati definiti nello script, da una tabella caricata in precedenza, da una pagina Web, dal risultato di un'istruzione SELECT successiva o mediante la generazione automatica di dati.
-
Trasformazione
La fase della trasformazione implica la manipolazione dei dati utilizzando le regole e le funzioni di script per ottenere la struttura del modello dati desiderata. Le tipiche operazioni sono:
- Calcolo di nuovi valori
- Conversione di valori codificati
- Ridenominazione dei campi
- Unione di tabelle
- Aggregazione di valori
- Pivoting
- Convalida di dati
-
Caricamento o esportazione
Nel passaggio finale viene eseguito lo script per caricare il modello dati definito nell'app o caricare ed esportare i dati dallo script.
L'obiettivo dovrebbe essere creare un modello dati che consenta una gestione efficiente dei dati in Qlik Sense. Di solito questo significa che si deve mirare a uno schema a fiocco di neve o a uno schema a stella ragionevolmente normalizzato senza alcun riferimento circolare, ossia, a un modello in cui ciascuna entità viene mantenuta in una tabella separata. In altre parole, un tipico modello dati è simile al seguente:
- Una tabella dei fatti centrale contenente le chiavi per le dimensioni e i numeri utilizzati per calcolare le misure (ad esempio numero di unità, importi delle vendite e importi di budget).
- Tabelle circostanti contenenti le dimensioni con tutti i relativi attributi (ad esempio prodotti, clienti, categorie, calendario e fornitori).
Istruzioni di caricamento dei dati
I dati vengono caricati tramite le istruzioni LOAD o SELECT. Ciascuna di queste istruzioni genera una tabella interna. Una tabella può sempre essere considerata come un elenco di dati; ogni record (riga) è una nuova istanza del tipo di oggetto e ogni campo (colonna) è un attributo specifico o proprietà dell'oggetto.
Le differenze tra queste istruzioni sono:
- SELECT viene utilizzata per selezionare dati da una sorgente dati ODBC o da un provider OLE DB. L'istruzione SQL SELECT viene valutata dal provider di dati, non da Qlik Sense.
- LOAD viene utilizzata per caricare dati da un file, da dati definiti nello script, da una tabella caricata in precedenza, da una pagina Web, dal risultato di un'istruzione SELECT successiva o mediante la generazione automatica di dati.
Regole
Per il caricamento dei dati in app e script, si applicano le seguenti regole:
- Qlik Sense non fa distinzione fra tabelle generate da un'istruzione LOAD o SELECT. Quindi, se vengono caricate più tabelle, non ha alcuna importanza se il caricamento viene eseguito da un'istruzione LOAD, da un'istruzione SELECT o da una combinazione delle due.
- L'ordine dei campi nell'istruzione o nella tabella originale nel database è arbitrario per la logica di Qlik Sense.
- I nomi dei campi sono utilizzati nella procedura successiva per identificare i campi e per effettuare associazioni. Questi nomi sono soggetti alla distinzione tra maiuscole e minuscole, il che spesso rende necessario dover assegnare nuovi nomi ai campi nello script.
Esecuzione dello script
Generalmente, in un'istruzione LOAD o SELECT, l'ordine degli eventi è approssimativamente il seguente:
- Valutazione delle espressioni
- Ridenominazione dei campi mediante as
- Ridenominazione dei campi mediante alias
- Qualificazione dei nomi di campo
- Mapping dei dati se il nome di campo coincide
- Salvataggio dei dati in una tabella interna