Optimiser les modèles DirectQuery avec un stockage au niveau de la table

Effectué

DirectQuery est un moyen d’obtenir des données dans Power BI Desktop. La méthode DirectQuery implique la connexion directe aux données dans leur dépôt source à partir de Power BI Desktop. Il s’agit d’une alternative à l’importation de données dans Power BI Desktop.

Capture d’écran qui montre comment utiliser l’option DirectQuery pour récupérer des données.

Quand vous utilisez la méthode DirectQuery, l’expérience utilisateur globale dépend fortement des performances de la source de données sous-jacente. Les temps de réponse lents des requêtes entraînent une expérience utilisateur négative, voire une expiration des requêtes dans les cas les plus pessimistes. En outre, le nombre d’utilisateurs qui ouvrent les rapports à un moment donné impacte la charge qui est placée sur la source de données. Par exemple, si votre rapport contient 20 visuels et que 10 personnes utilisent le rapport, 200 requêtes ou plus existent sur la source de données, car chaque visuel émet une ou plusieurs requêtes.

Malheureusement, les performances de votre modèle Power BI ne sont pas uniquement affectées par les performances de la source de données sous-jacente, mais également par d’autres facteurs incontrôlables, tels que les suivants :

  • Latence du réseau : les réseaux plus rapides retournent les données plus rapidement.

  • Les performances du serveur de la source de données et la quantité d’autres charges de travail sur ce serveur. Par exemple, considérez les implications de l’actualisation d’un serveur pendant que des centaines de personnes utilisent ce même serveur pour différentes raisons.

Ainsi, l’utilisation de DirectQuery représente un risque pour la qualité des performances de votre modèle. Pour optimiser les performances dans ce cas, vous devez contrôler la base de données source ou y accéder.

Pour plus d’informations, consultez Guide du modèle DirectQuery dans Power BI Desktop.

Implications de l’utilisation de DirectQuery

Il est recommandé d’importer des données dans Power BI Desktop, mais votre organisation peut être amenée à utiliser le mode de connectivité des données DirectQuery pour l’une des raisons suivantes (avantages de DirectQuery) :

  • Il est approprié dans les cas où les données changent fréquemment et que la création de rapports en quasi-temps réel est nécessaire.

  • Il peut gérer des données volumineuses sans qu’il soit nécessaire d’effectuer une pré-agrégation.

  • Il applique des restrictions de souveraineté des données pour se conformer aux exigences légales.

  • Il peut être utilisé avec une source de données multidimensionnelles qui contient des mesures comme SAP Business Warehouse (BW).

Si votre organisation doit utiliser DirectQuery, vous devez clairement comprendre son comportement dans Power BI Desktop et être conscient de ses limitations. Vous pourrez alors prendre des mesures pour optimiser le modèle DirectQuery autant que possible.

Comportement des connexions DirectQuery

Quand vous utilisez DirectQuery pour vous connecter à des données dans Power BI Desktop, cette connexion se comporte de la façon suivante :

  • Quand vous utilisez initialement la fonctionnalité Obtenir les données dans Power BI Desktop, vous devez sélectionner la source. Si vous vous connectez à une source relationnelle, vous pouvez sélectionner un ensemble de tables, et chacune d’entre elles définit une requête qui retourne un jeu de données de façon logique. Si vous sélectionnez une source multidimensionnelle, par exemple SAP BW, vous ne pouvez sélectionner que celle-ci.

  • Quand vous chargez les données, aucune donnée n’est importée dans Power BI Desktop ; seul le schéma est chargé. Quand vous générez un visuel dans Power BI Desktop, les requêtes sont envoyées à la source sous-jacente pour récupérer les données nécessaires. Le temps nécessaire à l’actualisation du visuel dépend des performances de la source de données sous-jacente.

  • Si des modifications sont apportées aux données sous-jacentes, elles ne sont pas répercutées immédiatement dans les visuels existants dans Power BI en raison de la mise en cache. Vous devez effectuer une actualisation pour voir ces modifications. Les requêtes nécessaires sont présentes pour chaque visuel, et les visuels sont mis à jour en conséquence.

  • La publication du rapport dans le service Power BI engendre un modèle sémantique dans ce service, comme pour une importation. Toutefois, aucune donnée n'est incluse dans ce modèle sémantique.

  • Quand vous ouvrez un rapport existant dans le service Power BI ou que vous en créez un, la source sous-jacente est réinterrogée afin que soient récupérées les données nécessaires. Selon l’endroit où se trouve la source d’origine, vous devrez peut-être configurer une passerelle de données locale.

  • Vous pouvez épingler des visuels ou des pages de rapport entières sous forme de vignettes de tableau de bord. Les vignettes sont actualisées automatiquement selon une planification, par exemple toutes les heures. Vous pouvez contrôler la fréquence de cette actualisation en fonction de vos besoins. Quand vous ouvrez un tableau de bord, les vignettes reflètent les données au moment de la dernière actualisation et peuvent ne pas inclure les dernières modifications apportées à la source de données sous-jacente. Vous pouvez toujours actualiser un tableau de bord ouvert pour vérifier qu’il est à jour.

