Clés synthétiques

Lorsque plusieurs tables internes comportent deux champs ou plus en commun, il s'agit d'une relation de clé composée. QlikView gère cette relation en créant automatiquement des clés synthétiques. Ces clés sont des champs anonymes qui représentent toutes les combinaisons existantes de la clé composée.

Si vous recevez un avertissement concernant les clés synthétiques lors du chargement de données, il est recommandé de vérifier la structure des données dans le visionneur de tables. Assurez-vous que le modèle de données est correct. Il se peut qu'il soit correct, mais que la présence d'une clé synthétique s'explique par une erreur dans le script, ce qui arrive relativement fréquemment.

La présence de plusieurs clés synthétiques est souvent le signe d'un modèle de données incorrect, mais pas nécessairement. Néanmoins, la présence de clés synthétiques basées sur d'autres clés synthétiques constitue un signe certain de modèle de données incorrect.

Avertissement: Lorsque le nombre de clés synthétiques augmente, en fonction de la quantité de données, de la structure des tables et d'autres facteurs, QlikView ne parvient pas toujours à les gérer de manière efficace, ce qui peut finir par prendre beaucoup de temps et/ou utiliser une grande quantité de mémoire. Dans ce cas, vous devez remanier le script en supprimant toutes les clés synthétiques.

Gestion des clés synthétiques

Si vous devez éviter l'utilisation de clés synthétiques, il existe différentes façons de résoudre ce problème dans le script de chargement :

  • Vérifiez que seuls des champs reliant deux tables de façon logique sont utilisés comme clés.

    • Des champs tels que « Commentaire », « Remarque » et « Description » peuvent exister dans plusieurs tables sans être liés et ne doivent donc pas être utilisés comme clés.
    • Des champs tels que « Date », « Société » et « Nom » peuvent exister dans plusieurs tables et avoir des valeurs identiques, mais néanmoins jouer des rôles différents (Date de commande/Date d'expédition, Société du client/Société du fournisseur). Dans ce cas, ils ne doivent pas être utilisés comme clés.
  • Vérifiez l'absence de champs redondants, c.-à-d. que seuls les champs nécessaires sont reliés. Par exemple, si une date est utilisée comme clé, veillez à ne pas charger l'année, le mois ou le jour du mois de la même date à partir de plusieurs tables internes.

  • Le cas échéant, formez vos propres clés non composées, généralement au moyen de la concaténation de chaînes dans une fonction de script AutoNumber.