Réduire la cardinalité

Effectué

La cardinalité est un terme utilisé pour décrire l’unicité des valeurs d’une colonne. La cardinalité est également utilisée dans le contexte des relations entre deux tables, où elle décrit la direction de la relation.

Identifier les niveaux de cardinalité dans les colonnes

Auparavant, quand vous utilisiez l’Éditeur Power Query pour analyser les métadonnées, l’option Distribution des colonnes de l’onglet Affichage présentait des statistiques sur le nombre d’éléments distincts et uniques présents dans chaque colonne des données.

  • Nombre de valeurs distinctes : nombre total de valeurs différentes trouvées dans une colonne donnée.

  • Nombre de valeurs uniques : nombre total de valeurs qui n’apparaissent qu’une seule fois dans une colonne donnée.

Capture d’écran des statistiques de distribution des colonnes.

Une colonne dont la plage contient de nombreuses valeurs répétées (le nombre de valeurs uniques est faible) présente un niveau de cardinalité bas. À l’inverse, une colonne dont la plage contient de nombreuses valeurs uniques (le nombre de valeurs uniques est élevé) présente un niveau de cardinalité élevé.

Une cardinalité plus faible occasionne un niveau de performance plus optimisé, vous allez peut-être devoir réduire le nombre de colonnes présentant un niveau de cardinalité élevé dans votre modèle sémantique.

Réduire la cardinalité des relations

Quand vous importez plusieurs tables, il est possible que vous soyez amené à effectuer des analyses impliquant les données de ces tables. Les relations entre ces tables sont nécessaires pour obtenir des résultats précis et afficher les informations correctes dans vos rapports. Power BI Desktop contribue à faciliter la création de ces relations. De fait, dans la plupart des cas, vous n’avez rien à faire ; la fonctionnalité de détection automatique se charge de tout. Toutefois, vous pouvez parfois être amené à créer des relations ou à apporter des modifications à une relation. Indépendamment du cas de figure, il est important de comprendre le fonctionnement des relations dans Power BI Desktop et comment créer et modifier des relations.

Quand vous créez ou modifiez une relation, vous pouvez configurer des options supplémentaires. Par défaut, Power BI Desktop configure automatiquement des options supplémentaires en fonction de sa meilleure estimation, qui peut varier d’une relation à l’autre suivant les données contenues dans les colonnes.

Les relations peuvent avoir une cardinalité différente. La cardinalité est la direction de la relation, et chaque relation de modèle doit être définie avec un type de cardinalité. Les options de cardinalité dans Power BI sont les suivantes :

  • Plusieurs à un (*:1) : cette relation est le type par défaut le plus courant. La colonne d’une table peut avoir plusieurs instances d’une valeur, tandis que la table connexe, souvent appelée table de recherche, n’a qu’une seule instance d’une valeur donnée.

  • Un à un (1:1) : dans ce type de relation, la colonne d’une table n’a qu’une seule instance d’une valeur donnée, tandis que la table connexe n’a qu’une seule instance d’une valeur donnée.

  • Un à plusieurs (1:**) : dans ce type de relation, la colonne d’une table n’a qu’une seule instance d’une valeur donnée, tandis que la table connexe peut avoir plusieurs instances d’une valeur.

  • Plusieurs-à-plusieurs (:) avec les modèles composites, vous pouvez établir une relation plusieurs-à-plusieurs entre des tables, qui peuvent dès lors contenir des valeurs non uniques. Cette option supprime également les solutions de contournement précédentes, telles que l’introduction de nouvelles tables uniquement pour établir des relations.

Pendant le développement, vous créez et modifiez des relations dans votre modèle. Ainsi, quand vous générez de nouvelles relations dans votre modèle, quelle que soit la cardinalité choisie, vous devez toujours vous assurer que les deux colonnes impliquées dans une relation partagent le même type de données. Votre modèle ne fonctionnera jamais si vous essayez de créer une relation entre deux colonnes, dont une colonne a un type de données texte et l’autre un type de données entier.

Dans l’exemple suivant, le champ ProductID a le type de données Nombre entier dans les tables Product et Sales. Les colonnes avec le type de données Entier offrent de meilleures performances que les colonnes avec le type de données Texte.

Capture d’écran qui montre comment vérifier le type de données ProductID.

Améliorer les performances en réduisant les niveaux de cardinalité

Power BI Desktop offre différentes techniques que vous pouvez utiliser pour réduire les données chargées dans des modèles sémantiques, tels que le résumé. En réduisant les données chargées dans votre modèle, vous améliorez la cardinalité des relations du rapport. Il est donc important que vous cherchiez à réduire les données à charger dans vos modèles. Cela est particulièrement vrai pour les modèles de grande taille ou les modèles appelés à croître au fil du temps.

La technique la plus efficace pour réduire la taille d’un modèle consiste peut-être à utiliser une table de résumé à partir de la source de données.  Alors qu’une table de détails peut contenir chaque transaction, une table de résumé peut contenir un enregistrement par jour, par semaine ou par mois. Il peut s’agir d’une moyenne de toutes les transactions par jour, par exemple.

Ainsi, une table source de faits de ventes stocke une ligne pour chaque ligne de commande. Pour réduire significativement les données, vous pouvez résumer toutes les métriques de ventes en effectuant des regroupements par date, client et produit, si les détails des transactions individuelles ne sont pas nécessaires.

Vous pouvez ensuite obtenir une réduction encore plus significative des données en effectuant un regroupement par date au niveau du mois. Vous pourriez ainsi atteindre une réduction de 99 % de la taille du modèle. Toutefois, la création de rapports au niveau du jour ou d’une commande spécifique n’est alors plus possible. Le fait de résumer les données de type fait implique toujours un compromis avec les détails de vos données. Un inconvénient est que vous risquez de perdre la possibilité d’effectuer des recherches dans les données, car les détails n’existent plus.  Ce compromis peut être atténué à l’aide d’une conception de type mode mixte.

Dans Power BI Desktop, une conception de type mode mixte produit un modèle composite. Pour l’essentiel, il vous permet de déterminer un mode de stockage pour chaque table. Ainsi, chaque table peut avoir sa propriété Mode de stockage définie sur Importer ou DirectQuery.

Une technique efficace pour réduire la taille du modèle consiste à définir sur DirectQuery la propriété Mode de stockage pour les tables de type de faits plus grandes. Vous pouvez combiner cette approche de conception avec les techniques utilisées pour résumer vos données. Par exemple, les données de ventes résumées peuvent être utilisées pour la création de rapports « résumés » hautes performances. Vous pouvez créer une page d’extraction afin d’afficher les ventes précises pour un contexte de filtre spécifique (et étroit), dans laquelle sont reprises toutes les commandes client propres à ce contexte. La page d’extraction inclut des visuels basés sur une table DirectQuery qui permettent de récupérer les données des commandes client (détails des commandes client).

Pour plus d’informations, consultez Techniques de réduction des données pour la modélisation des importations.