Choisir un mode de stockage
La première décision de conception pour n’importe quel modèle sémantique dans Microsoft Fabric est la façon dont les données circulent dans le modèle. Le mode de stockage que vous choisissez affecte les performances des requêtes, la fraîcheur des données et les fonctionnalités Fabric disponibles. Dans Fabric, Direct Lake est la valeur par défaut et pour la plupart des charges de travail, il s'agit du bon choix.
Mode Direct Lake
Direct Lake est le mode de stockage par défaut pour les modèles sémantiques créés dans Microsoft Fabric. Contrairement au mode Importation, Direct Lake ne copie pas de données dans le modèle. Contrairement à DirectQuery, il ne traduit pas les requêtes en SQL source. Au lieu de cela, Direct Lake lit directement en mémoire les tables Delta depuis OneLake, combinant ainsi la rapidité de l'importation à la fraîcheur de DirectQuery.
Lorsqu’un utilisateur ouvre un rapport soutenu par un modèle sémantique Direct Lake, le moteur charge les données de colonne à partir de fichiers Delta Parquet à la demande. Vous n’avez pas besoin de planifier une actualisation, comme vous le faites avec le mode Importation. Lorsque les tables Delta sous-jacentes sont mises à jour, le modèle reflète ces modifications.
Les modèles Direct Lake activent automatiquement le format de stockage de modèle sémantique volumineux. Ce paramètre supprime la limite de taille de modèle de 10 Go et est un prérequis pour le scaleout de requête et l’accès en lecture/écriture au point de terminaison XMLA. Vous n’avez pas besoin de l’activer manuellement pour les modèles Direct Lake.
Options de connexion Direct Lake
Les modèles Direct Lake peuvent se connecter aux données via deux chemins d’accès :
- Tables OneLake : le modèle se connecte directement aux tables Delta dans un lac ou un entrepôt. Il s’agit du chemin le plus simple et fonctionne correctement lorsque vos données se situent dans un magasin de données Fabric unique.
- Point de terminaison d’analyse SQL : le modèle se connecte via le point de terminaison SQL d’un lakehouse ou d’un entrepôt de données. Ce chemin permet d’accéder aux vues, aux requêtes inter-bases de données et aux fonctionnalités de sécurité définies au niveau de la couche SQL.
Choisissez des tables OneLake lorsque vos données sont simples et vivent dans un seul endroit. Choisissez le point de terminaison d'analyse SQL lorsque vous avez besoin de vues, de jointures inter-sources ou de sécurité au niveau des lignes définies en SQL.
Comportement de repli
Certaines opérations peuvent amener un modèle Direct Lake à revenir en mode DirectQuery. Les calculs DAX complexes, les requêtes qui dépassent la mémoire disponible ou certaines opérations non prises en charge provoquent ce repli. Lorsqu'un basculement se produit, la requête est exécutée sur l'endpoint d'analyse SQL plutôt que de lire directement les fichiers Delta.
Vous pouvez configurer le comportement de secours dans les paramètres du modèle sémantique :
- Autoriser la fonctionnalité de secours : Les requêtes qui ne peuvent pas s’exécuter en mode Direct Lake reviennent automatiquement à DirectQuery. L’utilisateur obtient des résultats, mais les performances peuvent diminuer.
- Interdire le repli : les requêtes qui ne peuvent pas s'exécuter en mode Direct Lake retournent une erreur. Cette option applique des performances cohérentes, mais nécessite que toutes les requêtes restent dans les fonctionnalités Direct Lake.
Pour la plupart des charges de travail de production, commencez par autoriser le basculement et surveillez les requêtes qui le déclenchent. Optimisez ensuite ces requêtes ou structures de données pour réduire la fréquence de recours aux solutions de secours au fil du temps.
Mode Importation
Le mode d’importation copie les données dans le modèle sémantique et les stocke dans un format compressé en mémoire. Les requêtes s’exécutent sur la copie locale, ce qui rend l’importation le mode de stockage le plus rapide pour les performances des requêtes. Toutefois, les données sont uniquement aussi actuelles que la dernière actualisation.
Le mode d’importation est le bon choix quand :
- Votre source de données est en dehors de Fabric (bases de données locales, API tierces, fichiers plats).
- Les performances des requêtes sont la priorité absolue et l’actualisation en temps quasi réel n’est pas nécessaire.
- Vous avez besoin de fonctionnalités qui ne sont pas encore prises en charge dans Direct Lake.
Conseil / Astuce
Lorsque vous utilisez le mode Importation, connectez-vous aux vues au lieu de tables brutes, incluez uniquement les colonnes nécessaires et utilisez les types de données appropriés pour réduire la taille du modèle. En savoir plus sur les techniques de réduction des données chargées dans les modèles d’importation.
Mode DirectQuery
DirectQuery envoie des requêtes directement à la source de données au moment de la requête. Aucune donnée n’est stockée dans le modèle, ce qui rend DirectQuery adapté aux scénarios de données en temps réel et aux jeux de données très volumineux qui ne peuvent pas être importés.
Le compromis est la performance. Chaque interaction de rapport génère une requête sur le système source. DirectQuery fonctionne le mieux quand :
- Les données en temps réel sont requises et même les délais d’actualisation courts ne sont pas acceptables.
- Les volumes de données sources sont trop volumineux à importer et la source de données est en dehors de Fabric.
- Les exigences de gouvernance imposent que les données restent à la source.
Conseil / Astuce
Pour plus d’informations, consultez les instructions du modèle DirectQuery.
Mode composite
Le mode composite combine les modes de stockage au sein d’un modèle unique. Certaines tables utilisent Import, tandis que d’autres utilisent DirectQuery ou Direct Lake. Cela offre une flexibilité pour les scénarios où différentes tables ont des besoins de performances et d’actualisation différents.
Par exemple, une table de faits volumineuses peut rester dans Direct Lake alors qu’une petite table de référence d’une source externe utilise Import. Le mode composite permet également des relations plusieurs-à-plusieurs entre les tables provenant de différentes sources de données.
Utilisez le mode composite quand :
- Vous avez besoin de données provenant de sources Fabric et non Fabric dans le même modèle.
- Certaines tables nécessitent des données en temps réel, tandis que d’autres bénéficient des performances mises en cache.
- Vous devez combiner des tables Direct Lake avec des tables Import pour l’analyse entre sources.
Choisir le mode de stockage approprié
Le tableau suivant récapitule quand choisir chaque mode :
| Mode | Emplacement des données | Vitesse de requête | Actualisation des données | Idéal pour |
|---|---|---|---|---|
| Lac direct | OneLake (Tables Delta) | Rapide | Quasi-temps réel | charges de travail natives Fabric (par défaut) |
| Importation | Cache dans le modèle | Le plus rapide | Dépendant de l’actualisation | Sources Non-Fabric, performances optimales |
| DirectQuery | Système source | Dépend du système source | Quasi-temps réel | Exigences en temps réel, données externes très volumineuses |
| Composite | Mixed | Varie | Mixed | Scénarios inter-sources, exigences hybrides |
Le mode de stockage affecte également la consommation d’IA. Lorsque Copilot ou les agents de données interrogent un modèle sémantique, ils retournent des réponses en fonction des données que le modèle reflète actuellement. L’actualisation quasi-en temps réel de Direct Lake signifie que les requêtes IA retournent les résultats actuels sans attendre une actualisation planifiée. Pour les modèles qui servent à la fois les utilisateurs humains et l’IA, le choix du mode de stockage affecte directement la qualité des deux expériences.
Dans Fabric, commencez par Direct Lake. Passez à un autre mode uniquement lorsque votre scénario spécifique l’exige.