Optimizar modelos de DirectQuery con el almacenamiento en el nivel de tabla.

Completado

DirectQuery es un modo de almacenamiento en el que Power BI se conecta directamente al origen de datos. Es una alternativa a la importación de datos en tablas de modelos.

Captura de pantalla en la que se muestra cómo usar la opción DirectQuery para obtener datos

Cuando se usa el modo de almacenamiento de DirectQuery, los tiempos de respuesta de la consulta dependen en gran medida del rendimiento del origen de datos subyacente. Un tiempo de respuesta alto para las consultas generará una experiencia de usuario negativa y, en el peor de los casos, las consultas podrían agotar el tiempo de espera. Además, la cantidad de usuarios que abren los informes en un momento dado afectará a la carga que se coloca en el origen de datos. Por ejemplo, si una página de informe tiene 20 objetos visuales y 10 personas abren esa página, habrá un mínimo de 200 consultas en el origen de datos, ya que cada objeto visual emitirá una o más.

Por desgracia, el rendimiento del modelo semántico no solo se ve afectado por el rendimiento del origen de datos subyacente, sino también por otros factores que no es posible controlar, como los siguientes:

  • Latencia de red; las redes más rápidas devuelven datos con más rapidez.
  • El rendimiento del servidor del origen de datos y la cantidad de cargas de trabajo adicionales en ese servidor. Por ejemplo, piense en las implicaciones de una actualización de servidor que ocurre mientras cientos de usuarios utilizan el mismo servidor por distintos motivos.

Por tanto, el uso de DirectQuery supone un riesgo para la calidad del rendimiento del modelo. Para optimizar el rendimiento en esta situación, debe tener control sobre la base de datos de origen o tener acceso a ella.

Para obtener información más detallada, consulte Instrucciones del modelo de DirectQuery en Power BI Desktop.

Implicaciones del uso de DirectQuery

El procedimiento recomendado consiste en importar datos en las tablas del modelo, pero es posible que su organización necesite usar el modo de almacenamiento de DirectQuery debido a una de las siguientes razones (ventajas de DirectQuery):

  • Es una buena opción cuando los datos cambian con frecuencia y hay que crear informes en tiempo real.
  • Puedes controlar datos de gran tamaño sin necesidad de agregarlos previamente.
  • Aplica las restricciones de soberanía de datos para cumplir con los requisitos legales.
  • Se puede utilizar con un origen de datos multidimensional que contenga medidas como SAP Business Warehouse (BW).

Si su organización quiere utilizar DirectQuery, debe comprender claramente su comportamiento y entender las limitaciones que tiene. De ese modo, estará en la posición correcta para adoptar medidas a fin de optimizar el modelo de DirectQuery lo máximo posible.

Comportamiento de las conexiones de DirectQuery

Cuando utiliza DirectQuery para conectarse a datos en Power BI Desktop, esa conexión se comporta de la siguiente manera:

  • Cuando utilices por primera vez la característica Obtener datos en Power BI Desktop, deberás seleccionar el origen. Si se conecta a un origen relacional, puedes seleccionar un conjunto de tablas y cada una de ellas definirá una consulta que devuelve un conjunto de datos de forma lógica. Si selecciona un origen multidimensional, como SAP BW, solo puedes seleccionar el origen.
  • Al cargar los datos, estos no se importan a Power BI Desktop, solo se carga el esquema. Cuando añade un objeto visual a un informe, se envían consultas al origen subyacente para recuperar los datos necesarios. El tiempo que se tarda en actualizar el objeto visual depende del rendimiento del origen de datos subyacente.
  • Si se hacen cambios en los datos subyacentes, estos no se reflejarán inmediatamente en los objetos visuales existentes, debido al almacenamiento en caché. Tendrá que hacer una actualización para ver esos cambios. En los objetos visuales aparecen las consultas necesarias y los objetos se van actualizando como corresponda.
  • Al publicar el archivo de Power BI Desktop en el servicio Power BI, este publica un modelo semántico. Sin embargo, en ese modelo semántico no se incluyen datos.
  • Cuando abre un informe existente en el servicio Power BI, o cuando crea uno nuevo, se consulta de nuevo al origen subyacente para recuperar los datos necesarios. En función de la ubicación del origen original, es posible que tengas que configurar una puerta de enlace de datos local.
  • Puedes anclar objetos visuales, o páginas de informe completas, como iconos del panel. Los iconos se actualizan de forma automática según una programación, por ejemplo, cada hora. Puedes controlar la frecuencia de esta actualización para ajustarla a tus necesidades. Al abrir un panel, los iconos reflejan los datos en el momento de la última actualización y es posible que no incluyan los últimos cambios realizados en el origen de datos subyacente. Siempre puede actualizar un panel abierto para asegurarse de que esté actualizado.

Limitaciones de las conexiones de DirectQuery

El uso de DirectQuery puede tener implicaciones negativas. Las limitaciones varían en función del origen de datos específico que se use. Debes tener en cuenta lo siguiente:

  • Rendimiento: como se ha indicado antes, la experiencia global del usuario depende en gran medida del rendimiento del origen de datos subyacente.
  • Seguridad: si usa varios orígenes de datos en un modelo de DirectQuery, es importante comprender cómo se mueven los datos entre los orígenes de datos subyacentes, así como las implicaciones de seguridad asociadas. También debe identificar si las reglas de seguridad son aplicables a los datos de su origen subyacente, ya que, en Power BI, todos los usuarios pueden ver esos datos.
  • Transformación de datos: en comparación con los datos importados, los datos que provienen de DirectQuery tienen limitaciones a la hora de aplicar técnicas de transformación de datos con Power Query. Por ejemplo, si se conecta a un origen OLAP, como SAP BW, no puede hacer ninguna transformación; se toma el modelo externo completo del origen de datos. Si quiere realizar cualquier transformación en los datos, tendrá que hacerlo en el origen de datos subyacente.
  • Modelado: algunas de las funcionalidades de modelado disponibles con datos importados no están disponibles al usar DirectQuery (o están limitadas).
  • Generación de informes: casi todas las funcionalidades de generación de informes que tiene con los datos importados también se admiten para los modelos de DirectQuery, siempre que el origen subyacente ofrezca un nivel de rendimiento adecuado.

