Partager via


Partitions et mode DirectQuery (SSAS Tabulaire)

Cette section explique 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 (SSAS Tabulaire).

Pour obtenir des instructions sur la façon de modifier la partition utilisée ou d’afficher des informations sur la partition, consultez Modifier la partition DirectQuery (SSAS Tabulaire) .

Utilisation de partitions en mode DirectQuery

Pour chaque table, vous devez spécifier une partition unique à utiliser comme 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 créée dans la table est marquée comme partition DirectQuery. Vous pouvez le modifier ultérieurement à l’aide du Gestionnaire de partitions dans SQL Server Data Tools (SSDT).

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 les requêtes SQL. Le développeur qui crée la définition de partition est chargé de 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 d’un modèle tabulaire mis en cache se comportent de la même façon. Si vous utilisez un modèle en mémoire, alors que le cache est accessible, les formules DAX sont évaluées pour chaque partition et les résultats sont combinés. Toutefois, lorsqu’un modèle tabulaire utilise le mode DirectQuery, il serait impossible d’évaluer plusieurs partitions, de combiner les résultats et de le convertir en instruction SQL pour l’envoi au magasin de données relationnelle. Cela pourrait 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 répondues en mode DirectQuery, le serveur utilise une seule partition marquée comme partition principale pour l’accès DirectQuery, appelée partition DirectQuery. La requête SQL spécifiée dans la définition de cette partition définit le jeu complet de données qui peut être utilisé pour répondre aux requêtes en mode DirectQuery.

Si vous ne définissez pas explicitement une partition, le moteur émet simplement une requête SQL à l’ensemble de la source de données relationnelle, effectue toutes les opérations basées sur des ensembles dictées par la formule DAX et retourne les résultats de la requête.

Si vous avez plusieurs partitions dans une table et sélectionnez une partition comme partition DirectQuery, par défaut, toutes les autres partitions sont marquées comme étant destinées à une utilisation en mémoire uniquement.

Partitions dans les modèles mis en cache et dans les modèles DirectQuery

Lorsque vous configurez une partition DirectQuery, vous devez spécifier des options de traitement pour la partition.

Il existe deux options de traitement pour la partition DirectQuery. Pour définir cette propriété, utilisez le Gestionnaire de partitions dans SQL Server Data Tools (SSDT) ou SQL Server Management Studio, puis sélectionnez la propriété Option de traitement . Le tableau suivant répertorie les valeurs de cette propriété et décrit les effets de chaque valeur lorsqu’elles sont combinées à la propriété DirectQueryUsage sur la chaîne de connexion :

DirectQueryUsage propriété Propriété Option de traitement Remarques
DirectQuery Ne jamais traiter cette partition Lorsque le modèle utilise DirectQuery uniquement, le traitement n’est jamais nécessaire.

Dans les modèles hybrides, vous pouvez configurer la partition DirectQuery pour ne jamais être traitée. Par exemple, si vous travaillez sur un jeu de données très volumineux et que vous ne souhaitez pas que les résultats complets soient ajoutés au cache, vous pouvez spécifier que la partition DirectQuery inclut l’union des résultats de toutes les autres partitions de la table, puis de ne jamais traiter l’union. Les requêtes qui vont à la source relationnelle ne seront pas affectées, et les requêtes sur les données mises en cache combineront les données des autres partitions.
InMemory avec DirectQuery Autoriser le traitement de la partition Si le modèle utilise le mode hybride, vous devez utiliser la même partition pour les requêtes sur la mémoire et les requêtes sur la source de données DirectQuery.

Voir aussi

Partitions (SSAS Tabulaire)