Meilleures pratiques de modélisation des données

Cette section décrit différentes manières de charger des données dans l'application Qlik Sense, suivant la structure et le modèle de données que vous souhaitez obtenir.

Conversion de colonnes de données en lignes

Mes données ressemblent probablement à celles-ci et je souhaite disposer les chiffres des ventes dans un champ distinct :

Table de données d'origine
Année Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

Utilisez le préfixe Crosstable lorsque vous chargez la table.

Le résultat final aura l'aspect suivant :

Table après application du préfixe Crosstable
Year Quarter Sales
2013 Q1 34
2013 Q2 54
2013 Q3 53
2013 Q4 52
2014 Q1 47
... ... ...

Pour en savoir plus sur les tableaux croisés, voir Utilisation des tableaux croisés dans le script de chargement de données et Crosstable.

Conversion de lignes de données en colonnes

Je dispose d'une table générique contenant trois champs semblables à ceux-ci et je souhaite disposer chaque attribut sous forme de table distincte :

Table générique comportant trois champs
Object Attribute Value
ball color red
ball diameter 25
ball weight 3
box color 56
box height 30
box length 20
box width 25

Proposed action  

Créez un modèle de données générique à l'aide du préfixe de chargement Generic.

Vous obtiendrez un modèle de données qui aura l'aspect suivant :

Generic data model.

Pour en savoir plus sur les données génériques, voir Bases de données génériques et Generic.

Chargement de données organisées en niveaux hiérarchiques, par exemple un schéma organisationnel

Mes données sont stockées dans une table de nœuds adjacents qui a l'aspect suivant :

Table de nœuds adjacents
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

Chargez les données avec le préfixe Hierarchy afin de créer une table de nœuds étendus :

Table de nœuds étendus
NodeID ParentNodeID Title Level1 Level2 Level3
1 - General manager General manager - -
2 1 Country manager General manager Country manager -
3 2 Region manager General manager Country manager Region manager

Pour en savoir plus sur les niveaux hiérarchiques, voir Chargement de données hiérarchiques et Hierarchy.

Chargement des seuls enregistrements nouveaux ou mis à jour dans une base de données volumineuse

Je dispose d'une base de données comportant un grand nombre d'enregistrements et je ne souhaite pas recharger la totalité de la base de données pour actualiser le contenu de mon application. J'aimerais simplement charger les enregistrements nouveaux ou mis à jour, et effacer ceux qui ont été supprimés de la base de données.

Proposed action  

Implémentez une solution de chargement incrémentiel à l'aide de fichiers QVD.

Pour plus d'informations, voir Chargement incrémentiel d'enregistrements nouveaux et mis à jour.

Combinaison de données issues de deux tables avec un champ commun

Qlik Sense associe les tables avec un champ commun de manière automatique, mais je souhaite contrôler la façon dont les tables sont combinées.

Proposed action : Join / Keep

Vous pouvez combiner deux tables en une seule table interne à l'aide des préfixes Join ou Keep.

Pour plus d'informations, voir Combinaison de tables grâce à Join et Keep.

Proposed action : Mappage

Une solution alternative à la jointure de tables consiste à utiliser le mappage, qui automatise la recherche de valeurs associées dans une table de mappage. Cette méthode permet de réduire la quantité de données à charger.

Pour plus d'informations, voir Utilisation du mappage comme alternative à la jointure.

Correspondance d'une valeur discrète avec un intervalle

Je dispose d'une table de valeurs numériques discrètes (Event) et je souhaite la faire correspondre avec un ou plusieurs intervalles (Start et End).

Table de valeurs numériques discrètes (Event)
Time Event Commentaire
00:00 0 Début de l'équipe 1
01:18 1 Arrêt de la ligne
02:23 2 Redémarrage de la ligne 50 %
04:15 3 Vitesse de la ligne 100 %
08:00 4 Début de l'équipe 2
11:43 5 Fin de la production
Table comprenant des intervalles (Start et End)
Début End Ordre
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

Utilisez le préfixe IntervalMatch pour lier le champ Time à l'intervalle défini par Start et End.

