Usar DirectQuery en Power BI Desktop

Al conectarse a cualquier origen de datos con Power BI Desktop, puede importar una copia de los datos. En el caso de algunos orígenes de datos, también puede conectarse directamente al origen de datos sin importar datos mediante DirectQuery.

Para determinar si un origen de datos admite DirectQuery, vea la lista completa de orígenes de datos disponibles que se encuentran en el artículo Conectores en Power Query que también se aplica a Power BI, seleccione el artículo que describe el origen de datos que le interesa en la lista de conectores admitidos y, después, consulte la sección del artículo sobre funcionalidades admitidas en ese conector. Si DirectQuery no aparece en esa sección para el artículo del origen de datos, DirectQuery no se admite para ese conector de datos.

He aquí las diferencias entre el uso de los modos de conectividad de importación y de DirectQuery:

  • Importar: una copia de los datos de las tablas y columnas seleccionadas se importa en Power BI Desktop. Cuando se crea una visualización o se interactúa con ella, Power BI Desktop usa los datos importados. Para ver los cambios de datos subyacentes después de la importación inicial o la actualización más reciente, debe volver a importar el modelo semántico completo para actualizar los datos.

  • DirectQuery: no se importan datos en Power BI Desktop. En el caso de los orígenes relacionales, puede seleccionar que aparezcan tablas y columnas en la lista Campos de Power BI Desktop. En el caso de orígenes multidimensionales como SAP Business Warehouse (SAP BW), las dimensiones y medidas del cubo seleccionado aparecen en la lista Campos. Mientras crea o interactúa con una visualización, Power BI Desktop consulta el origen de datos subyacente, lo que significa que siempre está viendo los datos actuales.

Con DirectQuery, al crear una visualización o interactuar con ella, debe consultar el origen subyacente. El tiempo necesario para actualizar el objeto visual depende del rendimiento del origen de datos subyacente. Si los datos necesarios para atender la solicitud se solicitaron recientemente, Power BI Desktop usa los datos recientes para reducir el tiempo necesario para mostrar la visualización. Al seleccionar Actualizar desde la cinta de opciones Inicio, se actualizan todas las visualizaciones con datos actuales.

Existen muchas transformaciones y modelado de datos al usar DirectQuery, aunque con algunas limitaciones basadas en el rendimiento. Para más información sobre las ventajas, limitaciones y restricciones de DirectQuery, consulte DirectQuery en Power BI.

Ventajas de DirectQuery

Algunas de las ventajas de usar DirectQuery son:

  • DirectQuery permite crear visualizaciones sobre modelos semánticos muy grandes, en los que sería inviable importar todos los datos con agregación previa.

  • Los informes de DirectQuery siempre usan datos actuales. Ver los cambios de datos subyacentes supondría actualizar los datos, y volver a importar grandes modelos semánticos para este fin podría ser inviable.

  • La limitación del modelo semántico a 1 GB no se aplica a DirectQuery.

Conexión mediante DirectQuery

Para conectarse a un origen de datos con DirectQuery:

  1. En el grupo Inicio de la cinta de opciones de Power BI Desktop, seleccione Obtener datos y, luego, elija un origen de datos compatible con DirectQuery, como SQL Server.

  2. En el cuadro de diálogo de la conexión, en Modo de conectividad de datos, seleccione DirectQuery.

Import and DirectQuery options, SQL Server Database dialog, Power BI Desktop

Publicación en el servicio Power BI

Puede publicar informes de DirectQuery en el servicio Power BI, pero debe realizar pasos adicionales para que el servicio Power BI abra los informes.

  • Para conectar el servicio Power BI a otros orígenes de datos de DirectQuery que no sean Azure SQL Database, Azure Synapse Analytics (anteriormente SQL Data Warehouse), Amazon Redshift y Snowflake Data Warehouse, instale una puerta de enlace de datos local y registre el origen de datos.

  • Si ha usado DirectQuery con orígenes en la nube como Azure SQL Database, Azure Synapse, Amazon Redshift o Snowflake Data Warehouse, no necesita una puerta de enlace de datos local. Aun así, debe proporcionar credenciales para que el servicio Power BI abra el informe publicado. Sin credenciales, se producirá un error al intentar abrir un informe publicado o explorar un modelo semántico creado con una conexión de DirectQuery.

Para proporcionar credenciales para abrir el informe y actualizar los datos:

  1. En el servicio Power BI, seleccione el icono de engranaje en la esquina superior derecha y elija Configuración.

    Screenshot of the Power BI service Settings dropdown menu.

  2. En la página Configuración, seleccione la pestaña Modelos semánticos y elija el modelo semántico que usa DirectQuery.

  3. En Conexión de origen de datos, proporcione las credenciales para conectarse al origen de datos.

Nota

Si usó DirectQuery con una instancia de Azure SQL Database que tiene una dirección IP privada, debe usar una puerta de enlace local.

Consideraciones y limitaciones

Algunas características de Power BI Desktop no se admiten en el modo DirectQuery o tienen algunas limitaciones. Algunas funcionalidades del servicio Power BI, como conclusiones rápidas, tampoco están disponibles para modelos semánticos que usan DirectQuery. A la hora de determinar si usar DirectQuery, debe tener en cuenta estas limitaciones de características. Considere también los siguientes factores:

