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 el modelo para que use solo datos relacionales (solo DirectQuery), o para que cambie 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. Cree 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 un único origen de datos relacional, ya sea SQL Server o SQL Server PDW. Para obtener más información, vea Modo DirectQuery (SSAS tabular).
Después, revise las limitaciones de las medidas y columnas calculadas, y determine si las fórmulas que piensa usar son compatibles con el modo DirectQuery. Quizás necesite quitar o modificar los siguientes elementos del modelo:
Las columnas calculadas no se admiten.
Los datos copiados-pegados no se pueden utilizar. Por tanto, si desea iniciar la solución importando un modelo de PowerPivot, debe eliminar todas 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.
Importante:
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 secundario en el nodo Model.bim en el 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 errores de 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 concreta, siempre puede crearla mediante el Diseñador de consultas relacionales (SSAS) proporcionado en el Asistente para la 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 usaba previamente datos copiados y pegados o datos de otros proveedores, puede crear nuevas vistas y columnas derivadas dentro del origen de datos relacional o incluso dentro de la definición de consulta usada en la importación de tablas. Sin embargo, todos los datos empleados en un modelo de DirectQuery deben ser accesibles en un único origen de datos relacional. Si algunos datos están en sistemas externos, considere la posibilidad de almacenar provisionalmente los datos en el origen de datos relacional.
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 el 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 |
En la propiedad Configuración de suplantación, especifique la cuenta que se usará para conectarse al origen de datos relacional. Si usa el valor ImpersonateCurrentUser, la instancia de Analysis Services que hospeda el modelo pasará las credenciales del usuario actual del modelo al origen de datos relacional. |
Modo híbrido |
En la propiedad Configuración de suplantación, especifique la cuenta que se usará para obtener acceso a los datos del origen de datos relacional. Esta configuración no afecta a las credenciales empleadas para procesar la memoria caché usada por el modelo. |
Paso 7. Implementar el 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 Implementar con SQL Server Data Tools (SSAS tabular).
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 memorias caché de Analysis Services. |
Modo híbrido |
DirectQuery con In-Memory In-Memory con DirectQuery Ambos valores le permiten usar 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 en la que implementó el modelo. Haga clic con el botón secundario en el nombre de la base de datos y seleccione Propiedades.
La propiedad DirectQueryMode se estableció al definir las propiedades de implementación.
La propiedad Información de suplantación de origen de datos se estableció al definir las opciones de suplantación de usuarios. Para obtener más información, vea Establezca las opciones de suplantación (SSAS - multidimensional).
Una vez implementado el modelo, puede cambiar estas propiedades en cualquier momento.
Volver al principio
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. En los modelos tabulares almacenados en caché, también es posible utilizar los roles de Analysis Services para controlar el acceso a los datos, pero los datos almacenados en la 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. No se admite esta configuración.
DirectQueryMode = On
QueryMode = In-Memory
Modo híbrido
La implementación del modelo en un modo híbrido tiene muchas ventajas: puede obtener datos actualizados del origen de datos relacional según sea necesario, especialmente cuando se necesita actualizar los datos en tiempo real. Sin embargo, conservar la memoria caché le ofrece la posibilidad de trabajar con datos en memoria para aumentar el rendimiento al diseñar informes o probar el modelo.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 obtener los datos directamente del almacén relacional, lo que asegura que los resultados están actualizados.
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 = In-Memory 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 In-Memory