Pour plus d'informations, voir Correspondance entre intervalles et données discrètes.

Si cet intervalle n'est pas défini de manière explicite par les préfixes de début et de fin (start et end), mais simplement au moyen d'un horodatage de modification tel que dans la table ci-dessous, vous devez créer une table d'intervalles.

Table comportant un horodatage de modification
Currency Change Data Rate
EUR - 8.59
EUR 28/01/2013 8.69
EUR 15/02/2013 8.45
USD - 6.50
USD 10/01/2013 6.56
USD 03/02/2013 6.30

Pour plus d'informations, voir Création d'un intervalle de dates à partir d'une seule date.

Gestion de valeurs de champ incohérentes

Mes données contiennent des valeurs de champ qui ne sont pas nommées de manière cohérente dans différentes tables. Par exemple, une table contient la valeur US dans la colonne Country tandis qu'une autre contient la valeur United States. Cette situation empêchera la création d'associations.

Table 1
Country Region
US Maryland
US Idaho
US New York
US California
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

Procédez au nettoyage des données à l'aide d'une table de mappage, qui permettra de comparer les valeurs des champs et d'activer les associations appropriées.

Pour plus d'informations, voir Nettoyage de données.

Gestion des incohérences dans la casse des valeurs de champ

Mes données contiennent des valeurs de champ qui ne sont pas mises en forme de manière cohérente dans différentes tables. Par exemple, une table contient la valeur single dansType tandis qu'une autre table contient la valeur Single pour le même champ. Une telle situation empêche les associations, car le champ Type contiendra les deux valeurs single et Single ; la casse compte en effet.

Table 1
Type Price
single 23
double 39
Table 2
Type Couleur
Couleur unique Red
Couleur unique Blue
Double Blanc
Double Noir

Proposed action  

Si vous avez chargé les données via Ajouter des données, vous pouvez corriger le problème dans le Gestionnaire de données.

Procédez comme suit :

  1. Dans le Gestionnaire de données, ouvrez Table2 dans l'éditeur de table.
  2. Renommez le champ Type en Table2.Type.

    Si vous avez simplement ajouté la table via Ajouter des données en ayant activé la fonction de profilage des données, il est possible que le champ s'appelle déjà Table2.Type afin d'éviter une association automatique. Dans ce cas, cette procédure associe les deux tables.

  3. Créez un champ calculé au moyen de l'expression Lower(Table2.Type) et nommez-le Type.
  4. Cliquez sur Charger les données.

Les tables Table1 et Table2 doivent maintenant être associées par le champ Type, qui contient uniquement des valeurs en minuscules, comme single et double.

Si vous souhaitez utiliser un autre type de casse, vous pouvez également le faire au moyen de procédures similaires, mais n'oubliez pas que les tables seront associées à l'aide des champs portant le même nom.

  • Pour que la première lettre de toutes les valeurs soit mise en majuscules, par exemple Single, créez plutôt le champ calculé Type dans Table1, et utilisez l'expression Capitalize(Table1.Type).
  • Pour que toutes les valeurs soient intégralement mises en majuscules, par exemple SINGLE, créez le champ calculé Type dans les deux tables, et utilisez les expressions Upper(Table1.Type) et Upper(Table2.Type) respectivement.

Pour en savoir plus sur les champs calculés, voir Utilisation de champs calculés.

Pour en savoir plus sur la mise en majuscules, voir Capitalize - fonction de script et fonction de graphique, Lower - fonction de script et fonction de graphique et Upper - fonction de script et fonction de graphique.

Chargement de données géospatiales pour visualiser des données sur une carte

Je dispose de données que je souhaite visualiser au moyen d'une carte, par exemple des données de ventes par pays ou par magasin. Pour utiliser la visualisation d'une carte, je dois charger des données de zones ou des données de points.

Proposed action  

Vous pouvez charger des données de zones ou de points correspondant aux lieux de vos valeurs de données à partir d'un fichier KML ou Excel. Vous devez par ailleurs charger l'arrière-plan réel de la carte.

Pour plus d'informations, voir Chargement de données de carte personnelles.