Accéder au contenu principal

Affichage et transformation du modèle de données

Le visionneur de modèle de données est une vue d'ensemble de la structure des données d'une application. Vous pouvez afficher les métadonnées détaillées relatives aux tables et aux champs. Vous pouvez également créer des dimensions et des mesures à partir des champs de données.

Chaque table de données est représentée par une boîte dont le titre correspond au nom de la table et qui répertorie tous les champs figurant dans la table. Les associations de table sont affichées sous forme de lignes, avec des traits en pointillé pour matérialiser les références circulaires. Lorsque vous sélectionnez une table ou un champ, la mise en évidence des associations vous donne instantanément une représentation visuelle des relations entre les champs et les tables. Vous pouvez rechercher des tables et des champs spécifiques en cliquant sur Search data model.

Le mode de données affiche la structure des données de l'application.

Data model viewer.

Vous pouvez modifier le niveau de zoom en cliquant sur zoom in, zoom out ou en utilisant le curseur. Cliquez sur l'icône Home pour restaurer le niveau de zoom 1:1.

Le volet Aperçu vous permet de contrôler le contenu d'une table ou d'un champ. Vous pouvez également ajouter des dimensions et des mesures à l'application si vous sélectionnez un champ. Pour plus d'informations, voir Aperçu des tables et des champs dans le visionneur de modèle de données.

Déplacement de tables

Vous pouvez déplacer les tables en les faisant glisser sur le canevas. La position des tables est enregistrée en même temps que l'application.

Vous pouvez verrouiller la disposition des tables (positions et tailles) en cliquant sur Locked dans la partie droite du canevas. Cliquez sur Unlocked pour déverrouiller la disposition des tables.

Il est également possible d'organiser la disposition de façon automatique à l'aide des options Grid View disponibles sur la barre d'outils :

Options permettant de déplacer les tables
Élément de l'interface utilisateur Nom Description
Grid View Disposition de la grille Permet d'organiser les tables dans une grille.
auto Disposition automatique Permet d'organiser les tables de sorte qu'elles tiennent dans la fenêtre.
Time Restaurer la disposition Permet de rétablir l'état de la disposition défini lors de la dernière ouverture du visionneur de modèle de données.

Redimensionnement de tables

Vous pouvez ajuster la taille d'affichage d'une table à l'aide de la flèche située dans le coin inférieur droit de la table. La taille d'affichage n'est pas enregistrée avec l'application.

Une autre solution consiste à utiliser les options de taille d'affichage automatique disponibles sur la barre d'outils :

Options permettant de redimensionner les tables
Élément de l'interface utilisateur Nom Description
Collapse Réduire tout Permet de réduire toutes les tables de manière à n'afficher que leur nom.
Reduce  Afficher les champs liés Permet de réduire la taille des tables de manière à n'afficher que leur nom et tous les champs comportant des associations à d'autres tables.
Expand  Étendre tout Permet d'agrandir les tables de manière à afficher tous les champs qu'elles contiennent.

Performances du modèle de données

Il existe des indicateurs qui peuvent avoir un impact sur les performances d'un modèle de données. Chacun constitue une meilleure pratique qui améliore la facilité d'utilisation d'une application.

Meilleures pratiques pour améliorer les performances des modèles de données
Action Description

Suppression des clés synthétiques

Qlik Sense crée des clés synthétiques quand deux ou davantage de tables de données comportent deux ou davantage de champs en commun. Cela indique une erreur dans le script ou le modèle de données. Pour diagnostiquer les clés synthétiques, voir Clés synthétiques.

Suppression des références circulaires du modèle de données

Il se produit des références circulaires quand deux champs comportent plus d'une association. Qlik Sense tente de les résoudre en changeant la connexion à l'une des tables. Cependant, tous les avertissements de référence circulaire doivent être résolus ; voir Principe et résolution des références circulaires.

Granularité appropriée des données

Vous ne devriez charger que les données nécessaires. Par exemple : un groupe d'utilisateurs ne nécessite que les données divisées par semaine, mois et année. Vous pouvez soit charger les données agrégées, soit agréger les données au sein du script de chargement, pour économiser de la mémoire. Si un utilisateur a besoin de visualiser les données à un niveau de granularité inférieur, vous pouvez utiliser ODAG ou le chaînage de documents.

Utilisation, autant que possible, de QVDs

Un fichier QVD est un fichier contenant une table de données exportée à partir de Qlik Sense. Ce format de fichier est optimisé en termes de vitesse lors de la lecture de données d'un script, tout en restant très compact. La lecture de données à partir d'un fichier QVD est généralement 10 à 100 fois plus rapide qu'à partir d'autres sources de données. Pour plus d'informations, voir : Utilisation de fichiers QVD.

