Activer le mode DirectQuery dans SSMS

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Vous pouvez modifier les propriétés d’accès aux données d’un modèle tabulaire qui a déjà été déployé, en activant le mode DirectQuery, où les requêtes s’exécutent sur une source de données relationnelle principale plutôt que sur les données mises en cache résidant en mémoire.

Important

Il est recommandé d’utiliser le concepteur de modèles tabulaires dans Visual Studio au lieu de SQL Server Management Studio (SSMS) pour changer de mode de stockage de données. Lorsque vous utilisez Visual Studio pour modifier le mode de modèle, puis effectuez un suivi avec le déploiement sur le serveur, le modèle et la base de données restent synchronisés. En outre, la modification des modes de stockage dans le modèle vous permet de passer en revue les erreurs de validation qui se produisent. Lors de l’utilisation de SSMS comme décrit dans cet article, les erreurs de validation ne sont pas signalées.

Configuration requise

L’activation de l’utilisation du mode DirectQuery sur un modèle tabulaire est un processus en plusieurs étapes :

  • Vérifiez que le modèle ne dispose pas de fonctionnalités susceptibles d’entraîner des erreurs de validation en mode DirectQuery, puis modifiez le mode de stockage des données sur le modèle en passant de en mémoire à DirectQuery.

    Une liste des limitations des fonctionnalités est documentée en mode DirectQuery.

  • Passez en revue les chaîne de connexion et les informations d’identification utilisées par la base de données déployée pour récupérer des données à partir de la base de données externe back-end. Assurez-vous qu’il y n’a qu’une seule connexion, et que ses paramètres sont appropriés pour l’exécution de la requête.

    Les bases de données tabulaires non spécifiquement conçues pour DirectQuery peuvent avoir plusieurs connexions qui doivent à présent être réduites à une, comme requis pour le mode DirectQuery.

    Les informations d’identification utilisées à l’origine pour le traitement des données seront désormais utilisées pour interroger les données. Dans le cadre de la configuration de DirectQuery, examinez et modifiez éventuellement le compte si vous en utilisez plusieurs pour les opérations dédiées.

    Le mode DirectQuery est le seul scénario dans lequel Analysis Services effectue une délégation approuvée. Si votre solution fait appel à délégation pour obtenir des résultats de requête spécifiques de l’utilisateur, le compte utilisé pour se connecter à la base de données principale doit être autorisé à déléguer l’identité de l’utilisateur effectuant la requête, et les identités d’utilisateur doivent disposer d’autorisations en lecture sur la base de données principale.

  • En guise de dernière étape, vérifiez que le mode DirectQuery est opérationnel en exécutant la requête.

Passer en mode DirectQuery

  1. Dans Explorateur d'objets, cliquez avec le bouton droit sur lemode par défautdes propriétés>> de la base de données.>

  2. Définissez le mode DirectQuery.

    Valeurs valides Description
    DirectQuery Les requêtes sont exécutées sur un une base de données relationnelle principale, en utilisant la connexion à la source de données définie pour le modèle.

    Les requêtes adressées au modèle sont converties en requêtes de base de données natives et redirigées vers la source de données.

    Lorsque vous traitez un modèle en mode DirectQuery, seules les métadonnées sont compilées et déployées. Les données proprement dites sont externes au modèle. Elles résident dans les fichiers de base de données de la source de données opérationnelle.
    Importer Les requêtes sont exécutées sur la base de données tabulaire dans MDX ou DAX.

    Lorsque vous traitez un modèle défini sur le mode Importation, les données sont récupérées à partir d’une source de données back-end et stockées sur le disque. Lors du chargement de la base de données, les données sont copiées entièrement en mémoire afin que les requêtes et analyses de table soient très rapides.

    Il s’agit du mode par défaut pour les modèles tabulaires, qui est l’unique mode pour certaines sources de données (non relationnelles).
    Double Autorise l’importation et DirectQuery. Ce mode n’est pas pris en charge dans Azure Analysis Services ou Power BI Premium.

Vérifier les propriétés de connexion

Selon le paramétrage de la connexion à la source de données, le passage au mode DirectQuery peut modifier le contexte de sécurité de la connexion. Lorsque vous modifiez le mode d’accès aux données, examinez les propriétés de chaîne d’emprunt d’identité et de connexion pour vérifier que la connexion est valide pour les connexions en cours à la base de données principale.

Pour plus d’informations sur la délégation d’identité d’utilisateur pour les scénarios DirectQuery, voir la section Configurer Analysis Services pour une délégation approuvée dans Configure Analysis Services for Kerberos constrained delegation .

  1. Dans l’Explorateur d’objets, développez Connections (Connexions), puis double-cliquez sur une connexion pour afficher ses propriétés.

    Pour les modèles DirectQuery, il ne peut y avoir qu’une seule connexion définie pour la base de données, la source de données doit être relationnelle et le type de la base de données doit être pris en charge. Consultez Sources de données prises en charge.

  2. Connection string (Chaîne de connexion) doit spécifier le serveur, nom de la base de données et la méthode d’authentification utilisée dans les opérations DirectQuery. Si vous utilisez l’authentification SQL Server, vous pouvez spécifier ici la connexion de base de données.

  3. Lesinformations d’emprunt d’identité sont utilisée pour l’authentification Windows. Les options valides pour les modèles tabulaires en mode DirectQuery sont les suivantes :

    • Utilisez le compte de service. Vous pouvez choisir cette option si le compte de service Analysis Services a lu les autorisations sur la base de données relationnelle.

    • Utilisez un nom d’utilisateur et un mot de passe spécifiques. Spécifiez un compte d’utilisateur Windows disposant d’autorisations en lecture sur la base de données relationnelle.

Notez que ces informations d'identification sont utilisées uniquement pour répondre aux requêtes sur la banque de données relationnelle ; elles sont différentes des informations d'identification utilisées pour traiter le cache d'un modèle hybride.

L'emprunt d'identité ne peut pas être utilisé lorsque le modèle est utilisé dans la mémoire uniquement. La paramètre ImpersonateCurrentUsern'est pas valide, sauf si le modèle utilise le mode DirectQuery.

Valider l’accès DirectQuery

  1. Démarrez une trace à l’aide de SQL Server Profiler ou de xEvents dans Management Studio connecté à la base de données relationnelle SQL Server.

    Si vous utilisez Oracle ou Teradata, servez-vous des outils de trace destinés à ces plateformes de base de données.

  2. Dans Management Studio, entrez et puis exécutez une simple requête MDX, telle que select <some measure> on 0 from model..

  3. Dans la trace, vous devriez voir la preuve de l’exécution de la requête sur la base de données relationnelle.

Voir aussi

Niveau de compatibilité
Sources de données prises en charge
Événements étendus