Partager via


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. Cet article explique les différences entre les modes de connectivité Import et DirectQuery et vous indique comment vous connecter à des sources de données à l’aide de DirectQuery. Il aborde également les considérations et limitations relatives à l’utilisation de DirectQuery, telles que les performances et la sécurité.

Pour déterminer si une source de données prend en charge DirectQuery, affichez la liste complète des sources de données disponibles trouvées 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 le volet Données 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 le volet Données. 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.

Options Importer et DirectQuery, boîte de dialogue SQL Server Database, 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, accédez à l’espace de travail et recherchez le modèle sémantique qui utilise DirectQuery dans la liste de contenu de l’espace de travail.

  2. Sélectionnez l’icône de trois points horizontaux Plus d’options en regard du nom du modèle sémantique, puis choisissez Paramètres.

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

Remarque

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 Pas de calcul. 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 Import. 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.

  • Vous ne pouvez passer d’un mode Import à DirectQuery. Vous pouvez passer du mode DirectQuery au mode Import 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 Import, en raison du traitement différent des mesures externes.

  • Les tableaux et colonnes calculés qui font référence à un tableau DirectQuery à partir d’une source de données avec authentification unique (SSO) sont pris en charge dans le service Power BI avec une connexion cloud partageable attribuée et/ou un contrôle d’accès granulaire.