Optimisation des fichiers QVD lors du chargement

Les fichiers QVD peuvent être lus dans deux modes : standard (rapide) et optimisé (plus rapide). Le mode sélectionné est déterminé automatiquement par le moteur de script.

Les charges optimisées présentent certaines limitations. Il est possible de renommer des champs, mais n'importe laquelle de ces opérations entraînera un chargement standard :

  • Toutes les transformations appliquées aux champs chargés
  • Utilisation d'une clause where entraînant la décompression des enregistrements par Qlik Sense
  • Application de l'instruction Map à un champ chargé

Exploitation des chargements incrémentiels

Si votre application se connecte à une grande quantité de données provenant de bases de données mises à jour en permanence, le rechargement de l'ensemble de données complet peut se révéler extrêmement fastidieux. Au lieu de cela, vous devriez utiliser le chargement incrémentiel, pour récupérer les enregistrements nouveaux ou modifiés de la base de données. Pour plus d'informations, voir Chargement incrémentiel d'enregistrements nouveaux et mis à jour.

Consolidation du modèle Snowflake

Si vous avez un modèle de données de type flocon de neige, vous pouvez peut-être réduire le nombre de tables de données en joignant certaines d'entre elles à l'aide du préfixe Join ou d'un autre type de mappage. Cela est particulièrement important pour les tables de faits de grandes tailles. Une bonne règle d'or consiste à avoir une seule table de grande taille. Pour plus d'informations, voir To Join or Not to Join.

Dénormalisation des tables comportant un petit nombre de champs

Si vous disposez de deux tables avec quelques champs, les joindre peut améliorer les performances. Pour plus d'informations, voir Combinaison de tables grâce à Join et Keep.

Tables (de feuilles) de recherche dénormalisées avec chargements de mappage

Vous ne devriez pas utiliser le préfixe Join si vous ne devez ajouter qu'un champ d'une table à l'autre. Vous devriez utiliser la fonction de recherche ApplyMap ; voir Don't join - use ApplyMap.

Suppression ou découplage des horodatages d'un champ de date

Les champs de date peuvent occuper l'espace, en présence de l'horodatage, car la représentation de chaîne est plus grande et le nombre de valeurs distinctes supérieur. Si l'analyse n'a pas besoin d'être précise, vous pouvez arrondir l'horodatage, par exemple, sur l'heure la plus proche, via Timestamp(Floor(YourTimestamp,1/24)), ou supprimer totalement le composant horaire via Date(Floor(YourTimestamp)).

Si vous souhaitez utiliser l'horodatage, vous pouvez le découpler de la date elle-même. Vous pouvez utiliser la même fonction Floor(), puis créer un champ avec l'heure extraite en utilisant une fonction telle que la suivante : Time(Frac(YourTimestamp)).

Suppression des champs inutiles du modèle de données

Vous ne devriez charger que les champs nécessaires dans votre modèle de données. Évitez d'utiliser Load * et SELECT. Assurez-vous de conserver :

  • Les champs nécessaires à votre analyse.
  • Les champs effectivement utilisés dans l'application.

Éviter les tables de liaison avec de grands volumes de données

Vous devriez utiliser autant que possible des tables de liaison. Cependant, si vous avez affaire à de grands volumes de données, notez que les tables concaténées peuvent surpasser les performances des tables de liaison.

Division des dimensions concaténées en nouveaux champs

Vous devriez diviser les dimensions concaténées en champs distincts. Cela réduit le nombre d'occurrences de valeurs uniques dans vos champs. Cette opération est similaire à l'optimisation des horodatages.

Utilisation autant que possible d'AutoNumber

Vous pouvez créer un chargement optimisé en commençant par charger les données à partir d'un fichier QVD, puis en convertissant les valeurs en clés de symbole à l'aide de l'instruction AutoNumber. Pour plus d'informations, voir AutoNumber.

Éviter les îlots de données

Les îlots de données peuvent s'avérer utiles, mais ils affectent généralement les performances. Si vous créez des îlots pour les valeurs de sélection, utilisez des variables.

Stockage des QVD en fonction de plages de temps incrémentielles

Vous devriez stocker les QVD dans des segments, par exemple, mensuels. Ces QVD mensuels plus petits peuvent ensuite prendre en charge de nombreuses applications différentes qui n'auront peut-être pas besoin de la totalité des données.

Pour découvrir d'autres meilleures pratiques, voir Meilleures pratiques de modélisation des données.