Utilisation de DirectQuery dans Power BI Desktop

Lorsque vous vous connectez à n’importe quelle source de données avec Power BI Desktop, vous pouvez importer une copie des données. Pour certaines sources, vous pouvez également vous connecter directement à la source de données sans importer de données à l’aide de DirectQuery.

Pour déterminer si une source de données prend en charge DirectQuery, consultez la liste complète des sources de données disponibles dans l’article Connecteurs dans Power Query qui s’applique également à Power BI, sélectionnez l’article qui décrit la source de données qui vous intéresse dans la liste des connecteurs pris en charge, puis consultez la section de l’article de ce connecteur intitulé Fonctionnalités prises en charge. Si DirectQuery n’est pas répertorié dans cette section pour l’article de la source de données, DirectQuery n’est pas pris en charge pour ce connecteur de données.

Voici les différences entre l’utilisation des modes de connectivité Import et DirectQuery :

  • Import : une copie des données des tables et colonnes sélectionnées est importée dans Power BI Desktop. Lorsque vous créez des visualisations ou interagissez avec elles, Power BI Desktop utilise les données importées. Pour voir les modifications des données sous-jacentes après l’importation initiale ou la dernière actualisation, vous devez réimporter le modèle sémantique complet afin d’actualiser les données.

  • DirectQuery : aucune importation de données dans Power BI Desktop. Pour les sources relationnelles, vous pouvez sélectionner des tables et des colonnes à afficher dans la liste Champs de Power BI Desktop. Pour des sources multidimensionnelles telles que SAP Business Warehouse (SAP BW), les dimensions et mesures du cube sélectionné s’affichent dans la liste Champs. Quand vous créez des visualisations ou interagissez avec elles, Power BI Desktop interroge la source de données sous-jacente afin de toujours afficher des données à jour.

Avec DirectQuery, quand vous créez ou utilisez une visualisation, vous devez interroger la source sous-jacente. La durée de l’actualisation de la visualisation varie selon les performances de la source de données sous-jacente. Si les données à utiliser pour exécuter la requête ont récemment fait l’objet dune requête, Power BI Desktop utilise les données récentes pour afficher plus vite la visualisation. La sélection de la commande Actualiser dans le ruban Accueil actualise toutes les visualisations avec des données à jour.

De nombreuses transformations et modélisations des données sont disponibles avec DirectQuery, mais avec certaines limitations liées aux performances. Pour plus d’informations sur les avantages, les limites et les suggestions de DirectQuery, consultez DirectQuery dans Power BI.

Avantages de DirectQuery

L’utilisation de DirectQuery présente certains avantages :

  • DirectQuery vous permet de créer des visualisations sur des modèles sémantiques très volumineux, qu’il serait impossible d’importer dans leur totalité avec une préagrégation.

  • Les rapports DirectQuery utilisent toujours les données les plus récentes. Pour voir les modifications des données sous-jacentes, vous devez actualiser les données, et la réimportation de modèles sémantiques volumineux pour actualiser les données peut être irréalisable.

  • La limitation du modèle sémantique de 1 Go ne s’applique pas avec DirectQuery.

Connexion à l’aide de DirectQuery

Pour vous connecter à une source de données avec DirectQuery :

  1. Dans le groupe Accueil du ruban Power BI Desktop, sélectionnez Obtenir des données, puis sélectionnez une source de données prise en charge par DirectQuery, telle que SQL Server.

  2. Dans la boîte de dialogue de la connexion, sous Mode de connectivité des données, sélectionnez DirectQuery.

Import and DirectQuery options, SQL Server Database dialog, Power BI Desktop

Publication sur le service Power BI

Vous pouvez publier des rapports DirectQuery sur le service Power BI, mais vous devez prendre des mesures supplémentaires pour que le service Power BI les ouvre.

  • Pour connecter le service Power BI aux sources de données DirectQuery autres qu’Azure SQL Database, Azure Synapse Analytics (anciennement SQL Data Warehouse), Amazon Redshift et Snowflake Data Warehouse, installez une passerelle de données locale et inscrivez la source de données.

  • Si vous avez utilisé DirectQuery avec des sources cloud telles qu’Azure SQL Database, Azure Synapse, Amazon Redshift ou Snowflake Data Warehouse, vous n’avez pas besoin d’une passerelle de données locale. Vous devez toujours fournir des informations d’identification pour que le service Power BI ouvre le rapport publié. Sans informations d’identification, une erreur se produit lorsque vous essayez d’ouvrir un rapport publié ou d’explorer un modèle sémantique créé avec une connexion DirectQuery.

Pour fournir des informations d’identification pour l’ouverture du rapport et l’actualisation des données :

  1. Dans le service Power BI, sélectionnez l’icône d’engrenage en haut à droite, puis choisissez Paramètres.

    Screenshot of the Power BI service Settings dropdown menu.

  2. Dans la page Paramètres , sélectionnez l’onglet Modèles sémantiques, puis choisissez le modèle sémantique qui utilise DirectQuery.

  3. Sous Connexion à la source de données, indiquez les informations d’identification pour vous connecter à la source de données.

Notes

Si vous avez utilisé DirectQuery avec une instance Azure SQL Database qui a une adresse IP privée, vous devez utiliser une passerelle locale.

Observations et limitations

Certaines fonctionnalités de Power BI Desktop ne sont pas prises en charge en mode DirectQuery, ou leur prise en charge est limitée. De plus, certaines fonctionnalités du service Power BI (comme Informations rapides) ne sont pas disponibles pour les modèles sémantiques qui utilisent DirectQuery. Lorsque vous déterminez si vous avez intérêt à utiliser DirectQuery, tenez compte de ces limitations de fonctionnalités. Prenez également en considération les facteurs suivants :

