Nouer des relations : le nouveau modèle de données de Tableau

March 30, 2026
January 25, 2023
5
min read

Pour résoudre des problèmes commerciaux, vous devez probablement combiner des données provenant de plusieurs sources. Le plus souvent, ces sources sont très différentes et n'existent même pas dans la même base de données.

La combinaison de données complexes dans Tableau n'est pas toujours simple. Par exemple, il se peut qu'une jointure soit la solution idéale pour une visualisation spécifique, mais qu'elle complique trop les autres analyses portant sur les mêmes données. Vous pouvez également décider de fusionner vos données, pour découvrir que le chargement de vos tableaux de bord est long.

Trouver le meilleur moyen de combiner les données dans Tableau dépend de l'objectif que vous souhaitez atteindre. Par conséquent, il se peut que vous deviez créer et gérer plusieurs sources de données, avec différentes combinaisons des mêmes données.

Pour simplifier et rationaliser le processus de combinaison des données, Tableau a développé un tout nouveau modèle de données. Ce modèle vient de sortir avec la version 2020.2 de Tableau Desktop. Nous allons montrer ici, à l'aide d'un exemple simple, comment le nouveau modèle de données de Tableau permet de combiner des données plus facilement, plus rapidement, de manière plus flexible et plus puissante, par rapport aux fusions ou jointures traditionnelles.

Prenons un exemple simple basé sur le jeu de données Superstore de Tableau. Supposons que nous analysions les données de vente de notre Superstore, qui se trouvent dans un tableau « Commandes » tel que celui-ci :

Il est important d'établir le niveau de détail, ou granularité, de cet ensemble de données. En particulier, notez que chaque ligne de ce tableau représente une commande unique passée auprès du Superstore.

On nous a demandé de créer une visualisation qui montre si le Superstore atteint ses objectifs de vente. Pour cela, on nous a donné un simple fichier « Targets » qui ressemble à ceci :

Ici aussi, il est important de noter le niveau de détail de cet ensemble de données, notamment parce qu'il est différent du précédent : chaque ligne contient le quota de vente pour une seule catégorie.

Alors, comment pouvons-nous combiner ces données dans Tableau pour créer notre visualisation ?

Option 1 : Adhérer

Les deux tables ont une dimension commune, « Catégorie », afin que nous puissions les joindre via ce champ commun. Ici, nous avons opté pour une jointure à gauche, afin de pouvoir examiner les ventes des catégories qui n'ont peut-être pas de quota établi. Voici à quoi ressemble une simple visualisation des ventes par catégorie :

Et une fois que nous affichons le quota comme ligne de référence, voici ce que nous obtenons :

Ces chiffres semblent faux. Si l'on considère les données brutes, notre objectif pour les téléphones est d'environ 4 millions, et non d'environ 7 milliards comme indiqué ici. Que s'est-il passé alors ?

Comme nous l'avons noté précédemment, le niveau de détail de chaque tableau est différent. Par conséquent, lorsque nous les avons joints pour créer un tableau combiné, nous avons dupliqué les quotas sur différentes lignes (ou différentes commandes dans la même catégorie) :

Lorsque vous avez intégré le champ Quota à la vue, Tableau l'a automatiquement agrégé en additionnant le quota pour toutes les lignes de la même catégorie. Par conséquent, le quota pour les téléphones n'est plus d'environ 4 millions, mais de 4 millions de fois le nombre de commandes téléphoniques.

L'un des moyens de résoudre le problème consiste simplement à modifier l'agrégation effectuée sur Quota, en passant de la somme par défaut à une moyenne, par exemple. Mais cela ne fonctionnera que tant que le niveau de détail de votre vue est toujours de catégorie. Par exemple, si on nous demande si chaque département atteint son quota de ventes, nous constaterons que les quotas affichés seront à nouveau incorrects.

Dans ce cas, nous avons besoin d'un calcul LOD, pour fixer la valeur du quota pour chaque catégorie :

