TechNet
Exporter (0) Imprimer
Développer tout

Mode DirectQuery (SSAS Tabulaire)

 

Cette rubrique décrit mode DirectQuery pour les modèles tabulaires Analysis Services au niveau de compatibilité 1200. Mode DirectQuery peut être activé pour les modèles que vous créez dans SSDT, ou pour les modèles tabulaires qui ont déjà été déployés, vous pouvez modifier en mode DirectQuery dans SSMS. Avant de choisir le mode DirectQuery, il est important de comprendre les avantages et les restrictions.

Par défaut, les modèles tabulaires utilisent un cache mémoire pour stocker et interroger les données. Lorsque les modèles tabulaires interroger des données résidant en mémoire, même les requêtes complexes peuvent être extrêmement rapides. Toutefois, il existe certaines limitations d’utilisation des données mises en cache. En effet, des jeux de données de grande taille peuvent dépasser la capacité mémoire disponible, et il peut s’avérer difficile, voire impossible, de répondre aux exigences d’actualisation des données avec une planification de traitement régulière.

DirectQuery dépasse ces limites, tandis que SGBDR en exploitant les fonctionnalités en exécution de la requête plus efficace. Avec DirectQuery :

  • Données soient à jour, et il n’existe aucune surcharge de gestion supplémentaire d’avoir à conserver une copie distincte des données (dans le cache en mémoire). Les modifications apportées aux données sources sous-jacentes peuvent être immédiatement reflétées dans des requêtes sur le modèle de données.

  • Jeux de données peut être supérieure à la capacité de mémoire d’un serveur Analysis Services.

  • DirectQuery peut tirer parti de l'accélération des requêtes côté fournisseur, telle que celle fournie par les index de colonne optimisés en mémoire xVelocity.

  • La sécurité peut être appliquée à la base de données back-end, à l’aide des fonctionnalités de sécurité de niveau ligne à partir de la base de données (vous pouvez également utiliser sécurité de niveau ligne dans le modèle via DAX).

  • Si le modèle contient des formules complexes qui peuvent nécessiter plusieurs requêtes, Analysis Services peut procéder à une optimisation pour garantir que le plan de requête pour la requête exécutée sur la base de données principale est aussi efficace que possible.

Les modèles tabulaires en mode DirectQuery ont certaines restrictions. Avant le basculement entre les modes, il est important déterminer si les avantages de l’exécution des requêtes sur le serveur principal l’emporte sur toute réduction de fonctionnalités.

Si vous changez le mode d’un modèle existant dans Outils de données SQL Server, le concepteur de modèles vous informera de toute fonctionnalité de votre modèle incompatible avec le mode DirectQuery.

La liste suivante résume les restrictions de fonctionnalité principal à prendre en compte :

Domaine de fonctionnalitéRestriction
Sources de donnéesLes modèles DirectQuery peuvent uniquement utiliser les données à partir d’une base de données relationnelle des types suivants : SQL Server, base de données SQL, Oracle et Teradata. Consultez les sources de données prises en charge pour DirectQuery plus loin dans cet article pour plus d’informations de version et le fournisseur.
Procédures stockées SQLPour les modèles DirectQuery, les procédures stockées ne peuvent pas être spécifiées dans une instruction SQL pour définir les tables lorsque vous utilisez l’Assistant Importation de données.
Tables calculéesLes tables calculées ne sont pas prises en charge dans les modèles DirectQuery, au contraire des colonnes calculées. Si vous essayez de convertir un modèle tabulaire qui contient une table calculée, une erreur se produit indiquant que le modèle ne peut pas contenir de données collées.
Formules DAXLors de l’interrogation d’un modèle tabulaire en mode DirectQuery, Analysis Services convertit les formules DAX et définitions de mesure en instructions SQL. Les formules DAX contenant des éléments qui ne peut pas être converties en syntaxe SQL renvoient une erreur de validation sur le modèle.

Cette restriction est principalement limitée à certaines fonctions DAX. Pour les mesures, les formules DAX sont converties en opérations de basées sur des jeux par rapport à la base de données relationnelle. Cela signifie que toutes les mesures créées implicitement sont prises en charge.