Considérations relatives aux performances et à la charge

DirectQuery envoie toutes les requêtes à la base de données source. Le temps d’actualisation requis pour les visuels dépend du temps nécessaire à la source sous-jacente pour renvoyer les résultats. Le temps de réponse recommandé pour recevoir les données demandées pour les visuels est de cinq secondes maximum. Les temps d’actualisation de plus de 30 secondes produisent une expérience utilisateur médiocre. Une requête qui prend plus de quatre minutes expire dans le service Power BI et l’utilisateur reçoit une erreur.

Le chargement sur la base de données source dépend également du nombre d’utilisateurs Power BI qui accèdent au rapport publié, en particulier si le rapport utilise la sécurité au niveau des lignes (RLS). L’actualisation d’une mosaïque de tableau de bord non-RLS partagée par plusieurs utilisateurs envoie une seule requête à la base de données, mais l’actualisation d’une mosaïque de tableau de bord qui utilise RLS nécessite une requête par utilisateur. L’augmentation des requêtes augmente considérablement la charge et peut affecter les performances.

Limite d’un million de lignes

DirectQuery définit une limite d’un million de lignes pour les données renvoyées à partir de sources de données cloud, qui sont toutes les sources de données qui ne sont pas locales. Les sources locales sont limitées à une charge utile définie d’environ 4 Mo par ligne, en fonction de l’algorithme de compression propriétaire, ou de 16 Mo pour l’ensemble du visuel. Les capacités Premium peuvent définir différentes limites de ligne maximales, comme décrit dans le billet de blog Nouveaux paramètres de capacité Power BI Premium.

Power BI crée des requêtes aussi efficaces que possible, mais certaines requêtes générées peuvent récupérer trop de lignes de la source de données sous-jacente. Cette situation peut se produire avec un simple graphique qui comprend une colonne avec une cardinalité élevée, dont l’option d’agrégation est définie sur Ne pas résumer. Le visuel doit avoir uniquement des colonnes avec une cardinalité inférieure à 1 million ou il doit appliquer les filtres appropriés.

La limite de lignes ne s’applique pas aux agrégations ou aux calculs utilisés pour sélectionner le modèle sémantique retourné par DirectQuery, mais uniquement aux lignes retournées. Par exemple, vous pouvez agréger 10 millions de lignes avec une requête exécutée sur la source de données. Tant que les données retournées à Power BI sont inférieures à 1 million de lignes, la requête peut retourner avec précision les résultats. Si les données dépassent 1 million de lignes, Power BI affiche une erreur, à l’exception de la capacité Premium avec différentes limites définies par l’administrateur. L’erreur indique : Le jeu de résultats d’une requête sur une source de données externe a dépassé la taille maximale autorisée de « 1 000 000 » lignes.

Considérations relatives à la sécurité

Par défaut, tous les utilisateurs qui utilisent un rapport publié dans le service Power BI se connectent à la source de données sous-jacente en utilisant les informations d’identification entrées après la publication. Cette situation est identique à celle des données importées. Tous les utilisateurs voient les mêmes données, quelles que soient les règles de sécurité que la source sous-jacente définit.

Si vous avez besoin d’une sécurité par utilisateur intégrée aux sources DirectQuery, utilisez la sécurité au niveau des lignes ou configurez l’authentification Kerberos contrainte par rapport à la source. Kerberos n’est pas disponible pour toutes les sources. Pour plus d’informations, consultez Sécurité au niveau des lignes (RLS) avec Power BI et Configurer l’authentification unique basée sur Kerberos du service Power BI vers des sources de données locales.

Autres limitations de DirectQuery

Voici d’autres limitations de l’utilisation de DirectQuery :

  • Si la requête de l’Éditeur Power Query est trop complexe, une erreur se produit. Pour corriger l’erreur, vous devez supprimer l’étape problématique dans l’éditeur Power Query ou basculer en mode importation. Les sources multidimensionnelles telles que SAP BW ne peuvent pas utiliser l’éditeur Power Query.

  • La hiérarchie automatique de la date/l’heure n’est pas disponible dans DirectQuery. Le mode DirectQuery ne prend pas en charge l’exploration hiérarchique d’une colonne de date par année, trimestre, mois ou jour.

  • Pour les visualisations de table ou de matrice, il existe une limite de 125 colonnes pour les résultats qui retournent plus de 500 lignes à partir de sources DirectQuery. Ces résultats affichent une barre de défilement dans la table ou la matrice qui vous permet d’extraire plus de données. Dans ce cas, le nombre maximal de colonnes dans la table ou la matrice est de 125. Si vous devez inclure plus de 125 colonnes dans une seule table ou matrice, envisagez de créer des mesures en utilisant MIN, MAX, FIRST ou LAST, car ces éléments ne sont pas comptabilisés par rapport à cette valeur maximale.

  • Impossible de changer à partir de l’importation en mode DirectQuery. Vous pouvez passer du mode DirectQuery au mode d’importation si vous importez toutes les données nécessaires. Il n’est pas possible de revenir en arrière, principalement en raison de l’ensemble de fonctionnalités que DirectQuery ne prend pas en charge. Les modèles DirectQuery sur des sources multidimensionnelles telles que SAP BW ne peuvent pas non plus être basculés du mode DirectQuery vers le mode d’importation, en raison du traitement différent des mesures externes.

  • Les tables calculées et les colonnes calculées qui font référence à une table DirectQuery à partir d’une source de données avec authentification unique (SSO) ne sont pas prises en charge dans le service Power BI.