Filtres croisés bidirectionnels dans les modèles tabulaires

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Les filtres croisés bidirectionnels dans les modèles tabulaires éliminent la nécessité de solutions de contournement DAX conçues à la main pour propager le contexte de filtre entre les relations de table.

Décomposons les éléments constitutifs de ce concept : le filtrage croisé est la possibilité de définir un contexte de filtre sur une table en fonction des valeurs d’une table associée ; bidirectionnel renvoie au transfert d’un contexte de filtre vers une deuxième table associée située à l’autre extrémité d’une relation de table. Comme son nom l’indique, vous pouvez procéder à un découpage dans les deux directions de la relation et pas seulement dans un seul sens. En interne, le filtrage bidirectionnel étend le contexte de filtre pour interroger un sur-ensemble de vos données.

Capture d’écran de la zone Modifier la relation dialbo avec la section Direction du filtre mise en évidence.

Il existe deux types de filtres croisés : le filtrage unidirectionnel et le filtrage bidirectionnel. Le filtrage unidirectionnel est la direction de filtrage classique de type plusieurs-à-un entre tables de faits et tables dimensionnelles d’une même relation. Bidirectionnelle est un filtre croisé qui permet d’utiliser le contexte de filtre d’une relation comme contexte de filtre pour une autre relation de table, avec une table commune aux deux relations.

Quand DimDate et DimProduct sont associés à des relations de clé étrangère avec FactOnlineSales, un filtre croisé bidirectionnel revient à utiliser simultanément FactOnlineSales-to-DimDate et FactOnlineSales-to-DimProduct .

Les filtres croisés bidirectionnels peuvent être une solution facile au problème de conception de requêtes plusieurs-à-plusieurs qui a défié les développeurs tabulaires et Power Pivot dans le passé. Si vous avez utilisé la solution de contournement DAX pour les relations plusieurs-à-plusieurs dans les modèles tabulaires ou Power Pivot, vous pouvez essayer d’appliquer un filtre bidirectionnel pour voir s’il produit des résultats attendus.

Au moment de créer un filtre croisé bidirectionnel, ne perdez pas de vue les points suivants :

  • Réfléchissez bien aux conséquences de l’activation de filtres bidirectionnels.

    Si vous activez des filtres bidirectionnels à tous les niveaux, vos données risquent d’être filtrées plus que vous ne l’espériez. De plus, vous risquez par inadvertance d’introduire une ambiguïté en créant plusieurs chemins de requête potentiels. Pour éviter les deux problèmes, prévoyez d’utiliser une combinaison de filtres unidirectionnels et bidirectionnels.

  • Effectuez des tests incrémentiels pour vérifier l’impact de chaque modification de filtre sur votre modèle. La fonctionnalité Analyser dans Excel dans Visual Studio fonctionne bien pour les tests incrémentiels. Pour éviter les mauvaises surprises, il est recommandé de reproduire ces tests à intervalles réguliers en utilisant d’autres clients de génération de rapports.

Notes

Le concepteur de modèles tabulaires dans Visual Studio inclut une valeur par défaut qui détermine si les filtres croisés bidirectionnels sont tentés automatiquement. Si vous activez les filtres bidirectionnels par défaut, le filtrage bidirectionnel est activé uniquement si le modèle articule clairement un chemin de requête via une chaîne de relations de table.

Définir le paramétrage par défaut

Par défaut, les filtres sont unidirectionnels. Vous pouvez modifier ce paramétrage pour tous les nouveaux projets créés dans le concepteur, ou sur le modèle lui-même quand le projet existe déjà.

Au niveau du projet, ce paramètre est évalué au moment où vous créez le projet. Donc, si vous optez pour un filtrage bidirectionnel par défaut, vous constaterez les effets de votre choix quand vous créerez le projet suivant.

  1. Dans Visual Studio, sélectionnez Outils>Options Concepteurs>tabulaires> Analysis ServicesNouveaux paramètres de projet.

  2. Définissez le paramètre Default filter direction (Direction du filtrage par défaut) en choisissant Single direction (Direction unique) ou Both directions(Les deux directions).

Vous pouvez aussi modifier le paramétrage par défaut sur le modèle.

  1. Dans Explorateur de solutions, sélectionnez Propriétés model.bim> ,

  2. Définissez le paramètre Default filter direction (Direction du filtrage par défaut) en choisissant Single direction (Direction unique) ou Both directions(Les deux directions).

Gardez les points suivants à l’esprit :

Le meilleur moyen de savoir s’il est opportun d’utiliser un filtre croisé directionnel, c’est de l’essayer pour voir s’il fonctionne dans votre scénario. Parfois, vous constaterez que les comportements intégrés ne sont pas suffisants et que vous devrez revenir sur les calculs DAX pour effectuer le travail. Dans la section Voir aussi , vous trouverez plusieurs liens vers des ressources supplémentaires sur ce sujet.

En pratique, le filtrage croisé autorise des formes d’exploration de données qui sont généralement l’apanage d’une construction de type plusieurs-à-plusieurs. Cela dit, il est important de reconnaître que le filtrage croisé bidirectionnel n’est pas une construction plusieurs-à-plusieurs. Une configuration de table de plusieurs-à-plusieurs réelle n’est toujours pas prise en charge dans le Concepteur pour les modèles tabulaires de cette version.

Voir aussi

Créer et gérer des relations dans Power BI Desktop
Exemple pratique montrant comment gérer des relations de plusieurs à manay simples dans les modèles Power Pivot et tabulaires
Résolution de relations plusieurs-à-plusieurs exploitant le filtrage de table croisée DAX
Révolution de la relation plusieurs-à-plusieurs (blog SQLBI)