Lorsqu’une erreur de validation se produit, vous devez réécrire la formule, en remplaçant une autre fonction, ni aucune solution à l’aide de dérivées des colonnes dans la source de données. Si un modèle tabulaire inclut des formules contenant des fonctions incompatibles seront signalées lorsque vous basculez en mode DirectQuery dans le concepteur.

Remarque : certaines formules dans le modèle peuvent se valider lorsque vous basculez le modèle en mode DirectQuery, mais retournent des résultats différents lorsqu’elle est exécutée sur le cache et la banque de données relationnelle. Il s’agit, car les calculs sur le cache utilisent la sémantique de l’analytique en mémoire (moteur, qui contient les fonctionnalités pour émuler le comportement d’Excel, tandis que les requêtes sur des données stockées dans la source de données relationnelle utilisent la sémantique de SQL Server.

Stockée SQL

Pour plus d’informations, consultez compatibilité des formules DAX en DirectQuery Mode.
Cohérence des formulesDans certains cas, la même formule peut retourner des résultats différents dans un modèle mis en cache par rapport à un modèle DirectQuery qui utilise uniquement les données relationnelles banque. Ces différences sont une conséquence des différences sémantiques entre le moteur d'analyse en mémoire et SQL Server.

Pour une liste complète des problèmes de compatibilité, y compris les fonctions qui peuvent retourner des résultats différents lorsque le modèle est déployé en temps réel, consultez compatibilité des formules DAX en DirectQuery Mode (SQL Server Analysis Services).
Limitations de MDXAucun nom d’objet relatif. Tous les noms d’objet doivent être complets.

Aucune instruction MDX pour une session (jeux nommés, membres calculés, cellules calculées, valeur totale affichée, membres par défaut, etc.), mais vous pouvez utiliser des constructions à l’échelle de la requête, telles que la clause ’WITH’.

Aucun tuple avec des membres de différents niveaux dans ses clauses de sous-sélection MDX.

Aucune hiérarchie définie par l’utilisateur.

Aucune requête SQL native des (en règle générale, Analysis Services prend en charge un sous-ensemble T-SQL, mais pas pour des modèles DirectQuery).

Les modèles tabulaires DirectQuery au niveau de compatibilité 1200 sont compatibles avec les fournisseurs et sources de données suivantes :

Source de donnéesVersionsFournisseurs
Microsoft SQL Server2008 et versions ultérieuresFournisseur OLE DB pour SQL Server, SQL Server Native Client OLE DB fournisseur, fournisseur de données .NET Framework pour SQL Client
Base de données SQL Microsoft AzureToutFournisseur OLE DB pour SQL Server, SQL Server Native Client OLE DB fournisseur, fournisseur de données .NET Framework pour SQL Client
Microsoft Azure SQL Data WarehouseToutFournisseur de données .NET Framework pour SQL Client
Système de la plateforme Microsoft SQL Analytique (AP)ToutFournisseur OLE DB pour SQL Server, SQL Server Native Client OLE DB fournisseur, fournisseur de données .NET Framework pour SQL Client
Bases de données relationnelles OracleOracle 9i et versions ultérieuresFournisseur OLE DB Oracle
Bases de données relationnelles TeradataTeradata V2R6 et versions ultérieuresFournisseur de données .Net pour Teradata

Lorsque vous concevez un modèle DirectQuery dans SSDT, connexion à une source de données et en sélectionnant les tables et les champs à inclure dans votre modèle sont similaire à avec les modèles en mémoire.

Si vous avez déjà activé DirectQuery, mais n’avez pas encore connecté à une source de données, vous pouvez utiliser l’Assistant Importation de Table pour vous connecter à votre source de données, sélectionnez les tables et les champs, spécifier une requête SQL et ainsi de suite. La différence sera lorsque vous avez terminé, aucune donnée n’est réellement importée vers le cache en mémoire.

DirectQuery importation réussie

Si vous avez déjà utilisé l’Assistant Importation de Table pour importer des données, mais vous n’avez pas encore activé le mode DirectQuery, lorsque vous procédez ainsi, le cache en mémoire est effacé.

Activer le mode dans SSDT

Activer le mode dans SSMS

Ajoutez des exemples de données à un modèle en Mode Création DirectQuery

Définition de partitions dans les modèles DirectQuery

Test d’un modèle en mode DirectQuery

Compatibilité des formules DAX en Mode DirectQuery

Ajouts de la communauté

Afficher:
© 2016 Microsoft