¡Jueves de post! Hace ya un par de semanas lancé mi segunda
encuesta en LinkedIn para ver qué temas os gustaría que fuesen los siguientes.
Bien, pues el resultado ha sido el siguiente:

 
 



El ganador ha sido “Datamart:
Caso práctico de uso
”. Pues bien, como os podéis imaginar el post de hoy
trata sobre la nueva versión de Power BI… que no, tocan los datamart J.



Lo primero que nos preguntamos, ¿qué es un datamart? Un datamart
es una versión específica del almacén de datos centrados (DWH) en un área de
negocio de una empresa u organización. Son subconjuntos de datos con el
propósito de ayudar a que un área específica del negocio pueda auto servirse de
datos y la consiguiente mejora en la toma de decisiones.



Ahora me diréis “Javi, creo que los datamart no son para
mí, no trabajo en una gran empresa, trabajo con Power BI para hacer mis
informes y además no tengo grandes conocimientos de BDD”. Bien, sigue leyendo,
ya que con Power BI Datamart tienes la capa de ETL con los dataflows, el
almacenamiento de los datos con Azure SQL Database, el clásico dataset y el
informe. Todo con la misma interfaz de usuario en el servicio de Power BI. ¿Aún
sigues pensando que no es para ti? Quédate hasta el final y veremos J



Vamos a suponer que estamos en la situación anterior, y
somos nosotros y Power BI contra el mundo y el departamento de IT nos da acceso
una base de datos, pero sólo acceso de lectura (estos de IT que desconfiados
que son con nosotros…) y no podemos crearnos nuestras tablas haciendo nuestros
joins, ni nuestras vistas… ¿Qué hacemos en ese caso? Pues nos vamos al servicio
de Power BI y nos vamos a crearnos nuestro datamart.



Para ello, vamos al servicio de Power BI y nos creamos un
área de trabajo:

 



En la parte derecha de la pantalla, se nos ha abierto
rellenamos el nombre del área de trabajo, cargamos una foto si queremos y le
damos avanzado:



 
 

Y
bajamos el scroll hasta el punto donde seleccionamos el tipo de licencia a
usar, que como sabéis, los datamart de momentos estan disponibles para PPU en
adelante.

 
 

A continuación, le damos a guardar y se nos creará el área
de trabajo. Para comprobar que el área es PPU, basta con mirar el nombre del
área de trabajo y observar que tiene un diamante como el siguiente: 

 
 
Bien, ahora vamos a empezar a crear el datamart, para ello,
hacemos click sobre Nuevo à
Datamart 
 
 


Una vez hecho click sobre la opción Datamart, se nos creará
el espacio, pero tardará unos cuantos segundos (entre 10 y 20 segundos). Una
vez transcurrido ese tiempo, se nos quedará la siguiente pantalla:

 
 
 


De momento tenemos todo en blanco ya que aún no hemos
añadido datos, pero algo que ya me está gustando es la parte de la izquierda
donde indica:



* Tables

* Queries



Ahora necesitamos subir los datos al datamart para poder
hacer nuestro modelo y posterior informe, para ello hacemos click sobre obtener
datos:

 
 

 Y se nos abre…. ¡Power Query y sus muchos conectores! 


 
 



Aquí,
os recomiendo como buena práctica, crear parámetros de consulta para conectarnos
a los orígenes de los datos. Por varios motivos:



  1. En caso de actualización es mucho más rápido.
  2. Está todo mucho más estructurado en Power Query.
  3. En caso de reutilización, no tenemos que volver a
    escribirlo.


Para ello, seleccionamos el conector de Consulta en blanco
y en la ventana que se nos ha desplegado, le damos a siguiente:

 
 Y se nos abre nuestra ventana de Power Query Online:

 


Ahora hacemos click sobre la parte de consultas y
seleccionamos Nuevo Parámetro:

 
 
 



Y en la pantalla que se nos ha abierto, rellenamos los
campos de Nombre con el nombre que queremos darle al parámetro y el Valor
actual, con el nombre del servidor:



 
 Hacemos lo mismo para la base de datos y obtenemos lo
siguiente:
 
 
 


A modo recomendación, a mí me gusta tener el panel de las
consultas ordenado y para ello agrupo los elementos del mismo tipo dentro de
carpetas. Para ello creamos grupos de carpeta para las bases de datos como para
los servidores y arrastramos los parámetros a dichas carpetas tal que así:

 

 
 

La consulta en blanco creada para acceder a Power Query
Online la podemos eliminar. Y el resultado final es:

 
 


Nota: Como podéis observar el texto tanto del parámetro de
la base de datos como el del servidor están en cursiva, eso significa que no se
va a cargar al modelo.





Bien, vamos a proceder ahora a cargar los datos de nuestro servidor al
datamart, para ello seleccionamos Obtener Datos. Como nuestra base de datos es
en SQL Server, pulsamos sobre el conector de Base de datos de SQL Server y se
nos abre la ventana de configuración de la conexión, muy similar a la que se
nos abre en Power BI Desktop.  En esta ventana,
es muy similar a la de Power BI Desktop como podéis ver, con la salvedad de la
puerta de enlace.



