Utilizzo dei file Apache Parquet
Apache Parquet è un formato di archiviazione a colonne, molto efficiente per archiviare e interrogare grandi set di dati. In Qlik Sense è possibile leggere dati da file Parquet e archiviare tabelle sotto forma di file Parquet.
Parquet consente di interrogare efficacemente colonne specifiche in una tabella, anziché leggere l'intera tabella. Ciò lo rende ideale per l'elaborazione di big data. Inoltre, Parquet consente di comprimere e codificare efficacemente i dati. Ciò può ridurre ulteriormente lo spazio di archiviazione e migliorare le prestazioni dell'interrogazione.
Creazione di file Parquetome dividere
È possibile creare file Parquet utilizzando il comando Store nello script. Dichiarare nello script che si desidera esportare una tabella letta in precedenza, o una sua parte, in un file con un nome esplicito nella posizione desiderata. È possibile annidare i dati che si archiviano nei dati archiviati in Parquet.
Per ulteriori informazioni, vedere Store.
Lettura dei dati dai file Parquet
È possibile leggere dati da un file Parquet così come si leggono da qualsiasi altro file di dati supportato da Qlik Sense. Ciò include Gestione dati, Editor caricamento dati o quando si aggiungono dati a una nuova app.
Per ulteriori informazioni, vedere Caricamento di dati da file.
È inoltre possibile caricare dati da un file Parquet nello script di caricamento dei dati con il comando LOAD. Ad esempio:
Per ulteriori informazioni, vedere Load.
Caricamento di dati da file Parquet annidati
Se un file Parquet contiene dati annidati, deve essere caricato in più istruzioni LOAD, ognuna delle quali deve specificare il sottogruppo da caricare in ogni tabella. L'identificatore Table is è utilizzato per dimostrare un percorso al nodo del gruppo nello schema da caricare.
È possibile utilizzare l'identificatore Il delimitatore è per specificare come dovrebbero essere combinati i nodi. Un'istruzione LOAD che carica un file con dati annidati che non includono un delimitatore utilizza il valore specificato dalla variabile dello script FieldNameDelimiter. Se non viene fornito nessun delimitatore e FieldNameDelimiter non è configurato, allora il delimitatore predefinito sarà '.'.
Vengono caricati solo i nodi che corrispondono al percorso Table is.
I nodi di dati vengono caricati in un file senza annidarli.
I nodi del gruppo raggruppano i campi nel gruppo aggiungendo il relativo nome al nome del campo. Ad esempio, i gruppi con field1 e field2 vengono caricati come group.field1 e group.field2.
I nodi elenco generano i campi chiave che sono utilizzati per collegare le tabelle. Per esempio, %Key_group.list. Qualsiasi gruppo o nodo di dati nell'elenco deve essere caricato in un'istruzione LOAD separata. Verrà aggiunto anche un campo chiave all'elenco padre.
I seguenti esempi mostrano lo stesso file Parquet annidato, creato nell'esempio in Archiviazione dei dati annidati in file Parquet, caricato in un'app, utilizzando Gestione dati e Editor caricamento dati (con la funzione di script predefinita Seleziona dati e funzioni di script personalizzate).
Esempio: Gestione dati
Se si carica customer.parquet in Gestione dati e si applicano tutte le associazioni consigliate, si ottiene il seguente modello dati:
Esempio: Editor caricamento dati (Seleziona dati)
Se si caricano i dati utilizzando Seleziona dati in Editor caricamento dati, si ottiene il seguente script:
Il modello dati appare così in Sistema di visualizzazione modello dati.
Esempio: Editor caricamento dati (script di caricamento personalizzato)
Se si utilizza uno script di caricamento personalizzato, si ottiene un maggiore controllo sul modo in cui campi e tabelle vengono caricati da customer.parquet. Il seguente script di caricamento carica tabelle e campi da company.parquet:
Questi risultati nel seguente modello dati, che è identico al modello dati originale prima che i dati siano archiviati nel file Parquet.
Limitazioni
I file Parquet hanno le seguenti limitazioni:
-
I file parquet che contengono un campo data e ora int96 potrebbero non caricarsi correttamente.
Int96 è un tipo di dato deprecato che contiene informazioni su data e ora senza il fuso orario. Verrà eseguito un tentativo di lettura del campo in UTC ma, dato che ci sono implementazioni di fornitori di diverso tipo, il successo del tentativo non è garantito.
Verificare i dati caricati e adattarli al fuso orario corretto mediante uno scarto, se necessario.