Utilisation de fichiers Apache Parquet
Apache Parquet est un format de stockage sous forme de colonnes, très efficace pour le stockage et le lancement de requêtes sur de grands jeux de données. Dans Qlik Sense, vous pouvez lire les données des fichiers Parquet et stocker des tables sous forme de fichiers Parquet.
Parquet permet de lancer efficacement des requêtes sur des colonnes spécifiques d'une table au lieu de lire la table toute entière. Ce format est ainsi facile à utiliser pour le traitement de données volumineuses. De plus, Parquet supporte la compression et le chiffrement efficaces des données. Cela permet de réduire davantage l'espace de stockage et d'améliorer les performances des requêtes.
Création de fichiers Parquet
Vous pouvez créer des fichiers Parquet via la commande Store dans le script. Il suffit de spécifier dans le script qu'une table déjà lue en totalité ou en partie doit être exportée vers un fichier nommé de manière explicite à l'emplacement de votre choix. Vous pouvez imbriquer les données que vous stockez dans des données dans des fichiers Parquet.
Pour plus d'informations, voir Store.
Lecture de données à partir de fichiers Parquet
Vous pouvez lire les données d'un fichier Parquet tout comme de n'importe quel autre fichier de données supporté par Qlik Sense. Cela inclut le Gestionnaire de données, l'éditeur de chargement de données ou l'ajout de données à une nouvelle application.
Pour plus d'informations, voir Chargement de données à partir de fichiers.
Vous pouvez également charger des données depuis un fichier Parquet dans le script de chargement de données via la commande LOAD. Par exemple :
Pour plus d'informations, voir Load.
Chargement de données à partir de fichiers Parquet imbriqués
Si un fichier Parquet contient des données imbriquées, il doit être chargé dans plusieurs instructions load, chacune spécifiant le sous-ensemble à charger dans chaque table. Le spécificateur Table is sert à garantir un chemin d'accès au nœud de groupe du schéma à charger.
Seuls les nœuds correspondant au chemin d'accès Table is sont chargés.
Les nœuds de données sont chargés dans un fichier sans imbrication.
Les nœuds de groupe regroupent les champs dans le groupe en ajoutant leur nom au nom de champ. Par exemple, les groupes avec field1 et field2 sont chargés sous forme de group.field1 et de group.field2.
Les nœuds de liste génèrent des champs clés utilisés pour lier les tables. Par exemple, %Key_group.list. Tout nœud de données ou de groupe de la liste doit être chargé dans une instruction load distincte. Un champ clé vers la liste parente est également ajouté.
Les exemples suivants montrent le même fichier Parquet imbriqué, créé dans l'exemple à la section Stockage de données imbriquées dans des fichiers Parquet, chargé dans une application, via Gestionnaire de données et Éditeur de chargement de données (avec le script par défaut de Sélectionner des données et un script personnalisé).
Gestionnaire de données
Si vous chargez customer.parquet dans Gestionnaire de données et si vous appliquez l'ensemble des associations recommandées, vous obtenez le modèle de données suivant :
Éditeur de chargement de données (Sélectionner des données)
Si vous chargez les données via Sélectionner des données dans Éditeur de chargement de données, vous obtenez le script suivant :
Le modèle de données ressemble à ceci dans Visionneur de modèle de données.
Éditeur de chargement de données (script de chargement personnalisé)
Si vous utilisez un script de chargement personnalisé, vous avez davantage de contrôle sur la manière dont les champs et les tables sont chargés depuis customer.parquet. Le script de chargement suivant charge les tables et les champs de company.parquet :
Vous obtenez le modèle de données suivant, identique au modèle de données initial avant le stockage des données dans le fichier Parquet.
Limitations
Les fichiers Parquet présentent les limitations suivantes :
-
Il se peut que les fichiers Parquet contenant un champ d'horodatage int96 ne soient pas chargés correctement.
Int96 est un type de données obsolète qui contient un horodatage sans information de fuseau horaire. Il sera effectué une tentative de lecture du champ au format UTC, mais, comme il existe différentes mises en œuvre de fournisseurs, il n'existe aucune garantie que cela fonctionne.
Vérifiez les données chargées et réglez-les sur le fuseau horaire correct avec un décalage, si nécessaire.