Partitions et mode DirectQuery (SSAS Tabulaire)

Cette section explique comment sont utilisées les partitions dans les modèles DirectQuery. Pour plus d'informations d'ordre général sur les partitions dans les modèles tabulaires, consultez Partitions (SSAS Tabulaire).

Pour obtenir des instructions sur la modification de la partition utilisée, ou 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 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 ce comportement ultérieurement à l'aide du Gestionnaire de partitions de Outils de données SQL Server (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 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 en tant que 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 l'ensemble complet de données qui peut être utilisé 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.

Si vous disposez de plusieurs partitions dans une table et sélectionnez une partition en tant que partition DirectQuery, par défaut, toutes les autres partitions sont marquées comme étant utilisables 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 les 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 de Outils de données SQL Server (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'elle est associée à la propriété DirectQueryUsage sur la chaîne de connexion :

Propriété DirectQueryUsage

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 de façon à ce qu'elle ne soit jamais traitée. Par exemple, si vous effectuez une opération sur un jeu de données très volumineux et vous ne souhaitez pas que les résultats complets soient ajoutés dans le cache, vous pouvez spécifier que la partition DirectQuery inclut l'union des résultats pour toutes les autres partitions dans la table, et ne jamais traiter l'union. Les requêtes qui mènent à la source relationnelle ne sont pas affectées, et les requêtes sur des données en mémoire cache associent les données des autres partitions.

InMemory avec DirectQuery

Autoriser le traitement de cette partition

Si le modèle utilise le mode hybride, vous devez utiliser la même partition pour les requêtes dans le cache mémoire et les requêtes sur la source de données relationnelle.

Voir aussi

Concepts

Partitions (SSAS Tabulaire)