Si nous utilisons ce calcul LOD pour la ligne de référence, nous obtenons :

(Nous avons également créé un champ calculé simple pour comparer les ventes au quota et l'avons fait glisser pour le colorier)

Et la vue sera toujours correcte si nous regardons le département, au lieu de la catégorie :

Au final, nous avons atteint notre objectif en utilisant une jointure et un calcul LOD, ce qui peut ne pas sembler trop compliqué dans cet exemple simple, mais déterminer exactement quel calcul LOD vous devez écrire peut devenir une tâche complexe.

Option 2 : mélanger

Pour fusionner des données dans Tableau, vous devez d'abord créer deux sources de données distinctes : dans notre exemple, l'une pour les « Commandes » (source de données principale) et l'autre pour les « Cibles » (source de données secondaire). Vous devez ensuite définir un champ de liaison entre les sources de données, dans notre cas « Catégorie ». Tableau interrogera ensuite chaque table séparément et affichera les résultats de la requête ensemble dans la visualisation. Notez que cela est différent d'une jointure, dans laquelle les données combinées sont interrogées. L'avantage de la fusion des données est que vous pouvez émuler le comportement d'une jointure gauche sans duplication. En mélangeant les données de nos deux tableaux, nous pouvons créer la visualisation souhaitée sans utiliser de calculs LOD compliqués :

Il est clair que la fusion des données est une fonctionnalité très puissante. Cependant, n'oubliez pas que Tableau interroge chaque source de données séparément, au niveau du champ de liaison, puis calcule la combinaison localement. C'est pourquoi les performances de votre visualisation peuvent se dégrader rapidement lorsque vous utilisez la fusion des données, en particulier lorsque vous fusionnez sur un champ présentant une cardinalité élevée (c'est-à-dire de nombreuses valeurs uniques).

Option 3 : Relation

Si nous essayons de combiner nos tableaux Orders et Targets dans la nouvelle version 2020.2 de Tableau Desktop, voici ce que nous verrons par défaut :

Nous examinons le nouveau modèle de données de Tableau en jeu. Tableau a automatiquement identifié le champ Catégorie commun et créé une relation entre les deux tables en fonction de ce champ. La ligne droite entre les tables, ou ce que l'on appelle la « nouille », représente la relation. Veuillez noter que Tableau a simplement établi une relation entre les tables, mais ne les a pas (encore) combinées. Pour cette raison, nous ne pouvons voir que les données de chaque tableau individuellement (seules les colonnes du tableau Commandes apparaissent dans la capture d'écran ci-dessus).

Grâce au nouveau modèle de données de Tableau, chaque table associée conserve son niveau de détail natif. Cela signifie que nous pouvons, une fois de plus, créer notre visualisation sans créer de calculs compliqués, simplement en faisant glisser et en déposant des champs existants :

Mais attendez, il y a un point nul que nous n'avions pas vu auparavant, c'est quoi ça ? Cette valeur nulle représente une catégorie pour laquelle nous avons un objectif de vente, mais aucune vente réelle. Il s'agit d'une information que nous n'avions pas pu obtenir auparavant, car nous avons opté soit pour une jointure gauche, soit pour une combinaison de nos données. Nous pouvons ajouter la dimension Catégorie du tableau Cible à la vue, pour constater qu'aucune vente n'a été enregistrée dans la catégorie Décoration :

Et si nous ne sommes pas intéressés par les catégories sans ventes ? Ensuite, il suffit de cliquer avec le bouton droit sur l'étiquette Décor dans la vue et de l'exclure. Cela entraînera l'apparition d'un filtre dans la vue. Un filtre peut sembler simple, mais ce filtre est en fait assez puissant, car il agit comme un type de jointure différent.

Notre visualisation initiale nous a montré toutes les données, comme une jointure externe. Nous avons ensuite exclu du tableau Targets les valeurs qui n'avaient pas de correspondance dans le tableau Orders, créant ainsi une jointure gauche. Nous aurions également pu exclure les catégories apparaissant en gris, celles pour ne pas avoir d'objectif de vente, et nous nous serions retrouvés avec une jointure interne. Sauf que nous n'avons jamais eu à créer ces jointures ni à nous inquiéter d'une éventuelle duplication et de calculs LOD compliqués.

À ce stade, vous vous demandez peut-être : ne pas vous inquiéter d'une éventuelle duplication ou des calculs LOD ressemble toujours à une fusion de données. C'est bien ce qui se passe ? La réponse est non. Pour fusionner des données dans Tableau, vous devez définir des sources de données distinctes et choisir une source principale et une source secondaire. Tableau interroge ensuite les sources de données séparément et effectue la combinaison (fusion) localement, ce qui explique pourquoi les performances peuvent facilement se dégrader. Cependant, dans le cas des relations, la combinaison (jointure) est exécutée dans le cadre de la requête. De plus, vous n'avez pas besoin de définir plusieurs sources de données ni de choisir celle qui est principale. Avec les relations, toutes les tables sont créées de la même manière, et vous pouvez créer des relations plusieurs-à-plusieurs entre les tables.

Ça a l'air génial, mais je veux vraiment m'inscrire, est-ce que je peux faire ça ? Oui, tu peux. Des relations sont en fait créées entre des tables logiques, qui sont comme des conteneurs de tables physiques.

Si vous double-cliquez sur une table logique, vous aurez accès à la table physique, avec laquelle vous pouvez effectuer des jointures traditionnelles comme auparavant.

En résumé, le nouveau modèle de données de Tableau simplifie considérablement le processus de combinaison des données. Nous n'avons plus besoin de décider à l'avance de la manière de combiner nos données. Nous pouvons simplement créer des relations entre nos tables et laisser la combinaison se produire de manière dynamique en fonction de ce que nous ajoutions à notre vue. Cette nouvelle approche se traduit par des sources de données plus puissantes et plus flexibles, des requêtes plus simples et des performances globales améliorées.

Tableau
Tableau
Tableau

Pour résoudre des problèmes commerciaux, vous devez probablement combiner des données provenant de plusieurs sources. Le plus souvent, ces sources sont très différentes et n'existent même pas dans la même base de données.

La combinaison de données complexes dans Tableau n'est pas toujours simple. Par exemple, il se peut qu'une jointure soit la solution idéale pour une visualisation spécifique, mais qu'elle complique trop les autres analyses portant sur les mêmes données. Vous pouvez également décider de fusionner vos données, pour découvrir que le chargement de vos tableaux de bord est long.

Trouver le meilleur moyen de combiner les données dans Tableau dépend de l'objectif que vous souhaitez atteindre. Par conséquent, il se peut que vous deviez créer et gérer plusieurs sources de données, avec différentes combinaisons des mêmes données.

Pour simplifier et rationaliser le processus de combinaison des données, Tableau a développé un tout nouveau modèle de données. Ce modèle vient de sortir avec la version 2020.2 de Tableau Desktop. Nous allons montrer ici, à l'aide d'un exemple simple, comment le nouveau modèle de données de Tableau permet de combiner des données plus facilement, plus rapidement, de manière plus flexible et plus puissante, par rapport aux fusions ou jointures traditionnelles.

Prenons un exemple simple basé sur le jeu de données Superstore de Tableau. Supposons que nous analysions les données de vente de notre Superstore, qui se trouvent dans un tableau « Commandes » tel que celui-ci :

Il est important d'établir le niveau de détail, ou granularité, de cet ensemble de données. En particulier, notez que chaque ligne de ce tableau représente une commande unique passée auprès du Superstore.

On nous a demandé de créer une visualisation qui montre si le Superstore atteint ses objectifs de vente. Pour cela, on nous a donné un simple fichier « Targets » qui ressemble à ceci :

Ici aussi, il est important de noter le niveau de détail de cet ensemble de données, notamment parce qu'il est différent du précédent : chaque ligne contient le quota de vente pour une seule catégorie.

Alors, comment pouvons-nous combiner ces données dans Tableau pour créer notre visualisation ?

Option 1 : Adhérer

Les deux tables ont une dimension commune, « Catégorie », afin que nous puissions les joindre via ce champ commun. Ici, nous avons opté pour une jointure à gauche, afin de pouvoir examiner les ventes des catégories qui n'ont peut-être pas de quota établi. Voici à quoi ressemble une simple visualisation des ventes par catégorie :

Et une fois que nous affichons le quota comme ligne de référence, voici ce que nous obtenons :

Ces chiffres semblent faux. Si l'on considère les données brutes, notre objectif pour les téléphones est d'environ 4 millions, et non d'environ 7 milliards comme indiqué ici. Que s'est-il passé alors ?

Comme nous l'avons noté précédemment, le niveau de détail de chaque tableau est différent. Par conséquent, lorsque nous les avons joints pour créer un tableau combiné, nous avons dupliqué les quotas sur différentes lignes (ou différentes commandes dans la même catégorie) :

Lorsque vous avez intégré le champ Quota à la vue, Tableau l'a automatiquement agrégé en additionnant le quota pour toutes les lignes de la même catégorie. Par conséquent, le quota pour les téléphones n'est plus d'environ 4 millions, mais de 4 millions de fois le nombre de commandes téléphoniques.

L'un des moyens de résoudre le problème consiste simplement à modifier l'agrégation effectuée sur Quota, en passant de la somme par défaut à une moyenne, par exemple. Mais cela ne fonctionnera que tant que le niveau de détail de votre vue est toujours de catégorie. Par exemple, si on nous demande si chaque département atteint son quota de ventes, nous constaterons que les quotas affichés seront à nouveau incorrects.

Dans ce cas, nous avons besoin d'un calcul LOD, pour fixer la valeur du quota pour chaque catégorie :

Si nous utilisons ce calcul LOD pour la ligne de référence, nous obtenons :

(Nous avons également créé un champ calculé simple pour comparer les ventes au quota et l'avons fait glisser pour le colorier)

Et la vue sera toujours correcte si nous regardons le département, au lieu de la catégorie :

Au final, nous avons atteint notre objectif en utilisant une jointure et un calcul LOD, ce qui peut ne pas sembler trop compliqué dans cet exemple simple, mais déterminer exactement quel calcul LOD vous devez écrire peut devenir une tâche complexe.

Option 2 : mélanger

Pour fusionner des données dans Tableau, vous devez d'abord créer deux sources de données distinctes : dans notre exemple, l'une pour les « Commandes » (source de données principale) et l'autre pour les « Cibles » (source de données secondaire). Vous devez ensuite définir un champ de liaison entre les sources de données, dans notre cas « Catégorie ». Tableau interrogera ensuite chaque table séparément et affichera les résultats de la requête ensemble dans la visualisation. Notez que cela est différent d'une jointure, dans laquelle les données combinées sont interrogées. L'avantage de la fusion des données est que vous pouvez émuler le comportement d'une jointure gauche sans duplication. En mélangeant les données de nos deux tableaux, nous pouvons créer la visualisation souhaitée sans utiliser de calculs LOD compliqués :

Il est clair que la fusion des données est une fonctionnalité très puissante. Cependant, n'oubliez pas que Tableau interroge chaque source de données séparément, au niveau du champ de liaison, puis calcule la combinaison localement. C'est pourquoi les performances de votre visualisation peuvent se dégrader rapidement lorsque vous utilisez la fusion des données, en particulier lorsque vous fusionnez sur un champ présentant une cardinalité élevée (c'est-à-dire de nombreuses valeurs uniques).

Option 3 : Relation

Si nous essayons de combiner nos tableaux Orders et Targets dans la nouvelle version 2020.2 de Tableau Desktop, voici ce que nous verrons par défaut :

Nous examinons le nouveau modèle de données de Tableau en jeu. Tableau a automatiquement identifié le champ Catégorie commun et créé une relation entre les deux tables en fonction de ce champ. La ligne droite entre les tables, ou ce que l'on appelle la « nouille », représente la relation. Veuillez noter que Tableau a simplement établi une relation entre les tables, mais ne les a pas (encore) combinées. Pour cette raison, nous ne pouvons voir que les données de chaque tableau individuellement (seules les colonnes du tableau Commandes apparaissent dans la capture d'écran ci-dessus).

Grâce au nouveau modèle de données de Tableau, chaque table associée conserve son niveau de détail natif. Cela signifie que nous pouvons, une fois de plus, créer notre visualisation sans créer de calculs compliqués, simplement en faisant glisser et en déposant des champs existants :

Mais attendez, il y a un point nul que nous n'avions pas vu auparavant, c'est quoi ça ? Cette valeur nulle représente une catégorie pour laquelle nous avons un objectif de vente, mais aucune vente réelle. Il s'agit d'une information que nous n'avions pas pu obtenir auparavant, car nous avons opté soit pour une jointure gauche, soit pour une combinaison de nos données. Nous pouvons ajouter la dimension Catégorie du tableau Cible à la vue, pour constater qu'aucune vente n'a été enregistrée dans la catégorie Décoration :

Et si nous ne sommes pas intéressés par les catégories sans ventes ? Ensuite, il suffit de cliquer avec le bouton droit sur l'étiquette Décor dans la vue et de l'exclure. Cela entraînera l'apparition d'un filtre dans la vue. Un filtre peut sembler simple, mais ce filtre est en fait assez puissant, car il agit comme un type de jointure différent.

Notre visualisation initiale nous a montré toutes les données, comme une jointure externe. Nous avons ensuite exclu du tableau Targets les valeurs qui n'avaient pas de correspondance dans le tableau Orders, créant ainsi une jointure gauche. Nous aurions également pu exclure les catégories apparaissant en gris, celles pour ne pas avoir d'objectif de vente, et nous nous serions retrouvés avec une jointure interne. Sauf que nous n'avons jamais eu à créer ces jointures ni à nous inquiéter d'une éventuelle duplication et de calculs LOD compliqués.

À ce stade, vous vous demandez peut-être : ne pas vous inquiéter d'une éventuelle duplication ou des calculs LOD ressemble toujours à une fusion de données. C'est bien ce qui se passe ? La réponse est non. Pour fusionner des données dans Tableau, vous devez définir des sources de données distinctes et choisir une source principale et une source secondaire. Tableau interroge ensuite les sources de données séparément et effectue la combinaison (fusion) localement, ce qui explique pourquoi les performances peuvent facilement se dégrader. Cependant, dans le cas des relations, la combinaison (jointure) est exécutée dans le cadre de la requête. De plus, vous n'avez pas besoin de définir plusieurs sources de données ni de choisir celle qui est principale. Avec les relations, toutes les tables sont créées de la même manière, et vous pouvez créer des relations plusieurs-à-plusieurs entre les tables.

Ça a l'air génial, mais je veux vraiment m'inscrire, est-ce que je peux faire ça ? Oui, tu peux. Des relations sont en fait créées entre des tables logiques, qui sont comme des conteneurs de tables physiques.

Si vous double-cliquez sur une table logique, vous aurez accès à la table physique, avec laquelle vous pouvez effectuer des jointures traditionnelles comme auparavant.

En résumé, le nouveau modèle de données de Tableau simplifie considérablement le processus de combinaison des données. Nous n'avons plus besoin de décider à l'avance de la manière de combiner nos données. Nous pouvons simplement créer des relations entre nos tables et laisser la combinaison se produire de manière dynamique en fonction de ce que nous ajoutions à notre vue. Cette nouvelle approche se traduit par des sources de données plus puissantes et plus flexibles, des requêtes plus simples et des performances globales améliorées.

By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.