Consideraciones sobre el rendimiento y la carga

DirectQuery envía todas las solicitudes a la base de datos de origen, por lo que el tiempo de actualización necesario para los objetos visuales depende del tiempo que tarda el origen subyacente en devolver resultados. El tiempo de respuesta recomendado para recibir datos solicitados de objetos visuales es de cinco segundos o inferior. Los tiempos de actualización de más de 30 segundos producen una experiencia inaceptablemente deficiente para los usuarios que consumen el informe. Una consulta que tarda más de cuatro minutos agota el tiempo de espera en el servicio Power BI y el usuario recibe un error.

La carga en la base de datos de origen también depende del número de usuarios de Power BI que consumen el informe publicado, especialmente si el informe usa seguridad de nivel de fila (RLS). La actualización de un icono de panel que no es RLS compartido por varios usuarios envía una sola consulta a la base de datos, pero la actualización de un icono de panel que usa RLS requiere una consulta por usuario. El aumento de las consultas aumenta considerablemente la carga y puede afectar al rendimiento.

Límite de un millón de filas

DirectQuery define un límite de una millón de filas para los datos devueltos desde orígenes de datos en la nube, que son orígenes de datos que no son locales. Los orígenes locales se limitan a una carga definida de unos 4 MB por fila, según el algoritmo de compresión propietario, o de 16 MB para todo el objeto visual. Las capacidades Premium pueden establecer diferentes límites máximos de filas, como se describe en la entrada de blog Nueva configuración de capacidad de Power BI Premium.

Power BI crea consultas lo más eficaces posible, pero algunas de las consultas generadas podrían recuperar demasiadas filas del origen de datos subyacente. Por ejemplo, esta situación puede producirse con un gráfico simple que incluye una columna de cardinalidad alta, con la opción de agregación establecida en No resumir. El objeto visual solo ha de tener columnas de cardinalidad inferior a un millón o se deben aplicar los filtros adecuados.

El límite de filas no se aplica a agregaciones o cálculos usados para seleccionar el modelo semántico que devuelve DirectQuery, sino solo a las filas devueltas. Por ejemplo, la consulta que se ejecuta en el origen de datos puede agregar 10 millones de filas. Siempre y cuando los datos devueltos a Power BI sean inferiores a 1 millón de filas, la consulta puede devolver con precisión los resultados. Si los datos son de más de 1 millón de filas, Power BI muestra un error, excepto en la capacidad Premium con distintos límites establecidos por el administrador. El error dice El conjunto de resultados de una consulta a un origen de datos externos superó el tamaño máximo permitido de '1 000 000' filas.

Consideraciones sobre la seguridad

De forma predeterminada, todos los usuarios que consumen un informe publicado en el servicio Power BI se conectan al origen de datos subyacente con las credenciales indicadas después de la publicación. Esta situación es la misma que para los datos importados. Todos los usuarios ven los mismos datos, independientemente de las reglas de seguridad que defina el origen subyacente.

Si necesita implementar la seguridad por usuario con orígenes de DirectQuery, use RLS o configure la autenticación restringida de Kerberos para el origen. Kerberos no está disponible para todos los orígenes. Para más información, consulte Seguridad de nivel de fila (RLS) con Power BI y Configuración del SSO basado en Kerberos desde el servicio Power BI a los orígenes de datos locales.

Otras limitaciones de DirectQuery

Algunas otras limitaciones del uso de DirectQuery son las siguientes:

  • Si la consulta del Editor de Power Query es demasiado compleja, se produce un error. Para corregir el error, debe eliminar el paso problemático en el Editor de Power Query o cambiar al modo de importación. Los orígenes multidimensionales como SAP BW no pueden usar el Editor de Power Query.

  • La jerarquía de fecha y hora automáticas no está disponible en DirectQuery. El modo DirectQuery no admite la obtención de detalles de columnas de fecha por año, trimestre, mes o día.

  • Para las visualizaciones de tabla o matriz, hay un límite de 125 columnas para los resultados que devuelven más de 500 filas de orígenes de DirectQuery. Estos resultados muestran una barra de desplazamiento en la tabla o matriz que permite capturar más datos. En esa situación, el número máximo de columnas de la tabla o matriz es 125. Si debe incluir más de 125 columnas en una sola tabla o matriz, considere la posibilidad de crear medidas que usen MIN, MAX, FIRST o LAST, ya que no cuentan para este valor máximo.

  • No se puede cambiar del modo de importación al modo DirectQuery. Puede cambiar del modo DirectQuery al modo de importación si importa todos los datos necesarios. Sin embargo, no podrá volver a cambiar, principalmente debido al conjunto de características que no admite DirectQuery. Los modelos de DirectQuery en orígenes multidimensionales, como SAP BW, tampoco se pueden cambiar del modo DirectQuery al de importación, debido al tratamiento distinto de las medidas externas.

  • Las tablas y las columnas calculadas que hacen referencia a una tabla de DirectQuery desde un origen de datos con autenticación de inicio de sesión único (SSO) no son compatibles con el servicio Power BI.