Si no hubiésemos rellenados los parámetros anteriores, la
ventana que se nos abriría es la siguiente y por tanto habría que rellenar a
mano los campos de servidor y os recomiendo el de la base de datos.







 
 


En cambio, como hemos creado los parámetros, la pantalla
que se nos abre es la siguiente:

 
 
 

Y podemos ver dos lápices, que nos permite seleccionar los
parámetros creados:




 
 


Una vez rellenados los campos de servidor y base de datos, y
el conector que hemos elegido, admite consultas nativas a la base de datos y si
tenemos conocimientos para ejecutar las consultas, os recomiendo desplegar las
Opciones Avanzadas e introducir la sentencia SQL para traernos únicamente los
datos que necesitamos para el modelo y no todos, es decir, hacer que las transformaciones
se hagan en origen y no en destino. Os dejo aquí el enlace de los conectores que
admiten consultas nativas de base de datos (https://learn.microsoft.com/es-es/power-query/native-database-query#connectors-that-support-native-database-queries)



A modo de ejemplo, para la tabla de Categoría de Productos
de la base de datos de Contoso (ProductCategory), solamente vamos a incorporar
al datamart las subcategorías cuya etiqueta son 01, 02 y 03:

 

 
 



Ahora, necesitamos que seleccionar la puerta de enlace a
los datos necesaria para conectarnos a los datos. Podría entrar a cómo hay que
instalarla, pero creo que no es el alcance de este post por lo que os dejo el
link de Microsoft en el que lo explica: (https://learn.microsoft.com/es-es/power-bi/connect-data/service-gateway-deployment-guidance



Pero si tenéis cualquier duda, me comentáis sin problemas
que para eso estoy.

Si, por el contrario, no sabemos de SQL no os preocupéis ya
que no es necesario ya que podemos mantener el Query Folding o Plegado de
consultas en Power Query. En este caso, dejamos en blanco la parte de la
instrucción en SQL y le damos Aceptar. Y cómo podemos ver se nos abre la
ventana para elegir las tablas o vistas que queremos para crear nuestro
datamart al igual que en Power BI Desktop:

 

 
 


Una vez seleccionados nuestras tablas/vistas, pulsamos sobre
Transformar Datos y ¡tachan! Vemos nuestros datos cargados en Power Query
Online.

 
 
 


Y ahora podemos empezar hacer nuestro proceso de
transformación de los datos y hacer magia. J



Por ejemplo, seleccionamos nuestra tabla Channel y vamos a
proceder a eliminar columnas ETLLoadID, LoadDate y UpdateDate, para ello vamos
a la opción Elegir Columnas y seleccionamos las columnas con las que queremos
quedarnos:

 
 
 
 


Y nos ha eliminado las columnas que no necesitábamos como
podéis ver:

 
 
 
 


Ahora podemos… ¡Ey! ¿No veis nada raro? Os hago zoom sobre
la parte de la ventana los pasos de la consulta:

 
 
 
 

¿Qué significa esa línea roja? Que hemos roto el plegado de
consultas y eso es algo que nos pasará en algún momento, pero debemos romperlo
lo más tarde posible. ¿Cómo lo podemos evitar? Con la función Value.NativeQuery
y así podremos mantener activo el plegado de consultas para los pasos
posteriores de la consulta. (Os dejo aquí el link a la referencia de la función
https://learn.microsoft.com/es-es/powerquery-m/value-nativequery)



Para ello, vamos al editor avanzado y modificamos el código que
nos ha generado de manera automática por el siguiente código:

 

 
 
 

Como dice la página oficial de Microsoft: El componente más importante de esta fórmula
es el uso del registro opcional para el parámetro forth de la función que tiene
el campo de registro EnableFolding establecido en true.



Ahora, vamos a realizar el paso de selección de las columnas
que necesitamos y damos a Aceptar:

 
 



Y magia:

 




¡Es el mismo paso, pero mantenemos el plegado!



Y antes de terminar esta primera entrada sobre Datamart:
caso práctico de uso, voy con otra buena práctica. Que es renombrar las
columnas y los comentar los pasos de la consulta. Para ello, hay dos maneras:



Sobre el paso botón derecho y propiedades:

 
 



Y en la ventana que se nos ha abierto, podemos rellenar los
campos de Nombre y Descripción:



 

 
 



O en el Editor Avanzado, con la // podemos escribir los
comentarios referentes a los pasos que damos:




 
 


Y como podemos ver, se nos habilita una i en los pasos de
las consultas que si nos posicionamos sobre la misma se nos despliega el
siguiente tooltip con la información::

 

 
 

 






 



 



Y hasta aquí la primera parte de la serie relativa a los Datamart:
Caso práctico de uso, que si no me pongo a escribir y no paro. :)






¡Nos vemos en los datos!