Compartir a través de


Escenarios de implementación de DirectQuery (SSAS Tabular)

En este tema se proporciona un tutorial sobre el proceso de diseño e implementación para los modelos de DirectQuery. Puede configurar DirectQuery para usar solo datos relacionales (solo DirectQuery) o puede configurar el modelo para cambiar entre el uso de datos almacenados en caché solo o solo datos relacionales (modo híbrido). En este tema se explica el proceso de implementación de ambos modos y se describen las posibles diferencias en los resultados de la consulta en función del modo y la configuración de seguridad.

Pasos de diseño e implementación

Comparación de configuraciones de DirectQuery

Pasos de diseño e implementación

Paso 1. Creación de la solución

Independientemente del modo que use, debe revisar la información que describe las limitaciones de los datos que se pueden usar en los modelos de DirectQuery. Por ejemplo, todos los datos usados en el modelo y los informes deben proceder de una base de datos única de SQL Server. Para obtener más información, vea Modo DirectQuery (SSAS tabular).

Además, revise las limitaciones de las medidas y las columnas calculadas y determine si las fórmulas que quiere usar son compatibles con el modo DirectQuery. Es posible que tenga que quitar o modificar los siguientes elementos:

  • No se admiten columnas calculadas.

  • No se pueden usar datos copiados y pegados. Si importa un modelo PowerPivot para iniciar la solución, asegúrese de eliminar 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. Habilitación del modo DirectQuery en el diseñador de modelos

De forma predeterminada, DirectQuery está deshabilitado. Por lo tanto, debe configurar el entorno de diseño para admitir el modo DirectQuery.

Haga clic con el botón derecho 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 cree columnas o fórmulas incompatibles con el modo DirectQuery, se recomienda habilitar el modo DirectQuery directamente desde el principio.

Inicialmente, incluso los modelos 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 almacenado en memoria. Este modo de trabajo híbrido le permite usar la memoria caché de datos importados para mejorar el rendimiento durante el proceso de diseño del modelo, al tiempo que valida el modelo en función de los requisitos de DirectQuery.

Paso 3. Resolver errores de validación

Si recibe errores de validación al activar DirectQuery o al agregar nuevos datos o fórmulas, abra la lista de errores de Visual Studio y, a continuación, realice las acciones necesarias.

  • Cambie cualquier configuración de propiedad necesaria para el modo DirectQuery, 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 el Diseñador de consultas relacionales (SSAS) proporcionado en el Asistente para importación de tablas.

  • Modifique o quite fórmulas incompatibles con el modo DirectQuery. Si necesita una función determinada para un cálculo, considere las formas en que podría proporcionar un equivalente mediante Transact-SQL.

  • Agregue los datos según sea necesario. Si su modelo usó 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 usados 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 consultas en el modelo

Solo DirectQuery Establezca la propiedad en DirectQuery.
Modo híbrido Establezca la propiedad en In-Memory Con DirectQuery o DirectQuery con en memoria.

Puede cambiar este valor más adelante para usar una preferencia diferente.

Tenga en cuenta que los clientes pueden invalidar el método preferido en la cadena de conexión.

Paso 5. Especifica la partición de DirectQuery

DirectQuery solo Opcional. Un modelo de DirectQuery no necesita una partición.

Sin embargo, si creó particiones en el modelo durante la fase de diseño, recuerde que solo se puede usar una partición como origen de datos. De forma predeterminada, la primera partición que creó se usará como partición directQuery.

Para asegurarse de que todos los datos requeridos por el modelo están disponibles en la partición directQuery, elija una partición de DirectQuery y edite la instrucción SQL para obtener todo el conjunto de datos.
Modo híbrido Si alguna tabla en su modelo tiene varias particiones, debe elegir una sola partición como la Partición DirectQuery. Si no asigna una partición, de forma predeterminada, la primera partición que se creó se usará como partición directQuery.

Establezca las opciones de procesamiento en todas las particiones, excepto DirectQuery. Normalmente, la partición DirectQuery nunca se procesa, ya que los datos se pasan desde el origen relacional.

Para obtener más información, vea Particiones y modo DirectQuery (SSAS tabular).

Paso 6. Configuración de la suplantación

