TUTORIEL · QLIK SENSE

Comprendre le modèle associatif

Associations, clés, grain, clés synthétiques, boucles, JOIN, KEEP et Link Tables : construire un modèle Qlik fiable et lisible.

Références Qlik

Ce tutoriel s’appuie sur la documentation officielle Qlik. Les explications et exemples SOSQLIK sont organisés autour d’un objectif : comprendre la logique du modèle avant de chercher à le complexifier.

BIENVENUE

Pourquoi le modèle associatif ?

Fondamentaux
Exemple Qlik Sense
VENTESClientID · Date · Montant↕ ClientIDCLIENTSClientID · Client · Région
À quoi ça sert ?

Qlik ne demande pas de tout aplatir dans une seule table. Son moteur associe les tables grâce aux champs qu’elles ont en commun et propage les sélections dans l’ensemble du modèle.

👶 L’idée simple

Deux tables possèdent un champ nommé ClientID : Qlik comprend qu’elles sont liées par ce champ. Le nom des champs fait donc partie de la logique du modèle.

VENTESClientIDDateMontant
CLIENTSClientIDClientRégion

✓ Avantages

  • Évite de nombreux JOIN
  • Modèle flexible
  • Sélections associatives naturelles

△ Points de vigilance

  • Des noms de champs mal maîtrisés créent de mauvaises associations
1 / 16

CHAPITRE 1

Comment Qlik associe les tables

Essentiel
Exemple Qlik Sense
VENTES:
LOAD
  ClientID,
  Montant
FROM ...;

CLIENTS:
LOAD
  ClientID,
  Client,
  Region
FROM ...;
À quoi ça sert ?

Dans le modèle interne, les champs portant exactement le même nom servent d’association entre les tables.

Il n’est donc pas nécessaire d’écrire une clause JOIN pour relier une table de faits à une dimension si le champ clé commun est correctement nommé.

✓ Avantages

  • Script plus simple
  • Tables conservées séparément

△ Points de vigilance

  • Un champ homonyme non souhaité peut créer une association accidentelle
2 / 16

CHAPITRE 2

La bonne clé

Essentiel
Exemple Qlik Sense
CLIENTS1 ligne = 1 clientClientIDVENTES1 ligne = 1 ligne de vente
À quoi ça sert ?

Une clé doit représenter correctement le grain de la relation. Une clé ClientID relie naturellement des ventes à un client ; une clé CommandeID relie une commande à ses lignes.

La question importante n’est pas seulement « les valeurs correspondent-elles ? », mais « que représente exactement une ligne de chaque table ? ».

✓ Avantages

  • Associations prévisibles
  • Mesures plus fiables

△ Points de vigilance

  • Une clé au mauvais grain peut multiplier ou perdre des informations
3 / 16

CHAPITRE 3

Les champs homonymes involontaires

Débutant
Exemple Qlik Sense
CLIENTS:
LOAD
  ClientID,
  Statut as StatutClient
FROM ...;

COMMANDES:
LOAD
  CommandeID,
  ClientID,
  Statut as StatutCommande
FROM ...;
À quoi ça sert ?

Deux champs portant le même nom sont associés, même si fonctionnellement ils n’ont rien à voir. Il faut donc contrôler les noms chargés.

Par exemple, un champ Statut dans Commandes et un champ Statut dans Clients peuvent créer une association absurde si les deux notions sont différentes.

✓ Avantages

  • Modèle plus lisible
  • Évite des associations invisibles au premier regard

△ Points de vigilance

  • Demande de connaître le sens métier des colonnes
4 / 16

CHAPITRE 4

Comprendre les clés synthétiques

Intermédiaire
Exemple Qlik Sense
Table AClientID · Année · Montant2 champs communsTable BClientID · Année · Budget
À quoi ça sert ?

Qlik crée une clé synthétique lorsque deux tables ou plus ont au moins deux champs en commun. Elle représente les combinaisons des champs communs.

👶 Important

