Escenarios de implementación de DirectQuery (SSAS tabular)
Este tema proporciona un tutorial del proceso de diseño e implementación para los modelos de DirectQuery. Puede configurar DirectQuery para utilizar solo datos relacionales (solo DirectQuery), o puede configurar el modelo para cambiar entre usar solo datos en caché o solo datos relacionales (modo híbrido). En este tema se describe el proceso de implementación para ambos modos, y describe diferencias posibles en los resultados de la consulta dependiendo del modo y configuración de seguridad.
Pasos de diseño e implementación
Comparar las configuraciones de DirectQuery
Pasos de diseño e implementación
Paso 1. Creación de la solución
Independientemente del modo que utilizará, debe revisar la información que describe las limitaciones en los datos que se pueden utilizar en los modelos de DirectQuery. Por ejemplo, todos los datos usados en el modelo y los informes deben proceder de una sola base de datos de SQL Server. Para obtener más información, vea DirectQuery Mode (SSAS Tabular) (Modo DirectQuery [SSAS tabular]).
Además, revise las limitaciones de las medidas y columnas calculadas, y determine si las fórmulas que piensa utilizar son compatibles con el modo de DirectQuery. Podría necesitar quitar o modificar los siguientes elementos:
Las columnas calculadas no se admiten.
Los datos copiados-pegados no se pueden utilizar. Si importa un modelo de PowerPivot para iniciar la solución, asegúrese de eliminar las tablas vinculadas antes de importar la solución, ya que estos datos no se pueden eliminar y bloquearán la validación de DirectQuery.
Paso 2. Habilitar el modo DirectQuery en el diseñador de modelos
De forma predeterminada, DirectQuery está deshabilitado. Por tanto, debe configurar el entorno de diseño para admitir el modo de DirectQuery.
Haga clic con el botón derecho en el nodo Model.bim en Explorador de soluciones y establezca la propiedad, Modo DirectQuery, en On
.
Puede activar DirectQuery en cualquier momento; sin embargo, para asegurarse de que no crea columnas o fórmulas incompatibles con el modo DirectQuery, se recomienda habilitar el modo DirectQuery desde el principio.
Inicialmente, incluso los modelos de DirectQuery se crean siempre en memoria. El modo de consulta predeterminado para la base de datos del área de trabajo también se establece en DirectQuery con In-Memory. Este modo de funcionamiento híbrido permite utilizar la memoria caché de los datos importados para mejorar el rendimiento durante el proceso de diseño de modelos mientras se valida el modelo con los requisitos de DirectQuery.
Paso 3. Resolver errores de validación
Si obtiene errores de validación al activar DirectQuery, o al agregar nuevos datos o nuevas fórmulas, abra la Lista de erroresde Visual Studio y tome las medidas necesarias.
Cambie los valores de las propiedades requeridos para el modo DirectQuery, tal como se describe en los mensajes de error.
Quite las columnas calculadas. Si necesita una columna calculada para una medida determinada, siempre puede crear la columna mediante la consulta relacional Designer (SSAS) proporcionada en el Asistente para importación de tablas.
Modifique o quite las fórmulas incompatibles con el modo DirectQuery. Si necesita una determinada función para un cálculo, considere las posibles formas de proporcionar un equivalente usando Transact-SQL.
Agregue datos según sea necesario. Si el modelo utilizaba anteriormente datos de copiar y pegar o datos de proveedores distintos de SQL Server, puede crear nuevas vistas y columnas derivadas dentro de la conexión existente, o utilizar consultas distribuidas. Todos los datos utilizados en un modelo de DirectQuery deben ser accesibles a través de un único origen de datos de SQL Server.
Paso 4. Establecer el método preferido para responder a las consultas sobre el modelo
Solo DirectQuery | Establezca la propiedad en DirectQuery. |
Modo híbrido | Establezca la propiedad en In-Memory con DirectQuery o en DirectQuery con In-Memory. Este valor se puede modificar posteriormente para utilizar otra preferencia. Observe que los clientes pueden invalidar el método preferido en la cadena de conexión. |
Paso 5. Especificar la partición DirectQuery
Solo DirectQuery | Opcional. Un modelo de solo DirectQuery no necesita ninguna partición. Sin embargo, si ha creado particiones en el modelo durante la fase de diseño, recuerde que solo se puede utilizar una partición como origen de datos. De forma predeterminada, la primera partición que creó se utilizará como la partición de DirectQuery. Para asegurarse de que todos los datos que necesita el modelo están disponibles en la partición de DirectQuery, elija una partición de DirectQuery y modifique la instrucción SQL para obtener el conjunto de datos completo. |
Modo híbrido | Si alguna tabla del modelo tiene varias particiones, debe elegir una sola partición como partición de DirectQuery. Si no asigna una partición, la primera partición creada se utilizará, de forma predeterminada, como la partición de DirectQuery. Establezca opciones de procesamiento en todas las particiones salvo en la de DirectQuery. Normalmente, la partición de DirectQuery nunca se procesa, porque los datos se pasan a través del origen relacional. Para obtener más información, vea Particiones y modo DirectQuery (SSAS tabular). |
Paso 6. Configurar la suplantación
La suplantación solo se admite en los modelos DirectQuery. La opción de suplantación Configuración de suplantacióndefine las credenciales que se utilizan al ver los datos del origen de datos de SQL Server especificado.
Solo DirectQuery | Para la propiedad Configuración de suplantación, especifique la cuenta que se usará para conectarse al origen de datos SQL Server. Si usa el valor ImpersonateCurrentUser, la instancia de Analysis Services que hospeda el modelo pasará las credenciales del usuario actual del modelo a la base de datos SQL Server. |
Modo híbrido | En la propiedad Configuración de suplantación , especifique la cuenta que se utilizará para acceder a los datos del origen de datos de SQL Server. Esta configuración no afecta a las credenciales utilizadas para procesar la memoria caché usada por el modelo. |
Paso 7. Implementación del modelo
Cuando esté listo para implementar el modelo, abra el menú Proyecto de Visual Studio y seleccione Propiedades. Establezca la propiedad de QueryMode en uno de los valores descritos en la siguiente tabla:
Para obtener más información, vea Deploy From SQL Server Data Tools (SSAS Tabular) (Implementar desde SQL Server Data Tools (tabular de SSAS).
Solo DirectQuery | DirectQueryOnly Dado que ha especificado solo Direct Query, los metadatos del modelo se implementarán en el servidor, pero no se procesará el modelo. Tenga en cuenta que la memoria caché utilizada por la base de datos del área de trabajo no se eliminará automáticamente. Si desea asegurarse de que los usuarios no puedan ver los datos de la memoria caché, borre la caché de tiempo de diseño. Para obtener más información, vea Borrar las cachés de Analysis Services. |
Modo híbrido | DirectQuery con In-Memory En memoria con DirectQuery Ambos valores le permiten utilizar la memoria caché o el origen de datos relacional según sea necesario. El orden define el origen de datos que se utiliza de forma predeterminada al responder a las consultas realizadas en el modelo. En un modo híbrido, la memoria caché se debe procesar al mismo tiempo que los metadatos del modelo se implementan en el servidor. Puede cambiar este valor una vez realizada la implementación. |
Paso 8. Comprobar el modelo implementado
En SQL Server Management Studio, abra la instancia de Analysis Services donde implementó el modelo. Haga clic con el botón secundario en el nombre de la base de datos y seleccione Propiedades.
La propiedad DirectQueryModese estableció al definir las propiedades de implementación.
La propiedad Información de suplantación de origen de datosse estableció al definir las opciones de suplantación de usuarios. Para obtener más información, vea Set Impersonation Options (SSAS - Multidimensional) (Establecer opciones de suplantación [SSAS - multidimensional]).
Una vez implementado el modelo, puede cambiar estas propiedades en cualquier momento.
Comparar las opciones de DirectQuery
Solo DirectQuery
Es preferible utilizar esta opción si se desea garantizar un único origen de datos, o si los datos no caben en la memoria. Si trabaja con un origen de datos relacional muy grande, durante el tiempo de diseño puede crear el modelo utilizando un subconjunto de los datos. Al implementar el modelo en el modo Solo DirectQuery, puede modificar la definición del origen de datos para incluir todos los datos necesarios.
También es preferible utilizar esta opción si se desea utilizar la seguridad proporcionada por el origen de datos relacional para controlar el acceso de los usuarios a los datos. Con los modelos tabulares almacenados en caché, también puede usar roles de Analysis Services para controlar el acceso a los datos, pero los datos almacenados en la memoria caché también deben protegerse. Debe utilizar siempre esta opción si el contexto de seguridad requiere que los datos no se almacenen nunca en la memoria caché.
En la tabla siguiente se describen los posibles resultados de implementación para el modo Solo DirectQuery:
DirectQuery sin caché | No se carga ningún dato en la memoria caché. El modelo no se podrá procesar nunca. Solo se podrán realizar consultas en el modelo utilizando clientes compatibles con las consultas DAX. Los resultados de la consulta siempre se devolverán desde el origen de datos original. DirectQueryMode = On QueryMode = DirectQuery |
DirectQuery con consultas a la caché únicamente | Se produce un error en la implementación. Esta configuración no se admite. DirectQueryMode = On QueryMode = En memoria |
Modo híbrido
La implementación del modelo en un modo híbrido tiene muchas ventajas: permite conseguir datos actualizados del origen de datos de SQL Server si es necesario, pero la conservación de la memoria caché le ofrece la posibilidad de trabajar con datos en memoria mientras diseña informes o prueba el modelo, obteniendo un mejor rendimiento.
Un modo híbrido de DirectQuery también es útil si el modelo es muy grande. Para evitar que los usuarios obtengan datos obsoletos o que no se pueda utilizar el modelo mientras se procesa la memoria caché, puede cambiar el modelo al modo DirectQuery mientras se realiza el procesamiento. Es posible que los usuarios experimenten un rendimiento ligeramente inferior, pero podrán conseguir los datos directamente del almacén relacional, evitando así resultados obsoletos.
La tabla siguiente compara el resultado de la implementación en cada una de las combinaciones de opciones de DirectQuery.
Modo híbrido con caché preferida | El modelo se puede procesar y los datos se pueden cargar en la memoria caché. Las consultas utilizan la memoria caché de forma predeterminada. Si un cliente desea utilizar el origen de datos DirectQuery, se debe insertar un parámetro en la cadena de conexión. DirectQueryMode = On QueryMode = En memoria con DirectQuery |
Modo híbrido con DirectQuery preferido | El modelo se procesa y los datos se pueden cargar en la memoria caché. Sin embargo, las consultas utilizan DirectQuery de forma predeterminada. Si un cliente desea utilizar los datos en caché, se debe insertar un parámetro en la cadena de conexión. Si las tablas del modelo se dividen en particiones, la partición principal de la memoria caché también se establece en In-Memory con DirectQuery. DirectQueryMode = On QueryMode = DirectQuery con en memoria |
Consulte también
Modo DirectQuery (SSAS tabular)
Acceso a datos de modelos tabulares