En Power BI existen 4 formas de actualizar la data de los dataset:
- A demanda, dando clic en actualizar ahora
- Programado, 8 actualizaciones para PRO y 48 para Premium
- XMLA, aplica solo para Premium
- utilizando la Power BI API
Esta vez veremos cómo utilizar la API de Power BI para romper esa barrera de 8 actualizaciones diarias en PRO. No enfatizo en Premium ya que este esquema de licenciamiento tiene XMLA, un método que me permitirá incluso procesar particiones y tablas especificas en tiempos dispares.
Bien, para empezar acá les dejo la documentación oficial de la API y una url para probar la actualización por API.
Lo primero que debemos hacer instalar el Power BI Cmdlets ejecutando las siguientes lineas en Powershell. Si ya lo habías instalado, no es necesario hacerlo nuevamente.
Si tienes alguna duda sobre el cmdlet de Power BI ☝️, te recomiendo leas el siguiente articulo 👇
A continuación el código que debemos ejecutar para refrescar, y las variables que debemos alterar son:
$User: Usuario administrador y propietario del dataset
$Pass: Contraseña del usuario administrador y propietario del dataset
$workspace: Espacio de trabajo que hospeda el dataset
$dataset: Nombre del dataset a refrescar
Con este código, configurado con los parámetros correctos, puede ser llamado desde un Job de SQL Server, con un agendamiento que cumpla nuestra necesidad, o como un paso siguiente a la carga de datos al datawarehouse. La utilización de tareas de Windows también es una opción apetecible.
Pero si realmente necesitamos hacer actualizaciones a más de un dataset, quizá el código anterior no sea la forma ideal que nos disminuya tareas de administración, pero alterándola un poco podremos lograrlo.
Lo que debemos hacer es implementar parámetros obligatorios para recibir el workspace y el dataset, así:
De esta manera podremos tener un único archivo para cualquier dataset en cualquier workspace de nuestro tenant, así solo debemos modificar este archivo en caso de necesitar algún cambio por actualizaciones en la API de Power BI o en nuestras credenciales.
En la siguiente captura les muestro como ejecutar el PS1 con parámetros usando el Job Agent de SQL Server
Saludos 💪