Une clé synthétique n’est pas automatiquement une catastrophe, mais elle doit toujours être comprise. Plusieurs clés synthétiques, ou des clés synthétiques basées sur d’autres clés synthétiques, sont un signal d’alerte.

VENTESClientIDAnnéeMontant
$Syn 1ClientID + Annéeclé synthétique créée par Qlik
BUDGETClientIDAnnéeBudget

✓ Avantages

  • Qlik peut représenter automatiquement une clé composite

△ Points de vigilance

  • Peut révéler une erreur de conception
  • Les structures synthétiques complexes peuvent coûter cher
5 / 16

CHAPITRE 5

Créer une clé composite

Intermédiaire
Exemple Qlik Sense
AutoNumber(
  ClientID & '|' & Annee
) as %ClientAnnee
À quoi ça sert ?

Quand la relation dépend réellement de plusieurs champs, on peut créer explicitement une clé composite et éviter de laisser plusieurs champs d’association.

Une clé explicite rend souvent le modèle plus lisible et permet de renommer ou supprimer les champs techniques communs qui ne doivent plus associer les tables.

✓ Avantages

  • Association maîtrisée
  • Modèle plus lisible

△ Points de vigilance

  • Il faut construire exactement la même clé des deux côtés
6 / 16

CHAPITRE 6

Références circulaires

Avancé
Exemple Qlik Sense
A→ B → CetA→ CDeux chemins = boucle
À quoi ça sert ?

Une référence circulaire apparaît lorsqu’il existe plusieurs chemins d’association entre deux champs. Cela crée une ambiguïté logique.

Qlik signale la boucle et peut rendre une table loosely coupled. La bonne réponse est généralement de corriger le modèle ou de renommer un champ pour supprimer le chemin indésirable.
A
B
C
A → B B → C A → C
⚠ Deux chemins entre A et C

✓ Avantages

  • Le viewer permet de repérer visuellement le problème

△ Points de vigilance

  • Peut produire une interprétation ambiguë des données
7 / 16

CHAPITRE 7

Association ou JOIN ?

Essentiel
Exemple Qlik Sense
AssociationVENTES ↔ CLIENTStables séparéesJOINVENTES + CLIENTSune seule table
À quoi ça sert ?

Un JOIN fusionne physiquement les données de deux tables dans une table interne. Une association conserve les tables séparées et les relie par leurs champs communs.

Qlik recommande généralement de profiter des associations plutôt que de multiplier les JOIN : les JOIN peuvent agrandir les tables, ralentir le modèle et faire perdre certaines fréquences d’origine.

✓ Avantages

  • Association : mémoire et flexibilité souvent meilleures

△ Points de vigilance

  • JOIN : risque de duplication de lignes et perte de fréquence
8 / 16

CHAPITRE 8

KEEP : filtrer sans fusionner

Avancé
Exemple Qlik Sense
CLIENTS:
LOAD ClientID, Client FROM ...;

VENTES:
LEFT KEEP (CLIENTS)
LOAD ClientID, Montant FROM ...;
À quoi ça sert ?

KEEP réduit une ou deux tables à leur intersection de données comme le ferait un join équivalent, mais conserve les tables séparées dans le modèle.

C’est une alternative intéressante quand on veut limiter les données chargées sans créer une grosse table jointe.

✓ Avantages

  • Préserve deux tables
  • Peut éviter certains JOIN volumineux

△ Points de vigilance

  • Moins connu, donc à documenter dans le script
9 / 16

CHAPITRE 9

Association ou CONCATENATE ?

Intermédiaire
Exemple Qlik Sense
VENTES:
LOAD * FROM [Ventes_2025.qvd] (qvd);

CONCATENATE (VENTES)
LOAD * FROM [Ventes_2026.qvd] (qvd);
À quoi ça sert ?

CONCATENATE empile les lignes de tables similaires. Ce n’est pas une association entre deux entités différentes : c’est la création d’une table unique contenant plusieurs lots de lignes.

