Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans les modèles sémantiques Power BI, le mode de stockage d’une table dépend de sa source de données. Vous pouvez utiliser le mode de stockage pour contrôler si Power BI stocke les données de table en mémoire pour les rapports ou récupère les données de la source de données lors du chargement des visuels.
Cet article vous présente les différents modes de stockage de tables et décrit comment ils affectent le comportement du rapport.
Modes de stockage de tables
| Mode Stockage Table | Lorsqu’il est disponible | Avantages | Note |
|---|---|---|---|
| Importer | Dans Power BI Desktop et la modélisation web Power BI, pour presque toutes les sources de données, lorsque vous sélectionnez Obtenir des données et utilisez Power Query. | Un instantané des données est stocké dans un stockage natif pour le chargement rapide des visuels dans les rapports. | Pour obtenir les données les plus récentes de la source de données, actualisez le modèle sémantique ou la table. |
| Direct Lake sur OneLake | Dans Power BI Desktop et la modélisation web de Power BI, pour les sources de données Microsoft Fabric, lorsque vous sélectionnez le catalogue OneLake. | Les données sont analysées à partir de tables delta Microsoft OneLake pour le chargement rapide des visuels dans les rapports. | Par défaut, les données les plus récentes sont chargées. Pour accéder aux données les plus récentes en l’actualisant manuellement, désactivez la synchronisation automatique dans la page des paramètres d’actualisation planifiée. Une actualisation est également appelée reframing pour Direct Lake. Pour plus d’informations sur Direct Lake, consultez la vue d’ensemble de Direct Lake. |
| Direct Lake sur SQL | Dans les points de terminaison analytiques SQL des éléments Fabric, lorsque vous sélectionnez Nouveau modèle sémantique. | Les données sont scannées à partir des tables OneLake delta pour un chargement rapide dans les rapports. | Dans ce mode, Power BI utilise le mode de stockage DirectQuery pour accéder aux données dans les cas suivants : - Une vue est utilisée. - L’accès granulaire SQL est activé. - Un seuil de sécurité Direct Lake est atteint. |
| DirectQuery | Dans Power BI Desktop, pour certaines sources de données telles que des bases de données SQL, lorsque vous sélectionnez Obtenir des données et utilisez Power Query. | Les données sont interrogées à partir de la source de données lorsque les visuels chargent et ne sont pas stockés dans le modèle sémantique. | La requête est une traduction de la requête DAX (Data Analysis Expressions) Power BI, que les visuels utilisent, dans le langage de requête natif de la source de données, comme une requête SQL. |
| DirectQuery sur les modèles sémantiques Power BI | Dans Power BI Desktop, lorsque vous vous connectez à un modèle sémantique Power BI, puis sélectionnez Apporter des modifications à ce modèle, ou lorsqu’une table Import ou DirectQuery est déjà ajoutée. | Les requêtes DAX du nouveau modèle s’exécutent sur le modèle source et peuvent utiliser des mesures à partir des deux. Certaines propriétés de colonne sur le modèle distant peuvent être remplacées dans le nouveau modèle. Cette personnalisation inclut les chaînes de format et les noms d’affichage. | Utilisez ce mode de stockage lorsque vous devez apporter une petite modification à un modèle sémantique existant pour un rapport spécifique. |
| Double | Dans Power BI Desktop, lorsque vous convertissez une table DirectQuery en mode Importation. Une boîte de dialogue s’affiche avec des options pour convertir les tables DirectQuery restantes en mode Double. | Les relations entre DirectQuery et les tables Import sont limitées. Le passage de DirectQuery en mode Double peut aider à maintenir ces relations régulières. | |
| Hybride | Dans les scénarios d’actualisation incrémentielle sur une table d'importation. La dernière partition de la table peut être en mode DirectQuery pour vous assurer que les données les plus récentes sont disponibles entre les actualisations d’importation. | La création et la gestion des partitions sont automatisées pour réduire la quantité de données qui doivent être actualisées. | Pour plus d’informations, consultez Configurer l’actualisation incrémentielle et les données en temps réel pour les modèles sémantiques Power BI. |
Note
Le mode Live Connect est utilisé dans les cas suivants :
- Pour vous connecter à un modèle sémantique Power BI dans Power BI Desktop pour créer un rapport
- Pour créer un rapport à partir d’un modèle sémantique Power BI dans le web
Un rapport Live Connect n’a pas de modèle sémantique local et est parfois appelé rapport léger. Le modèle sémantique Power BI distant peut utiliser n’importe quel mode de stockage de table. En tant qu’auteur de rapport, vous pouvez voir le modèle en mode Modèle , mais seules des informations limitées sont disponibles. Les mesures que vous créez sont stockées dans le rapport.
Un modèle sémantique composite est un modèle sémantique avec des tables en plusieurs modes de stockage. Pour plus d’informations, consultez Utiliser des modèles composites dans Power BI.
Afficher le mode de stockage d’une table
Chaque table a une Storage mode propriété. Pour afficher le mode de stockage d’une table, procédez comme suit :
En mode Modèle , sélectionnez la table.
Dans le volet Propriétés , développez la section Avancé , puis développez la liste des modes de stockage .
Pour la plupart des tables, vous pouvez définir le mode de stockage uniquement lorsque vous ajoutez la table. Vous pouvez modifier le mode de stockage uniquement si la table est en mode DirectQuery ou Direct Lake en mode OneLake lors de la création :
- Vous pouvez remplacer une table DirectQuery par une table Import ou Dual. Après avoir défini cette propriété, vous ne pouvez pas définir le mode sur DirectQuery. Les exceptions sont la modélisation web Power BI et la modification dynamique dans Power BI Desktop. Ces environnements ont tous deux un contrôle de version, que vous pouvez utiliser pour inverser un mode de stockage modifié.
- Vous pouvez convertir Direct Lake sur des tables OneLake pour importer des tables à l’aide de laboratoires de liaison sémantique dans les notebooks Fabric.
Contraintes sur les tables DirectQuery et Dual
Les tables doubles ont les mêmes contraintes fonctionnelles que les tables DirectQuery. Ces contraintes incluent des transformations M limitées et des fonctions DAX restreintes dans des colonnes calculées. Pour plus d’informations, consultez Limitations de DirectQuery.
Propagation du paramètre Double
Considérez le modèle suivant. Toutes les tables proviennent d’une seule source qui prend en charge les modes Import et DirectQuery.
Supposons que toutes les tables de ce modèle soient initialement définies sur DirectQuery. Si vous modifiez le mode de stockage de la table SurveyResponse en importation, la fenêtre d’avertissement suivante s’affiche :
Vous pouvez définir les tables de dimension, Customer, Geography et Date en mode Double pour réduire le nombre de relations limitées dans le modèle sémantique et améliorer les performances. Les relations limitées impliquent normalement au moins une table DirectQuery où JOIN la logique ne peut pas être envoyée (push) aux systèmes sources. Étant donné que les tables doubles peuvent agir comme des tables DirectQuery ou Import, cette situation est évitée.
La logique de propagation est conçue pour aider les modèles qui contiennent de nombreuses tables. Supposons que vous disposez d’un modèle avec 50 tables et que seules certaines tables de faits (transactionnelles) doivent être mises en cache. La logique de Power BI Desktop calcule l'ensemble minimal de tables de dimension qui doivent être définies en mode Dual, afin que vous n'ayez pas à le faire.
La logique de propagation ne traverse que le côté un des relations un-à-plusieurs.
Exemple d’utilisation du mode de stockage
Prenons un exemple qui implique les tables et les modes de stockage suivants :
| Table | Mode de stockage |
|---|---|
| Ventes | DirectQuery |
| SurveyResponse | Importer |
| Date | Double |
| Client | Double |
| Géographie | Double |
L’utilisation de ces modes de stockage entraîne le comportement suivant, en supposant que la table Sales a un volume de données important :
Power BI Desktop met en cache les tables de dimension, Date, Customer et Geography pour réduire les temps de chargement des rapports initiaux lorsqu’ils récupèrent des valeurs de segment à afficher.
Power BI Desktop ne met pas en cache la table Sales.
- Ne pas mettre en cache cette table aide à améliorer les temps d’actualisation des données et à réduire la consommation de mémoire.
- Les requêtes de rapport basées sur la table Sales s’exécutent en mode DirectQuery. Ces requêtes peuvent prendre plus de temps que les requêtes d’importation. Toutefois, les résultats des requêtes DirectQuery sont plus proches des résultats en temps réel, car aucune latence de mise en cache n’est introduite.
Les requêtes de rapport basées sur la table SurveyResponse sont relativement rapides, car elles sont retournées à partir du cache en mémoire.
Requêtes qui réussissent ou échouent dans le cache
Vous pouvez utiliser SQL Server Profiler pour voir quelles requêtes atteignent ou manquent le cache en mémoire. Si vous connectez cet outil au port de diagnostic pour Power BI Desktop, vous pouvez effectuer une trace basée sur les événements suivants :
- Événements de requêtes\Début de la requête
- Traitement des requêtes\Début de la requête VERTipaq SE
- Traitement des requêtes\Démarrage DirectQuery
Pour chaque événement Query Begin , vérifiez les autres événements avec la même ActivityID valeur. Par exemple, s’il n’existe pas d’événement DirectQuery Begin, mais qu’il existe un événement Vertipaq SE Query Begin, la requête est répondue à partir du cache.
Les requêtes qui font référence à deux tables retournent des données à partir du cache, si possible. Sinon, ils reviennent au mode DirectQuery.
Considérez quelques requêtes DAX qui font référence aux tables de la section précédente. Par exemple, la requête suivante fait référence uniquement à une colonne de la table Date , qui est en mode Double. Par conséquent, la requête doit atteindre le cache :
La requête suivante fait référence uniquement à une colonne de la table Sales , qui est en mode DirectQuery. Par conséquent, cela ne devrait pas affecter le cache :
La requête suivante est intéressante, car elle combine les deux colonnes. Cette requête n’atteint pas le cache. Vous pouvez initialement vous attendre à ce qu’elle récupère les valeurs CalendarYear du cache et salesAmount à partir de la source, puis combinez les résultats. Mais cette approche est moins efficace que la soumission d’une SUM ou GROUP BY opération au système source. Si la source effectue l’opération, seule la somme des ventes pour chaque année est retournée. Ce résultat contient probablement beaucoup moins de lignes que si toutes les valeurs SalesAmount sont retournées.
Note
Ce comportement est différent des relations plusieurs-à-plusieurs dans Power BI Desktop lorsque les tables mises en cache sont combinées à des tables qui ne sont pas mises en cache.
Conserver les caches synchronisés
Les requêtes de la section précédente montrent que les tables doubles atteignent parfois le cache et parfois ne le font pas. Par conséquent, les valeurs retournées à partir d’un cache obsolète peuvent différer des valeurs retournées par la source. L’exécution de requête ne tente pas de masquer les problèmes de données, par exemple en filtrant les résultats DirectQuery pour qu’ils correspondent aux valeurs mises en cache. Il vous incombe de connaître vos flux de données et de concevoir en conséquence. Il existe des techniques établies pour gérer ces cas à la source, si nécessaire.
Le mode de stockage double est une optimisation des performances. Vous devez l’utiliser uniquement de manière à ne pas compromettre la possibilité de répondre aux besoins de l’entreprise. Pour un autre comportement, envisagez d’utiliser les techniques décrites dans Comprendre les relations plusieurs-à-plusieurs dans Power BI Desktop.
Vue Table
Si au moins une table du modèle sémantique a un mode de stockage soit Import soit Dual, l’onglet Table de Power BI est disponible.
Lorsque vous sélectionnez une table Duplique ou Import en mode Table, ses données mises en cache sont affichées. Aucune donnée n’est affichée pour les tables DirectQuery. Au lieu de cela, un message s’affiche indiquant que les tables DirectQuery ne peuvent pas être affichées.
Considérations et limitations
Il existe actuellement quelques limitations pour les modes de stockage de tables et l’utilisation de certains modes dans les modèles composites :
Les sources de connexion dynamique (multidimensionnelle) suivantes ne peuvent pas être utilisées avec des modèles composites :
- SAP HANA
- SAP Business Warehouse
Lorsque vous vous connectez à ces sources multidimensionnelles à l’aide du mode DirectQuery, vous ne pouvez pas vous connecter à une autre source DirectQuery ou la combiner avec des données importées.
Les limitations de l’utilisation du mode DirectQuery s’appliquent toujours lorsque vous utilisez des modèles composites. La plupart de ces limitations s’appliquent au niveau de la table et dépendent du mode de stockage de la table. Par exemple, une colonne calculée sur une table importée peut faire référence à d’autres tables, mais une colonne calculée sur une table DirectQuery ne peut faire référence qu’aux colonnes de la même table. D’autres limitations s’appliquent au modèle dans son ensemble, si l’une des tables du modèle est en mode DirectQuery.
Contenu connexe
Pour plus d’informations sur les modèles composites et le mode DirectQuery, consultez les articles suivants :