Azure DevOps para tus desarrollos en Power BI (VI). Pipeline para descomprimir el report
¡Seguimos con esta serie de artículos! En ellos pretendemos que te introduzcas en el mundo de Azure DevOps, que será nuestro principal aliado en esta aventura. La semana pasada dejamos listos todos los permisos que necesitábamos para que nuestras pipelines funcionaran sin problema. Esta semana empezamos a ver las pipelines que automatizaran nuestro proceso. Empezamos con la que nos va a permitir descomprimir el thin report para obtener una estructura más organizada.
Como son varios temas y no queremos dejarte sin aliento, hemos preferido separarlos en artículos independientes. Nuestra intención es entregarte uno nuevo cada semana (o cada vez que podamos).
3. Herramientas que vamos a usar
4. Qué podemos encontrar en Azure DevOps
5. Qué necesito para que esto funcione
6. Pipeline para descomprimir el report ← ESTAMOS AQUÍ
7. Pipeline para las buenas prácticas del report
8. Pipeline de despliegue del report
9. Pipeline de buenas prácticas del modelo semántico
10. Pipeline de despliegue del modelo semántico
Esta serie de artículos los hemos escrito conjuntamente Adrià Belmonte y una servidora y son la fusión de juntar un arquitecto cloud con una ingeniera de datos.
¡Cualquier duda o propuesta de mejora no dudes en dejárnoslo en comentarios!
¡¡Seguimos!!
Pipelines
Las pipelines nos permite realizar distintas acciones de forma automatizada a través de una serie de tasks o jobs.
Por si llegas de nuevas te recomendamos que pases antes por aquí para que veas con un poco más de detalle que son las pipelines de Azure DevOps.
Como crear una pipeline
Para poder empezar con nuestras pipeline deberemos tener un repositorio.
Lo mismo, por si llegas de nuevas te recomendamos que pases antes por aquí para que veas con un poco más de detalle que elementos necesitamos en Azure DevOps.
Una vez tengamos el repositorio creado, ya podremos crear nuestra pipeline. El procedimiento es bastante sencillo.
- Accederemos a nuestro proyecto dentro del Azure DevOps.
- Seleccionaremos la opción de Pipelines y New Pipeline.
3. En la pestaña que nos abrirá seleccionaremos la primera opción, Azure Repos Git.
4. En el siguiente punto, nos pedirá seleccionar nuestro repositorio que previamente habremos creado. Nosotros hemos alojado las pipelines relacionadas con el report en nuestro repositorio de report y las del dataset en el del dataset.
5. En el penúltimo paso, nos pedirá si queremos crear la pipeline desde 0 o utilizar una existente en el repositorio seleccionado. En nuestro caso, seleccionaremos la primera opción.
6. Por último, tendremos que eliminar el código que nos viene por defecto y pegar nuestra pipeline. Después, solo nos quedará guardarla con la opción Save.
¡Y ya tendremos creado el hueco donde irá nuestra primera pipeline! Sencillo, ¿no?
Vayamos a ver que hace en detalle y como automatiza paso a paso su función.
Veamos la pipeline en detalle
El código entero de la pipeline lo podréis encontrar en GitHub. Te recomendamos que antes de ir a copiarlo y pegarlo te tomes unos minutos para entender bien que hace cada parte.
El funcionamiento de ci-pipelines-unzip a alto nivel es el siguiente:
- Instalaremos las herramientas necesarias.
- Descomprimiremos el PBIX con el thin report (pbix con una live connection) en archivos JSON.
- Configuraremos parámetros GIT en el pipeline para poder subir los archivos descomprimidos.
- Subiremos los archivos descomprimidos en la rama actual
Explicado el funcionamiento a nivel, vamos a ver paso a paso como se realizan todas esas acciones.
- Configuramos la pipeline para que se ejecute de forma automática con cualquier commit siempre que no sea en la rama principal (main).
- En el segundo bloque definimos un parámetro que nos limpiará el directorio donde disponemos de los archivos descomprimidos. Si ejecutamos la pipeline de forma manual nos aparecerá una casilla de check para cambiar este valor si lo quisiéramos.
- En el tercer bloque definimos las variables que utilizaremos en las tasks. El directorio donde queremos que nos guarde los archivos, el nombre de nuestro pbix, de donde tiene que descargarse pbi-tools,…
- Utilizaremos los agentes públicos. Se trata de instancias dedicadas para el servicio de Azure DevOps y en este caso son gestionadas por Microsoft. Serán los encargados de ejecutar nuestras pipelines.
- Configuraremos la pipeline para utilizar el directorio actual y limpiar el entorno.
- La primera task de nuestra pipeline. Aquí configuramos GIT para que en un siguiente paso podamos subir los archivos descomprimidos.
¡Seguimos con más código de nuestra pipeline!
- Instalaremos la herramienta pbi-tools, la encargada de descomprimir nuestro PBIX.
- Instalaremos Power BI. Esta instalación es necesaria para poder utilizar PBI-Tools.
- Procederemos a descomprimir nuestro PBIX en un directorio temporal.
- Subiremos los archivos descomprimidos como Artifact dentro de la pipeline. Esto nos permitirá poder descargarnos estos archivos como un zip.
¡La cosa se empieza a poner interesante!
- Procedemos a limpiar el directorio donde disponemos de los archivos originales descomprimidos de nuestro PBIX.
- Copiamos los archivos descomprimidos en la task anterior a la carpeta de nuestro proyecto.
¡Llegamos a la última parte!
- Se encargará de subir nuestros archivos descomprimidos en nuestra rama actual, donde estaremos trabajando.
Este código está pensando para la demo de los PBI Days de Málaga. En entornos productivos recomendamos optimizarlo y adaptarlo al contexto corporativo.
Ya tenemos la pipeline explicada, como podéis observar tiene un funcionamiento sencillo y su única misión es la descompresión del PBIX en los archivos JSON y subir estos archivos en la rama actual donde estamos trabajando. Aquí tenéis una imagen de como se vería esta estructura y un cambio de posición en un objeto.
En próximos capítulos…
En el siguiente artículo, profundizaremos en la pipeline de buenas prácticas para el report, donde podréis observar que todas las pipelines utilizadas tienen una estructura y funcionamiento similar.
Para animaros a seguir leyéndonos os dejamos un trocito (el mejor) de nuestra sesión en los PBIDays de Málaga.
¡Gracias Cristina por dejarnos este recuerdo! Y como no, a la organización y sponsors, que sin ellos este tipo de eventos no sería posible
Referencias y enlaces de interés
Cree su primera canalización — Azure Pipelines | Microsoft Learn