Affichage et transformation du modèle de données
Le visionneur de modèle de données affiche une vue d'ensemble de la structure des données d'une application. Vous pouvez afficher les métadonnées détaillées des tables et des champs. Vous pouvez également créer des dimensions et des mesures à partir des champs de données.
Cliquez sur Visionneur de modèle de données dans le menu de navigation de l'application pour ouvrir le visionneur de modèle 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 .
Vous pouvez modifier le niveau de zoom en cliquant sur ou sur ou encore en utilisant le curseur. Cliquez sur l'icône 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 dans la partie droite du canevas. Cliquez sur pour déverrouiller la disposition des tables.
Il est également possible d'organiser la disposition de façon automatique à l'aide des options disponibles sur la barre d'outils :
Élément de l'interface utilisateur | Nom | Description |
---|---|---|
Disposition de la grille | Permet d'organiser les tables dans une grille. | |
Disposition automatique | Permet d'organiser les tables de sorte qu'elles tiennent dans la fenêtre. | |
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 :
Élément de l'interface utilisateur | Nom | Description |
---|---|---|
Réduire tout | Permet de réduire toutes les tables de manière à n'afficher que leur nom. | |
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. | |
É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.
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. Le format de fichier est optimisé pour la vitesse de lecture des données à partir d'un script tout en demeurant 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 :
|
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 :
|
É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 bonnes pratiques, voir Meilleures pratiques de modélisation des données.