Vous êtes nombreux à me demander quelle est la différence entre une connexion directe aux données sources dans Power BI et une importation de données. En fait, il existe plus précisément 3 façons de se connecter aux données sources. Il faut, en effet, ajouter aux 2 options précédentes la connexion active (disponible pour des données en provenance de SSAS, d’un modèles de données Power BI publié sur le service ou de Common Data Services). Cet article vise à expliquer les grandes différences, ainsi que les avantages et désavantages de chacune des options.
Introduction
Pour une vaste sélection de sources de données, l’importation de données est le seul mode de connexion possible. Évidemment, si on se connecte à un fichier, on n’a d’autre choix que de l’importer. Par contre, pour d’autres sources de données, comme les bases de données SQL, par exemple, l’usager peut choisir entre l’importation de données ou la connexion directe. Pour d’autres sources encore, comme celles en provenance de modèles tabulaires sur SSAS, de modèles de données Power BI publiés sur le service ou de Common Data Services, l’usager n’aura pas l’option d’utiliser une connexion directe, mais plutôt une connexion active.
Importation de données
Lorsque vous importez des données dans Power BI Desktop, vous pouvez choisir les éléments que vous désirez importer.
Par exemple, si vous choisissez d’importer les données d’un modèle tabulaire sur SSAS, vous allez carrément importer les données et Power BI les conservera dans une cache. Se faisant, votre fichier ne sera pas lié d’aucune façon à la source. Pour le mettre à jour, vous devrez cliquer sur le bouton d’actualisation et Power BI importera de nouveau les données. Une fois le rapport publié dans le service, si la base de données SSAS est locale, il faudra installer une passerelle et grâce à cette passerelle, il sera possible de programmer un rafraîchissement de données, à intervalles fixes dans le temps (le plus petit intervalle est de une heure, ce qui n’est pas du temps réel mais pas loin non plus).
Comme Power BI n’a pas à aller lire les données à la source, les requêtes sur les visualisations sont beaucoup plus rapides.
En mode d’importation de données, vous pouvez importer des données de plusieurs sources différentes, ce qui n’est pas possible en connexion directe. En effet, dès que vous utilisez une connexion directe, vous êtes limité à n’utiliser que cette seule source de données dans votre rapport.
Voici un exemple d’importation de données d’un modèle SSAS
D’abord, vous choisissez le modèle et vous pouvez apercevoir les différentes tables du modèle.
Vous pouvez sélectionner les champs désirés dans chacune des tables.
Dans les étapes appliquées, vous verrez une étape “Éléments ajoutés”. Si vous désirez modifier les champs à importer, vous pourrez double-cliquer sur cette étape et effectuer vos modifications.
De même, vous retrouverez un menu contextuel “Outils cube” qui vous permettra d’ajouter des éléments et de réduire (supprimer) des colonnes.
Connexion directe (direct query)
Lorsque vous vous connectez directement aux données sources à partir de Power BI Desktop, vous travaillez toujours avec les données en temps réel. Les données ne sont pas importées dans Power BI Desktop. Il y a plutôt un pont entre la source et Power BI Desktop. Le temps d’actualisation dépend directement de la performance de la source de données.
Une fois le rapport publié sur le service Power BI, il faudra ou non installer une passerelle, dépendamment de la source. La liste des sources de données prenant en charge la connexion directe et la nécessité ou non d’installer une passerelle selon la source est fournie à la fin de cette section.
Quelles sont les implications de la connexion directe?
- Vous pourrez vous connecter uniquement à cette source de données. Si vous tentez de vous connecter à une autre source, vous obtiendrez le message ci-dessous. Ce faisant, si vous optez pour la connexion directe, vos rapports ne pourront puiser que dans une seule source de données.
- Les transformations de données possibles, dans l’éditeur de requêtes, seront plus limitées, afin d’éviter des problèmes de performance. Il n’existe pas de liste officielle précisant l’ensemble de ces limitations mais vous devez garder à l’esprit que certaines transformations ne seront pas possibles, dépendamment de la source.
- La modélisation de données sera également limitée, pour éviter des problèmes de performance. Ces limites aussi dépendent des sources de données. Par exemple, on retrouvera des limites au niveau des colonnes calculées et il sera impossible d’utiliser des tables calculées ou des relations bidirectionnelles. De même, il sera impossible d’utiliser la fonction DAX PATH pour traiter les relations parents-enfants.
- Il est possible de transcender ces limites en modifiant les options dans Power BI Desktop, tel qu’illustré ci-dessous. Toutefois, il faut savoir que certaines expressions qui fonctionnent bien lors de l’importation de données peuvent ralentir considérablement les requêtes en mode de connexion directe.
- On rencontrera aussi des limitations au niveau du rapport. Notamment, les fonctionnalités suivantes ne seront pas prises en charge:
- Génération des informations rapides
- Questions et réponses (Q&A)
- Analyse dans Excel (peut fonctionner mais risque d’entraîner des problèmes de performance)
Sécurité et passerelle
Un rapport créé en connexion directe et publié sur le service utilise toujours les mêmes informations d’identification pour se connecter à la source de données sous-jacente. Ci-dessous, j’ai publié un rapport .pbix se connectant directement à un serveur SQL. Voici le message obtenu:
Dans Power BI Service, en effet, on ne voit rien, tant que la source de données n’a pas été ajoutée à la passerelle.
Ci-dessous, j’ajoute la source de données à la passerelle et j’utilise mes identifiants de connexion. C’est donc avec ces identifiants que se fera la connexion à la source.
Et le rapport est maintenant accessible.
Cela dit, si aucune information de sécurité par ligne n’est intégrée au rapport, tous les utilisateurs verront donc les mêmes données, comme dans le cas où il y a une importation de données.
Quand utiliser la connexion directe?
- Quand la source est multidimensionnelle et contient des mesures (comme SAP BW, SAP HANA ou un modèle SSAS MD)
- Dans ce cas, si on utilisait le mode d’importation de données, on pourrait rencontrer des problèmes, notamment avec les mesures non additives
- Quand les données sources changent fréquemment et qu’il est important d’avoir des données presqu’en temps réel
- Il ne faut pas oublier qu’en mode d’importation de données, on peut programmer des rafraîchissements de données aux heures
- Quand les données sont très volumineuses et qu’il est tout simplement impossible de les importer
- Attention, le fait de s’y connecter directement pourrait prendre beaucoup de temps et être peu performant
- Il pourrait être utile de tester l’importation de données avec des requêtes SQL permettant de regrouper les données plutôt que de se connecter à la source entière (un endroit est prévu à cet effet dans la fenêtre de connexion)
Autres considérations
Voici également d’autres éléments auxquels réfléchir:
- Si les données changent, il n’existe aucune garantie de cohérence entre les visuels
- Il existe une limite de 1M de lignes retournées sur toute requête (on peut interroger 10M (ou plus) de lignes dans la source mais le résultat retourné doit être inférieur à 1M de lignes)
- Il est impossible de passer du mode Importation au mode DirectQuery
- La performance est étroitement liée à la performance de la source de données
Sources de données prises en charge et passerelles selon sources
Pour obtenir une liste des sources de données auxquelles vous pouvez vous connecter en connexion directe et les informations liées à l’utilisation ou non de passerelles lorsque les rapports sont publiés dans Power BI Service, vous pouvez vous référer à l’article suivant: Sources de données prises en charge et passerelles selon sources.
Exemple de connexion directe à une base de données SQL
D’abord, on se connecte en connexion directe.
On a ensuite accès à l’ensemble des tables de la source.
L’éditeur de requêtes est accessible.
Il est possible de modifier les relations entre les tables.
Il est possible de créer de nouvelles mesures et de nouvelles colonnes.
Connexion active (live connection)
La connexion active est disponible pour les données en provenance de SSAS, d’un modèle de données publié sur Power BI Service ou de Common Data Services. Lorsque vous vous connectez à SSAS, par exemple, aucune requête n’est définie, et le modèle externe tout entier apparaît dans la liste de champs. Il n’est pas possible de définir de nouvelles colonnes calculées, hiérarchies, relations et autres. Au lieu de cela, vous vous connectez directement au modèle SSAS.
Lorsque vous publiez un rapport connecté activement à SSAS sur Power BI Service, vous noterez que:
- Il faut installer une passerelle de données afin de pouvoir interroger le modèle de données local et programmer des rafraîchissements de données à intervalles fixes
- L’identité de l’utilisateur ouvrant le rapport est toujours transmise à la source SSAS sous-jacente et les paramètres de sécurité de la source peuvent donc être utilisés directement
Exemple de connexion active à un modèle SSAS tabulaire
D’abord, on se connecte en connexion active.
Ensuite, on consulte les modèles disponibles et on choisit celui que l’on souhaite analyser.
Tous les éléments du modèle deviennent accessibles dans le panneau des champs, y compris les mesures et les KPI, tel qu’illustré ci-dessous.
On n’a pas de module pour gérer les tables de données ou les relations entre les tables. On n’a seulement accès au module pour créer des rapports.
On n’a pas accès à l’éditeur de requêtes.
On peut créer des mesures simples mais pas de colonnes calculées en DAX.
Merci pour le partage et comme toujours, il est très instructif de vous lire 🙂