Habilitar el modo DirectQuery en SSMS

Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Puede cambiar las propiedades de acceso a datos de un modelo tabular que ya se ha implementado, habilitando el modo DirectQuery, donde las consultas se ejecutan en un origen de datos relacional de back-end en lugar de datos almacenados en caché que residen en memoria.

Importante

Se recomienda usar el diseñador de modelos tabulares en Visual Studio en lugar de SQL Server Management Studio (SSMS) para cambiar los modos de almacenamiento de datos. Al usar Visual Studio para cambiar el modo de modelo y, a continuación, realizar un seguimiento de la implementación en el servidor, el modelo y la base de datos permanecen sincronizados. Además, cambiar los modos de almacenamiento en el modelo permite revisar los errores de validación que se producen. Al usar SSMS como se describe en este artículo, no se notifican errores de validación.

Requisitos

Habilitar el uso del modo DirectQuery en un modelo tabular es un proceso de varios pasos:

  • Asegúrese de que el modelo no tiene características que puedan provocar errores de validación en el modo DirectQuery y, a continuación, cambie el modo de almacenamiento de datos en el modelo de en memoria a DirectQuery.

    En el modo DirectQuery se documenta una lista de limitaciones de características.

  • Revise la cadena de conexión y las credenciales usadas por la base de datos implementada para recuperar datos de la base de datos externa de back-end. Asegúrese de que solo hay una conexión y de que su configuración es adecuada para la ejecución de consultas.

    Las bases de datos tabulares que no fueran diseñadas específicamente para DirectQuery podrían contar con diversas conexiones, que ahora deben reducirse a una, tal y como requiere el modo DirectQuery.

    Las credenciales usadas originalmente para procesar datos ahora se usarán para consultar los datos. Como parte de la configuración de DirectQuery, revise y, en caso de proceder, cambie la cuenta si usa otras distintas para las operaciones específicas.

    El modo DirectQuery representa el único escenario en el que Analysis Services realiza la delegación de confianza. Si su solución requiere delegación para obtener resultados de consulta específicos de los usuarios, la cuenta utilizada para conectarse a la base de datos back-end debe tener permiso para delegar la identidad del usuario que realiza la solicitud. Además, las identidades de usuarios deben disponer de permisos de lectura en dicha base de datos.

  • Como último paso, confirme que el modo DirectQuery se encuentra operativo mediante la ejecución de una consulta.

Cambiar al modo DirectQuery

  1. En Explorador de objetos, haga clic con el botón derecho en elmodo predeterminado delmodelo> de propiedades> de la base de datos>.

  2. Establezca el modo en DirectQuery.

    Valores válidos Descripción
    DirectQuery Las consultas se ejecutan en una base de datos relacional back-end mediante la conexión de origen de datos definida para el modelo.

    Las consultas del modelo se convierten en consultas de bases de datos nativas y se redirigen al origen de datos.

    Al procesar un modelo establecido en el modo DirectQuery, solo se compilan e implementan los metadatos. Los datos en sí son externos al modelo y residen en los archivos de base de datos del origen de datos operativo.
    Importar Las consultas se ejecutan en la base de datos tabular en MDX o DAX.

    Al procesar un modelo establecido en modo de importación, los datos se recuperan de un origen de datos back-end y se almacenan en el disco. Cuando haya cargado la base de datos, los datos se copian por completo en la memoria para ofrecer consultas y recorridos de tabla muy rápidos.

    Este es el modo predeterminado de los modelos tabulares y es el único modo para determinados orígenes de datos (no relacionales).
    Dual Permite importar y DirectQuery. Este modo no se admite en Azure Analysis Services o Power BI Premium.

Comprobación de las propiedades de conexión

Según la configuración de la conexión de origen de datos, si cambia a DirectQuery, es posible que se modifique el contexto de seguridad de la conexión. Al cambiar el modo de acceso de datos, consulte las propiedades de la cadena de conexión y la suplantación a fin de comprobar que el inicio de sesión sea válido para las conexiones salientes a la base de datos back-end.

Consulte la sección Configurar Analysis Services para la delegación de confianza de Configure Analysis Services for Kerberos constrained delegation para obtener información general sobre la delegación de una identidad de usuario para escenarios de DirectQuery.

  1. En el Explorador de objetos, expanda Conexiones y haga doble clic en una conexión para ver sus propiedades.

    Para los modelos DirectQuery, solo debe haber una conexión definida para la base de datos; por su parte, el origen de datos debe ser relacional y de un tipo de base de datos compatible. Consulte Orígenes de datos admitidos.

  2. EnCadena de conexión se debe especificar el servidor, nombre de la base de datos y el método de autenticación utilizado en las operaciones de DirectQuery. Si utiliza la autenticación de SQL Server, puede especificar aquí el inicio de sesión de base de datos.

  3. Información de suplantación se utiliza para la autenticación de Windows. Entre las opciones válidas para los modelos tabulares en el modo DirectQuery se incluyen las siguientes:

    • Use la cuenta de servicio. Puede seleccionar esta opción si la cuenta de servicio de Analysis Services dispone de permisos de lectura en la base de datos relacional.

    • Use un nombre de usuario y una contraseña específicos. Especifique una cuenta de usuario de Windows que tenga permisos de lectura en la base de datos relacional.

Tenga en cuenta que estas credenciales solo se utilizan para responder a las consultas en el almacén de datos relacional; no son las mismas que se usan para procesar la memoria caché de un modelo híbrido.

No se puede utilizar la suplantación si el modelo solo se usa en la memoria. El valor ImpersonateCurrentUserno es válido a menos que el modelo utilice el modo DirectQuery.

Validación del acceso a DirectQuery

  1. Inicie un seguimiento mediante SQL Server Profiler o XEvents en Management Studio, conectado a la base de datos relacional de SQL Server.

    Si usa Oracle o Teradata, utilice las herramientas de seguimiento de esas plataformas de base de datos.

  2. En Management Studio, escriba y ejecute una consulta MDX simple, como select <some measure> on 0 from model..

  3. En el seguimiento, debería ver pruebas de la ejecución de la consulta en la base de datos relacional.

Consulte también

Nivel de compatibilidad
Orígenes de datos admitidos
Eventos extendidos