La suplantación solo se admite para los modelos de DirectQuery. La opción de suplantación , Configuración de suplantación, define las credenciales que se usan al ver 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 del 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 de SQL Server.
Modo híbrido Para la propiedad Configuraciones de suplantación, especifique la cuenta que se utilizará para acceder a los datos de la fuente de datos de SQL Server.

Esta configuración no afecta a las credenciales que se usan 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 QueryMode en uno de los valores descritos en la tabla siguiente:

Para obtener más información, vea Desplegar desde SQL Server Data Tools (SSAS Tabular).

Solo DirectQuery DirectQueryOnly

Dado que solo ha especificado Direct Query, los metadatos del modelo se implementan en el servidor, pero el modelo no se procesa.

Tenga en cuenta que la memoria caché que usó la base de datos del área de trabajo no se elimina automáticamente. Si desea asegurarse de que los usuarios no puedan ver los datos almacenados en caché, es posible que desee borrar la memoria caché en tiempo de diseño. Para obtener más información, consulte Borrar las cachés de Analysis Services.
Modo híbrido DirectQuery con en memoria

In-Memory con DirectQuery

Ambos valores permiten usar la memoria caché o el origen de datos relacional según sea necesario. El orden define qué origen de datos se usa de forma predeterminada al responder las consultas en el modelo.

En un modo híbrido, la memoria caché debe procesarse al mismo tiempo que los metadatos del modelo se implementan en el servidor.

Puede cambiar esta configuración después de la implementación.

Paso 8. Comprobación del modelo implementado

En SQL Server Management Studio, abra la instancia de Analysis Services donde implementó el modelo. Haga clic con el botón derecho 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 usuario. Para obtener más información, vea Configurar Opciones de Suplantación (SSAS - Multidimensional).

  • Puede cambiar estas propiedades en cualquier momento después de implementar el modelo.

Comparación de las opciones de DirectQuery

Solo DirectQuery
Esta opción es preferible cuando desea garantizar un único origen de datos o cuando los datos son demasiado grandes para caber en la memoria. Si está trabajando con un origen de datos relacional muy grande, durante el tiempo de diseño puede crear el modelo mediante algún subconjunto de los datos. Al implementar el modelo en modo solo DirectQuery, puede editar la definición del origen de datos para incluir todos los datos necesarios.

Esta opción también es preferible si desea usar 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. Siempre debe usar esta opción si el contexto de seguridad requiere que los datos nunca se almacenen en caché.

En la tabla siguiente se describen los posibles resultados de implementación para el modo solo DirectQuery:

DirectQuery sin caché No se cargan datos en la memoria caché. El modelo nunca se puede procesar.

El modelo solo se puede consultar mediante clientes que admiten consultas DAX. Los resultados de la consulta siempre se devuelven desde el origen de datos original.

DirectQueryMode = On

QueryMode = DirectQuery
DirectQuery con consultas solo en caché 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 modo híbrido tiene muchas ventajas: puede obtener up-todatos de fecha del origen de datos de SQL Server si es necesario, pero conservar la memoria caché le ofrece la capacidad de trabajar con datos en memoria para un rendimiento más rápido al diseñar informes o probar el modelo.

Un modo híbrido de DirectQuery también es útil si el modelo es muy grande. En lugar de que los usuarios obtengan datos obsoletos o que el modelo no esté disponible mientras se procesa la memoria caché, puede cambiar el modelo al modo DirectQuery mientras el procesamiento está en curso. Los usuarios pueden experimentar un rendimiento ligeramente más lento, pero podrían obtener datos directamente desde el almacén relacional, asegurando que los resultados estén up-to-date.

En la tabla siguiente se compara el resultado de implementación en cada una de las combinaciones de opciones de DirectQuery.

Modo híbrido con la memoria caché preferida El modelo se puede procesar y los datos se pueden cargar en la memoria caché. Las consultas usan la memoria caché de forma predeterminada. Si un cliente quiere usar el origen de 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 usan DirectQuery de forma predeterminada. Si un cliente quiere usar los datos almacenados en caché, se debe insertar un parámetro en la cadena de conexión. Si las tablas del modelo tienen particiones, la partición principal de la memoria caché también se establece en In-Memory con DirectQuery.

DirectQueryMode = On

QueryMode = DirectQuery con memoria interna

Véase también

Modo DirectQuery (SSAS Tabular)
Acceso a datos del modelo tabular