[SimplePBI] Importar archivo de PowerBi de Github o Azure DevOps
Cada día aparece más y más métodos que ayudan a generar flujos de trabajo para los desarrollos analíticos que nos ayuden a versionar las soluciones. Muy a la par aparece el tema de deploys automáticos.
Seguramente leyendo por internet encontraremos muchos artículos que informan que solo es posible implementar PowerBi entre ambientes con Deployment Pipelines o usando Pipelines de Azure DevOps y seguramente pronto aparecerán con Github actions. Me gusta diferir pensando que podemos nosotros armar nuestros flujos con nuestro propio código.
En este artículo veremos como importar un archivo.pbix de un repositorio en Power Bi Service.
Todos los días son más y más los proyectos y empresas que comienzan a entender la importancia de versionado. Lo que lleva a la necesidad de trabajar nuestras soluciones con repositorios. Por la naturaleza de la tecnología Microsoft seguramente el 90% de los involucrados utilizan Azure DevOps o Github.
Cada una de las herramientas no solo tiene repositorio versionado, sino también otras herramientas para ayudarnos con flujos automáticos. La realidad es que esos flujos no son simples de entender ni construir. Me he encontrado con personas abrumadas y desanimadas por la compleja tarea de usarlos para implementar soluciones CI/CD. Esta clarísimo que por algo existen los Roles de DevOps.
Pensando en que hoy existe una gran versatilidad en como usar la tecnología es que LaDataWeb implementó en el desarrollo de la librería de Python para usar la PowerBi Rest API (SimplePBI), la posibilidad de importar archivos.pbix de nuestros repositorios directo a un área de trabajo de Power Bi.
No será el flujo más perfecto y robusto para enormes soluciones analíticas, pero si uno simple para mantener simple un deploy automático de pequeñas soluciones. Con pocas líneas de python podríamos tener un script que se encargue de implementar automáticamente estos archivos en Áreas de Trabajo. Esto podría fácilmente ser implementado en algún servicio cloud que permita ejecutar código como Azure Automation Runbooks, Azure Functions, AWS Lambdas o inclusive podría estar dentro de los pipelines o github actions antes mencionadas.
Azure DevOps
Para poder obtener acceso a nuestros archivos de repositorio por código, necesitamos crear un "Personal Access Token". La creación es tan simple como la siguiente imagen:
La pantalla de creación basta con delimitar un nombre, fecha de expiración (un año máximo) y el permiso al código como se ve en la imagen:
Luego de crear nos muestra la clave.
NOTA: copien la clave en ese momento porque luego no podremos volver a verla de nuevo.
Ahora si contamos con la clave de acceso para hacer el import de nuestro .pbix. Por ejemplo, yo tengo un archivo en mi repositorio con la siguiente dirección:
Para importarlo vamos a ejecutar sl siguiente código que autentica a la PowerBi Rest API como hacemos en otros posts y tiene valores adicionales para conectarnos a DevOps
Código aqui.
Fíjense como la imagen de la dirección que les mostré tiene lo que necesitamos. Organización es el primer valor de la dirección que vemos en DevOps, luego sigue el nombre de proyecto. A la derecha en con ícono rojo se ve el nombre del repositorio (en este caso coincide con el proyecto). La dirección o path la veíamos bajo una sola carpeta "Blogging". Autenticamos con la clave que creamos hace un momento. Finalmente, delimitamos en que área de trabajo de service queremos guardarlo. Veamos un simple gif del deploy en acción:
Github
Al igual que antes, para poder leer los archivos de nuestro repositorio, es necesario crear un token de autenticación. Lo primero es ir al ícono de nuestro perfil y abrir la configuración. Luego buscaremos configuración de desarrollador "developer settings". Ahi encontraremos las Personal Access Token:
Aquí vamos a generar una Token (classic) con permisos al repositorio como hicimos antes. Veamos como es la dirección y valores de nuestro archivo en el repo de github:
Nuestro código:
Código aqui.
Ahora tenemos otros valores aunque parecidos. El Owner del repositorio, el nombre y la dirección. Eso acompañado de la clave que generamos en un principio. Veamoslo en acción:
Así llegamos al final de nuestro artículo mostrando como un simple código puede importar archivos de powerbi desktop a service. El flujo queda en nuestra creatividad. Por ejemplo, podrían ser azure functions corriendo una vez a la semana por cada carpeta del repositorio, pensando una carpeta por area de trabajo. De esa forma tendríamos deploy continuos de una carpeta como si fuera un área de trabajo. ¡La creatividad es el límite! sobre todo para quienes solo usen licencias PRO.
Muchos sitios y blogs contienen una gran opción para estar al día con lo que sucede en su red. La nuestra se lo debía a la comunidad y hoy se cumple esa feature.
Nos emociona mucho contarles que en el lanzamiento de mejoras estéticas de sitio web hemos incluido una nueva opción, una para "Suscribirse" a LaDataWeb.
Lee más para conocer como hacerlo y que incluye.
Suscripción
Nuestra suscripción no es un login sino más bien un newsletter mensual. Una oportunidad para estar al día con los lanzamientos de la comunidad de LaDataWeb y, tal vez en un futuro, la comunidad en español.
¿Como suscribirse?
Si estas navegando nuestro Blog, entonces podes encontrar botones más pequeños con flecha o abajo con el texto
El nuevo sitio cuenta con un gran botón arriba a la derecha que te pedirá un correo. Tan simple como eso.
Una vez que nos suscribamos recibiremos un correo de bienvenida para corroborar que todo salió correctamente.
¿Qué encontrare en el newsletter mensual?
Nuestro correo se encargará de transmitir las siguientes novedades:
Últimos dos artículos del blog
Un artículo antiguo random
Release notes de la última actualización de SimplePBI
Descripción del último Storytelling de nuestro sitio
Esperamos que encuentre el correo sencillo y fácil de leer. Si bien el texto general de las secciones y saludos están en ingles, recuerden que nuestro contenido siempre es en español ;)
Existen situaciones que el trabajo manual se hace inminente. Cuando se trata de Power Bi es muy necesario mantener una estrategia de resguardo que consiste en persistir, de algún modo, los archivos “pbix”.
Con ese resguardo podemos garantizar recuperar areas de trabajo eliminadas, recuperación de caos o inclusive migración de tenants o áreas de trabajo para informes de PowerBi.
Éste artículo nos trae un excelente método de la librería SimplePBI de python que usa la Power Bi Rest API para publicar todos los informes “.pbix” de una carpeta local sobre un workspace.
Existen muchos escenarios que podrían solicitar una publicación masiva de archivos de Power Bi. La idea de la librería que usaríamos es facilitar el problema de abrir los archivos de PowerBi Desktop uno por uno clickeando en publicar. Ese trabajo manual puede ser muy engorroso y, para nuestra ventaja, la librería contempla un método que nos ayude.
Vamos a asumir que quien lee esto conoce como “Registrar una App en Azure” para utilizar la Rest API. Sino sabemos hacerlo podemos seguir la primera parte de este artículo: https://blog.ladataweb.com.ar/post/642023841877671936/azuredatafactory-actualizar-powerbi-con
Cómo un pequeño contexto la librería SimplePBi contiene objetos según las categorías de requests que contiene la Rest API de Power Bi. Dentro de esas categorías se han desarrollado métodos adicionales como el de publicación de muchos archivos locales a una área de trabajo. Sería algo así:
Sencillamente bastaría con tener organizado nuestro file systema y Python con SimplePBI instalado. Teniendo esos requerimientos veamos el sencillo código que lo resolvería:
De ese sencillo modo podríamos publicar todos los archivos pbix que tengamos en una delimitada carpeta sobre un área de trabajo con la decisión de crear o reemplazar el archivo pbix en caso que ya exista el informe de Power Bi. Pueden encontrar el código en mi github en caso que quieran copiarlo.
Esta solución aplica de mucho modos. Podemos verla del lado de migración, recuperación de desastres o inclusive podría ser un enfoque clave al para pensar en automatización de Deploy en una estrategia casera de “Continious Deployment (CD)”. Podríamos tener desarrolladores de Power Bi haciendo informes y guardandolos en un file systema. Luego al finalizar el sprint o cada X tiempo se hace un deploy automático cuando todo esté validado.
Ojala les sirva puesto que tiene multiples escenarios posibles. Claro está que si disponen del tiempo para hacerlo podrían construir su propio método de carpetas usando el método simple_import_pbix_in_group que recorra sus carpetas de windows con los parámetros que deseen, pero aumentaría la complejidad de su desarrollo.