Limitations des connexions DirectQuery

L’utilisation de DirectQuery peut avoir des conséquences négatives. Les limitations varient selon la source de données utilisée. Tenez compte des points suivants :

  • Performances : comme indiqué plus haut, votre expérience utilisateur globale dépend fortement des performances de la source de données sous-jacente.

  • Sécurité : si vous utilisez plusieurs sources de données dans un modèle DirectQuery, il est important de comprendre comment les données se déplacent entre les sources de données sous-jacentes et les implications de sécurité associées. Vous devez également déterminer si des règles de sécurité s’appliquent aux données de votre source sous-jacente, car, dans Power BI, chaque utilisateur peut voir ces données.

  • Transformation des données : par rapport aux données importées, les données provenant de DirectQuery ont des limites si vous souhaitez appliquer des techniques de transformation de données dans l’Éditeur Power Query. Par exemple, si vous vous connectez à une source OLAP, telle que SAP BW, vous ne pouvez pas effectuer de transformations ; le modèle externe entier est extrait de la source de données. Si vous souhaitez appliquer des transformations aux données, vous devez le faire dans la source de données sous-jacente.

  • Modélisation : certaines des fonctionnalités de modélisation disponibles avec des données importées ne sont pas utilisables ou sont limitées dans le cadre de DirectQuery.

  • Création de rapports : presque toutes les fonctionnalités de création de rapports disponibles avec des données importées sont également prises en charge pour les modèles DirectQuery, à condition que la source sous-jacente offre un niveau de performances approprié. Toutefois, quand le rapport est publié dans le service Power BI, les fonctionnalités Quick Insights et Questions et réponses ne sont pas prises en charge. En outre, l’utilisation de la fonctionnalité Explorer dans Excel entraîne probablement une baisse des performances.

Pour plus d’informations sur les limitations liées à l’utilisation de DirectQuery, consultez Implications de l’utilisation de DirectQuery.

Le fonctionnement de base de DirectQuery et les limitations qu’il présente n’ayant plus de secret pour vous, vous pouvez prendre des mesures pour améliorer les performances.

Optimiser les performances

Dans le cadre du scénario Tailwind Traders, lors de l'examen du modèle sémantique, vous découvrez que la requête a utilisé DirectQuery pour connecter Power BI Desktop aux données sources. Cette utilisation de DirectQuery est la raison pour laquelle les utilisateurs sont confrontés à des performances de rapport médiocres. Le chargement des pages dans le rapport prend trop de temps et les tables ne sont pas actualisées suffisamment rapidement quand certaines sélections sont effectuées. Vous devez prendre des mesures pour optimiser les performances du modèle DirectQuery.

Vous pouvez examiner les requêtes qui sont envoyées à la source sous-jacente afin d’essayer d’identifier la raison pour laquelle les performances de requête sont médiocres. Vous pouvez ensuite apporter des modifications à Power BI Desktop et à la source de données sous-jacente pour optimiser les performances globales.

Optimiser les données dans Power BI Desktop