Qlik peut concaténer automatiquement des tables qui ont exactement le même ensemble de champs. NoConcatenate permet d’empêcher cette fusion automatique lorsqu’on veut conserver deux tables.

✓ Avantages

  • Parfait pour historiser plusieurs fichiers homogènes

△ Points de vigilance

  • Une concaténation involontaire peut faire disparaître une table attendue du modèle
10 / 16

CHAPITRE 10

Le modèle en étoile

Bonnes pratiques
À quoi ça sert ?

Un modèle en étoile simple — une table de faits centrale entourée de dimensions — est souvent très lisible et efficace dans Qlik.

Ce n’est pas une obligation absolue, mais c’est un excellent point de départ : Ventes au centre, puis Clients, Produits, Calendrier, Agences…
Schéma d'un modèle en étoile Qlik avec la table de faits VENTES au centre et les dimensions Clients, Produits, Calendrier et Agences autour.
Dimensions : qui, quoi, quand, où ? Faits : événements et mesures numériques à analyser.

✓ Avantages

  • Compréhension rapide
  • Moins de chemins ambigus

△ Points de vigilance

  • Certains besoins complexes nécessitent d’autres structures
11 / 16

CHAPITRE 12

Le grain avant tout

Essentiel
Exemple Qlik Sense
QuestionUne ligne représente quoi ?→ à poser pour chaque table
À quoi ça sert ?

Avant de charger ou d’associer une table, formule une phrase : « une ligne représente… ». Cette phrase révèle le grain.

👶 Exemple

VENTES : une ligne = une ligne de commande. COMMANDES : une ligne = une commande. CLIENTS : une ligne = un client. Mélanger ces grains sans réfléchir est une source classique de doubles comptes.

✓ Avantages

  • Évite les doubles comptes
  • Aide à choisir les clés

△ Points de vigilance

  • Demande de comprendre la source métier
13 / 16

CHAPITRE 13

Lire le Data Model Viewer

Très utile
Exemple Qlik Sense
ChecklistTables · clés · chemins · synthétiques · boucles→ contrôler après reload
À quoi ça sert ?

Après chaque évolution importante du script, ouvre le Data Model Viewer. Vérifie les tables, les champs clés, les cardinalités apparentes, les clés synthétiques et les éventuelles boucles.

Le viewer n’est pas seulement un dessin : c’est ton contrôle qualité du modèle chargé.

✓ Avantages

  • Diagnostic visuel rapide
  • Excellent outil pédagogique

△ Points de vigilance

  • Il faut compléter le visuel par des contrôles de données
14 / 16

CHAPITRE 14

Pourquoi mon total est faux ?

Diagnostic
Exemple Qlik Sense
SymptômeSum(Montant) trop élevé→ vérifier le modèle avant l’expression
À quoi ça sert ?

Quand une somme double ou qu’un filtre produit un résultat étrange, inspecte d’abord le modèle : mauvais grain, JOIN multiplicatif, clé incomplète ou association involontaire.

Ne corrige pas immédiatement la mesure avec DISTINCT ou une expression compliquée. Le problème peut être structurel.

✓ Avantages

  • Corrige la cause plutôt que le symptôme

△ Points de vigilance

  • Le diagnostic peut nécessiter de revenir aux données sources
15 / 16

CHAPITRE 15

Ma méthode recommandée

À retenir
Exemple Qlik Sense
Règle SOSQLIKGrain → Clés → Associations → Contrôlepuis seulement optimisation
À quoi ça sert ?

Commence par le grain, garde des clés explicites, contrôle les noms de champs, privilégie les associations naturelles et inspecte le Data Model Viewer après chaque changement structurel.

N’utilise JOIN, Link Table ou clés composites que lorsqu’elles répondent à un besoin identifié. La sophistication n’est pas un objectif : la lisibilité du modèle l’est.

✓ Avantages

  • Modèle fiable et maintenable
  • Calculs plus simples
  • Diagnostic plus rapide

△ Points de vigilance

  • Demande de résister au réflexe du JOIN systématique
16 / 16