Définition de partitions dans les modèles DirectQuery
S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
Cet article décrit comment les partitions sont utilisées dans les modèles DirectQuery. Pour plus d’informations générales sur les partitions dans les modèles tabulaires, consultez Partitions dans les modèles tabulaires.
Notes
Bien qu’une table puisse avoir plusieurs partitions, en mode DirectQuery, une seule d’entre elles peut être désignée pour l’exécution des requêtes. La spécification de partition unique s’applique aux modèles DirectQuery à tous les niveaux de compatibilité.
Utilisation de partitions en mode DirectQuery
Pour chaque table, vous devez spécifier une seule partition à utiliser en tant que source de données DirectQuery. S'il existe plusieurs partitions, lorsque vous basculez le modèle pour activer le mode DirectQuery, par défaut la première partition qui a été créée dans la table est marquée en tant que partition DirectQuery. Vous pouvez modifier cela ultérieurement à l’aide du Gestionnaire de partitions dans le concepteur de modèles tabulaires dans Visual Studio.
Pourquoi autoriser une seule partition en mode DirectQuery ? Dans les modèles tabulaires (comme dans les modèles OLAP), les partitions d’une table sont définies par des requêtes PowerQuery M ou des requêtes SQL. Le développeur qui crée la définition de partition doit s'assurer que les partitions ne se chevauchent pas. Analysis Services ne vérifie pas si les enregistrements appartiennent à une ou plusieurs partitions.
Les partitions dans un modèle tabulaire mis en cache se comportent de la même manière. Si vous utilisez un modèle en mémoire, lors de l'accès au cache, les formules DAX sont évaluées pour chaque partition et les résultats sont associés. Toutefois, lorsqu'un modèle tabulaire utilise le mode DirectQuery, il est impossible d'évaluer plusieurs partitions, de combiner les résultats et de les convertir en une instruction SQL pour l'envoi à la banque de données relationnelle. Cela peut entraîner une perte inacceptable de performances, ainsi que des inexactitudes potentielles à mesure que les résultats sont agrégés.
Par conséquent, pour les requêtes ayant obtenu une réponse en mode DirectQuery, le serveur utilise une seule partition qui a été marquée comme partition principale pour l’accès DirectQuery, que l’on appelle partition DirectQuery. La requête SQL spécifiée dans la définition de cette partition définit l’ensemble complet des données qui peuvent être utilisées pour répondre aux requêtes en mode DirectQuery.
Si vous ne définissez aucune partition de manière explicite, le moteur transmet simplement une requête SQL à l'ensemble de la source de données relationnelle, effectue toutes les opérations reposant sur un jeu dictées par la formule DAX et retourne les résultats de la requête.
Modifier une partition DirectQuery
Dans la mesure où une seule partition d'une table peut être désignée en tant que partition DirectQuery, par défaut, Analysis Services utilise la première partition qui a été créée dans la table. Pendant la création de projet de modèle, vous pouvez modifier la partition DirectQuery à l’aide du Gestionnaire de partitions. Pour les modèles déployés, vous pouvez modifier la partition DirectQuery à l’aide de SQL Server Management Studio.
Modifier la partition DirectQuery pour un projet de modèle tabulaire
Dans Visual Studio, dans le concepteur de modèles, cliquez sur la table (onglet) qui contient la table partitionnée.
Cliquez sur Extensions>Partitions de table>.
Dans le Gestionnaire de partitions, la partition correspondant à la partition de requête directe active est indiquée par le préfixe (DirectQuery) dans le nom de la partition.
Sélectionnez une autre partition dans la liste Partitions , puis cliquez sur Définir comme DirectQuery. Le bouton Définir comme DirectQuery n'est pas activé lorsque la partition DirectQuery active est sélectionnée, et n'est pas visible si le modèle n'a pas été activé pour le mode de requête directe.
Modifier la partition DirectQuery pour un modèle tabulaire déployé
Dans SQL Server Management Studio, ouvrez la base de données model dans Explorateur d'objets.
Développez le nœud Tables , cliquez avec le bouton droit sur la table partitionnée, puis sélectionnez Partitions.
La partition qui est indiquée pour être utilisée avec le mode DirectQuery a le préfixe (DirectQuery) sur le nom de partition.
Pour passer à une autre partition, cliquez sur l'icône de la barre d'outils Requête directe pour ouvrir la boîte de dialogue Définir une partition DirectQuery . L'icône de la barre d'outils DirectQuery n'est pas disponible sur les modèles qui n'ont pas été activés pour la requête directe.
Choisissez une autre partition dans la liste déroulante Nom de la partition , puis modifiez les options de traitement sur la partition, si nécessaire.