Lección 14 de 16 · Nivel 4: Experto
Importar o DirectQuery, gateway y actualización programada en Power BI
- ⏱ 11 min de lectura
- ❓ 3 preguntas de repaso
- ✍️ Ejercicio con solución
En esta lección
- Conectar Power BI a una base de datos SQL y elegir entre Importar y DirectQuery.
- Aprovechar el plegado de consultas para que el trabajo lo haga la base de datos.
- Configurar la puerta de enlace (gateway) y la actualización programada.
- Entender la actualización incremental para tablas con millones de filas.
Hasta ahora, Distribuidora Andina vivía en un archivo de Excel. En una empresa real, los datos están en un sistema de ventas, un ERP o una base de datos como SQL Server, PostgreSQL o MySQL, y los informes deben actualizarse solos cada mañana. En esta lección aprenderás a conectar Power BI a esas fuentes y a mantener los datos al día sin tocar nada, que es lo que diferencia un informe de un sistema de información.
Conectar a una base de datos
- Inicio › Obtener datos y elige el conector de tu base (por ejemplo, Base de datos de SQL Server).
- Escribe el servidor y, opcionalmente, la base de datos.
- Elige el modo de conectividad: Importar o DirectQuery (lo verás enseguida).
- Inicia sesión con las credenciales que te dé el área de sistemas. Pide un usuario de solo lectura: un informe nunca necesita modificar datos.
- En el navegador, marca las tablas o vistas que necesitas y pulsa Transformar datos para limpiarlas en Power Query, como en la lección 2.
¿Tablas, vistas o una consulta SQL?
Puedes escribir tu propia consulta en Opciones avanzadas › Instrucción SQL:
SELECT v.NumPedido, v.Fecha, v.IdCliente, v.IdProducto, v.IdVendedor,
v.Cantidad, v.PrecioUnitario
FROM dbo.Ventas AS v
WHERE v.Fecha >= '2025-01-01';
Funciona, pero tiene un costo: los pasos que agregues después en Power Query suelen dejar de "plegarse" (ahora verás qué significa). La práctica recomendada es pedir al equipo de datos una vista con esa consulta y conectarte a ella como si fuera una tabla. Si sabes SQL, el curso de Python incluye una lección con lo esencial.
Importar o DirectQuery
| Importar | DirectQuery | |
|---|---|---|
| Dónde están los datos | Se copian y comprimen dentro del modelo de Power BI | Se quedan en la base; cada visual envía una consulta |
| Velocidad | Muy rápida | Depende de la base y de la red; normalmente más lenta |
| Actualidad de los datos | La de la última actualización programada | Casi en tiempo real |
| Tamaño | Limitado por la capacidad de tu licencia | Sin copiar datos: sirve para volúmenes enormes |
| DAX y Power Query | Todo disponible | Algunas funciones y transformaciones tienen limitaciones |
| Carga sobre la base de datos | Solo durante la actualización | Constante, con cada usuario y cada clic |
Regla práctica: usa Importar salvo que tengas una razón clara para DirectQuery, como datos que deben verse al minuto (un tablero de operaciones) o tablas tan grandes que no caben en el modelo. También existen los modelos compuestos, que combinan ambos: la tabla de hechos gigante en DirectQuery y las dimensiones importadas. Y en las organizaciones que usan Microsoft Fabric aparece un tercer modo, Direct Lake, que lee directamente los archivos del lago de datos.
1. Un informe de ventas mensuales para la gerencia, que se consulta cada mañana, ¿qué modo debería usar?
Para un análisis que no necesita el dato del último minuto, Importar es más rápido, admite todo DAX y no carga la base de datos durante el día.
El plegado de consultas (query folding)
Cuando aplicas pasos en Power Query (filtrar filas, quitar columnas, agrupar) sobre una base de datos, Power Query intenta traducirlos a SQL para que los ejecute la base de datos y solo viaje el resultado. Eso es el plegado. Si un paso no se puede traducir, ese paso y todos los siguientes se ejecutan en Power BI, después de descargar los datos: mucho más lento.
- Para comprobarlo, haz clic derecho sobre un paso: si la opción Ver consulta nativa está activa, el paso se pliega.
- Pon primero los pasos que reducen datos (filtrar fechas, quitar columnas) y al final los que pueden romper el plegado (algunas columnas personalizadas complejas, combinar con un Excel).
2. ¿Por qué conviene que el filtro de fechas sea uno de los primeros pasos en Power Query?
Un filtro plegado se convierte en un WHERE en SQL. Si el plegado se rompe antes, Power BI descarga toda la tabla y filtra después.
La puerta de enlace (gateway)
Cuando publicas el informe (lección 10), el servicio Power BI vive en la nube. Si tus datos están en un servidor de la oficina o en un archivo de una computadora, la nube no puede llegar a ellos sola. La puerta de enlace de datos local (on-premises data gateway) es un programa que instalas en un equipo de la red de la empresa y que hace de puente seguro.
| Fuente | ¿Necesita gateway? |
|---|---|
| SQL Server en un servidor de la oficina | Sí |
| Excel o CSV en una carpeta de una PC o del servidor | Sí |
| Excel en OneDrive o SharePoint en línea | No |
| Bases en la nube (Azure SQL y otras) | Normalmente no |
- Modo estándar: lo instala el área de sistemas en un servidor siempre encendido y lo comparten varios usuarios. Es la opción para producción.
- Modo personal: lo instala un usuario en su propia PC, solo para sus informes. Si apaga la computadora, la actualización falla.
Si tus datos son archivos de Excel, guárdalos en OneDrive o en SharePoint de la empresa y conéctate con el conector de Carpeta de SharePoint o de web. Así no necesitas gateway y la actualización programada funciona aunque tu PC esté apagada.
Actualización programada
En el servicio Power BI, abre la configuración del modelo semántico publicado:
- En Credenciales del origen de datos, ingresa usuario y contraseña (y elige la puerta de enlace si corresponde).
- En Actualización programada, actívala, elige la zona horaria y los horarios. Con una licencia Pro se pueden programar hasta 8 actualizaciones al día; las capacidades Premium y Fabric permiten más.
- Activa el aviso por correo cuando la actualización falle y agrega a un responsable.
Programa la actualización después de que se cierre la carga de datos del sistema de origen (por ejemplo, a las 6:30 si el ERP termina su proceso nocturno a las 5:00) y muestra en el informe la fecha de la última actualización, para que nadie tome decisiones con datos viejos sin saberlo.
Actualización incremental
Si Ventas tiene 50 millones de filas, recargarla completa cada día es lento e innecesario: las ventas de hace tres años no cambian. La actualización incremental divide la tabla por fechas y solo recarga el periodo reciente. Se configura así:
- En Power Query, crea dos parámetros de tipo fecha/hora llamados exactamente
RangeStartyRangeEnd. - Filtra la columna de fecha de Ventas: mayor o igual que
RangeStarty menor queRangeEnd(el filtro debe plegarse a la base). - En Power BI Desktop, clic derecho en la tabla › Actualización incremental: por ejemplo, archivar 5 años y actualizar solo los últimos 10 días.
- Publica. A partir de ahí, cada actualización solo procesa los días recientes.
3. Tu informe usa un Excel guardado en el escritorio de tu PC y la actualización programada falla por las noches. ¿Cuál es la solución más sencilla?
Desde OneDrive o SharePoint el servicio Power BI accede al archivo directamente, sin gateway y sin depender de tu computadora.
Ejercicio práctico: diseña la arquitectura de datos de Andina
Distribuidora Andina migró sus ventas a un SQL Server en su oficina de Lima (20 millones de filas desde 2019). Productos y clientes siguen en un Excel que mantiene el área comercial. La gerencia quiere ver el panel actualizado a las 8:00 de cada día laborable, y el jefe de almacén necesita ver los despachos del día casi en tiempo real.
- ¿Qué modo de conexión usarías para cada necesidad?
- ¿Dónde debería estar el Excel y hace falta gateway?
- ¿Cómo configurarías la actualización?
Ver una solución
Panel de gerencia
- Ventas desde una VISTA en SQL Server, modo Importar.
- Actualización incremental: archivar 7 años, actualizar los últimos 7 días.
- Gateway en modo estándar en un servidor de la oficina (lo instala sistemas).
- Excel de productos y clientes en SharePoint (sin gateway para esa fuente).
- Actualización programada a las 7:00 de lunes a sábado, con aviso de error
al analista responsable. La tarjeta "Datos al: dd/mm hh:mm" en la portada.
Tablero del almacén
- Informe separado en DirectQuery sobre la tabla de despachos del día,
con pocos visuales y filtrado a la fecha actual para no cargar la base.
- Usuario de base de datos de solo lectura para ambos informes.
No hay una sola respuesta correcta: lo importante es justificar cada decisión por la necesidad (frescura, volumen, rendimiento) y no usar DirectQuery "por si acaso".
Resumen
- Conéctate a bases de datos con un usuario de solo lectura, idealmente a vistas preparadas.
- Importar es la opción por defecto; DirectQuery, para tiempo casi real o volúmenes enormes.
- Ordena los pasos de Power Query para que se plieguen a la base de datos.
- Fuentes locales necesitan gateway; OneDrive, SharePoint y muchas fuentes en la nube, no.
- Programa la actualización tras la carga del sistema origen, con alertas, y usa actualización incremental para tablas grandes.
En la próxima lección harás análisis avanzados que encantan a las gerencias comerciales: clasificación ABC de productos con Pareto y segmentación de clientes con el modelo RFM, todo en DAX.
Crea tu cuenta en 30 segundos, marca tus lecciones y descarga el certificado al terminar.