Para obtener información más detallada sobre las limitaciones del uso de DirectQuery, consulte Implicaciones del uso de DirectQuery.

Ahora que entiende cómo funciona DirectQuery y conoce sus limitaciones, puede adoptar medidas para mejorar el rendimiento.

Optimizar el rendimiento

Sigamos con el ejemplo de Tailwind Traders: durante la revisión del modelo semántico, descubre que el modelo utiliza DirectQuery para conectarse a los datos de origen. Este uso de DirectQuery es el motivo por el que los usuarios experimentan un rendimiento deficiente con el informe. La carga de las páginas en el informe tarda demasiado y las tablas no se actualizan con la rapidez suficiente cuando se realizan determinadas selecciones. Tendrás que adoptar medidas para optimizar el rendimiento del modelo de DirectQuery.

Puedes examinar las consultas que se envían al origen subyacente e intentar identificar el motivo de tu bajo rendimiento. Luego, puede hacer cambios en Power BI Desktop y el origen de datos subyacente para optimizar el rendimiento general.

Optimizar datos en Power BI Desktop

Cuando haya optimizado el origen de datos tanto como sea posible, puede tomar medidas adicionales dentro de Power BI Desktop empleando el Analizador de rendimiento, donde puede aislar consultas para validar planes de consulta.

Puede analizar la duración de las consultas que se envían al origen subyacente para identificar las que tardan mucho tiempo en cargarse. En otras palabras, puede identificar dónde se producen cuellos de botella.

No es necesario usar una estrategia especial al optimizar un modelo de DirectQuery; puede aplicar las mismas técnicas de optimización que ha usado para ajustar los datos importados. Por ejemplo, puede reducir el número de objetos visuales en la página del informe o el número de campos que se usan en un objeto visual. También puedes quitar las columnas y filas innecesarias.

Para obtener instrucciones más detalladas sobre cómo optimizar una consulta de DirectQuery, consulta Instrucciones del modelo de DirectQuery en Power BI Desktop e Instrucciones para usar DirectQuery correctamente.

Optimización del origen de datos subyacente (base de datos conectada)

La primera parada es el origen de datos. Debes ajustar la base de datos de origen tanto como sea posible, ya que cualquier cosa que hagas para mejorar el rendimiento de esa base de datos de origen mejorará también DirectQuery en Power BI. Las medidas que tomes en la base de datos serán las que aporten el mayor valor.

Valora la posibilidad de usar los siguientes procedimientos estándar de base de datos aplicables a la mayoría de las situaciones:

  • Evite el uso de columnas calculadas complejas, ya que la expresión de cálculo se insertará en las consultas de origen. Es más eficaz volver a insertar la expresión en el origen porque eso evita la desactivación. También puede valorar la posibilidad de agregar columnas de clave suplente en tablas de dimensión.
  • Revise los índices de las tablas de origen y compruebe si la indexación actual es la óptima. Si tiene que crear índices, asegúrese de que sean adecuados.

Consulte los documentos de instrucciones del origen de datos e implemente sus recomendaciones de rendimiento.

Personalización de las opciones de Reducción en consultas

Power BI Desktop le da la opción de enviar menos consultas y deshabilitar ciertas interacciones que generarán una mala experiencia si las consultas resultantes tardan mucho tiempo en ejecutarse. Al aplicar estas opciones, evitará que las consultas visiten repetidamente el origen de datos, lo que mejorará el rendimiento.

En este ejemplo, modificará la configuración predeterminada para aplicar las opciones de reducción de datos disponibles en el informe. Puede acceder a la configuración seleccionando Archivo>Opciones y configuración>Opciones y desplazándose hacia abajo en la página; luego, seleccione la opción Reducción en consultas.

Estas son las opciones disponibles para la reducción en consultas:

  • Reducción del número de consultas enviadas: de forma predeterminada, cada objeto visual interactúa con todos los demás objetos visuales. Al activar esta casilla, se deshabilita la interacción predeterminada. Luego, puede elegir qué objetos visuales interactúan entre sí mediante la característica Editar interacciones.

  • Segmentaciones: la opción Aplicar cambios en la segmentación al instante está seleccionada de manera predeterminada. Para forzar que los usuarios del informe apliquen manualmente los cambios de la segmentación, selecciona la opción Agrega un botón Aplicar a cada segmentación para aplicar los cambios cuando esté a punto.

  • Filtros: la opción Aplicar cambios en los filtros básicos al instante está seleccionada de manera predeterminada. Para forzar a los usuarios del informe a que apliquen manualmente los cambios en los filtros, selecciona una de las opciones alternativas:

    • Agregar botones Aplicar a todos los filtros básicos para aplicar los cambios cuando esté listo
    • Agregar un único botón Aplicar al panel de filtros para aplicar los cambios a la vez (versión preliminar)

Captura de pantalla donde se ve cómo acceder a las opciones de reducción de consultas