Quand vous avez optimisé la source de données autant que possible, vous pouvez prendre des mesures supplémentaires dans Power BI Desktop à l’aide de l’Analyseur de performances, où vous pouvez isoler des requêtes pour valider les plans de requête.

Vous pouvez analyser la durée des requêtes qui sont envoyées à la source sous-jacente pour identifier les requêtes dont le chargement prend beaucoup de temps. En d’autres termes, vous pouvez identifier où se trouvent les goulots d’étranglement.

Vous n’avez pas besoin d’utiliser une approche spéciale pour optimiser un modèle DirectQuery ; vous pouvez appliquer les mêmes techniques d’optimisation que celles que vous avez utilisées sur les données importées pour ajuster les données provenant de la source DirectQuery. Par exemple, vous pouvez réduire le nombre de visuels dans la page de rapport ou réduire le nombre de champs utilisés dans un visuel. Vous pouvez également supprimer les colonnes et les lignes inutiles.

Pour obtenir des conseils plus détaillés sur l’optimisation d’une requête DirectQuery, consultez : Guide du modèle DirectQuery dans Power BI Desktop et Guide pour une utilisation efficace de DirectQuery.

Optimiser la source de données sous-jacente (base de données connectée)

Vous devez d’abord vous pencher sur la source de données. Vous devez ajuster la base de données source autant que possible, car tout ce que vous faites pour améliorer les performances de cette base de données source améliore à son tour Power BI DirectQuery. Les actions que vous effectuez dans la base de données sont les plus efficaces.

Envisagez l’utilisation des pratiques de base de données standard ci-dessous, qui s’appliquent à la plupart des situations :

  • Évitez l’utilisation de colonnes calculées complexes, car l’expression de calcul est incorporée dans les requêtes source. Il est plus efficace de renvoyer (push) l’expression à la source, car cela évite l’envoi (push down). Vous pouvez également envisager d’ajouter des colonnes clés de substitution à des tables de type dimension.

  • Examinez les index et vérifiez que l’indexation actuelle est correcte. Si vous avez besoin de créer des index, assurez-vous qu’ils sont appropriés.

Reportez-vous aux documents d’aide de votre source de données afin d’implémenter leurs recommandations en matière de performances.

Personnaliser les options de réduction de requête

Power BI Desktop vous donne la possibilité d’envoyer moins de requêtes et de désactiver certaines interactions qui entraînent une mauvaise expérience si les requêtes résultantes mettent beaucoup de temps à s’exécuter. L’application de ces options empêche les requêtes d’atteindre continuellement la source de données, ce qui devrait améliorer les performances.

Dans cet exemple, vous modifiez les paramètres par défaut pour appliquer les options de réduction de données disponibles à votre modèle. Pour accéder aux paramètres, sélectionnez Fichier>Options et paramètres>Options, faites défiler la page vers le bas, puis sélectionnez l’option Réduction de requête.

Les options de réduction de requête suivantes sont disponibles :

  • Réduire le nombre de requêtes envoyées par : par défaut, chaque visuel interagit avec tous les autres visuels. Si cette case est cochée, l’interaction par défaut est désactivée. Vous pouvez ensuite choisir les visuels qui interagissent les uns avec les autres à l’aide de la fonctionnalité Modifier les interactions.

  • Segments : par défaut, l’option Appliquer instantanément les changements de segment est sélectionnée. Pour forcer les utilisateurs du rapport à appliquer manuellement les changements de segment, sélectionnez l’option Ajouter un bouton Appliquer à chaque segment pour apporter les changements quand vous êtes prêt.

  • Filtres : par défaut, l’option Appliquer instantanément les changements des filtres de base est sélectionnée. Pour forcer les utilisateurs du rapport à appliquer manuellement les changements de filtre, sélectionnez l’une des options suivantes :

    • Ajouter des boutons Appliquer à chaque filtre de base pour appliquer les changements au besoin

    • Ajouter un seul bouton Appliquer au volet des filtres pour appliquer tous les changements à la fois (préversion)

Accéder aux paramètres de réduction de requête