Llega el final de esta serie centrada en Power Query, para cerrar hablaremos de los destinos de datos posibles, comentaremos algunos aspectos del lenguaje M, y cerraremos el tema con una comparativa de Power Query con SQL Server Integration Services y algunas conclusiones que se pueden extraer.
Una vez que hemos conseguido las transformaciones necesarias para obtener el modelo analítico que necesitamos, tan sólo nos queda almacenar la información en el destino.
En este caso, Power Query tiene una gran limitación con respecto a las herramientas corporativas y de cara al uso por el departamento de TI: sólo puede almacenar el resultado de las transformaciones en una hoja Excel o en una tabla de Power Pivot del mismo libro en que hemos creado el proceso ETL.
Pero desde el punto de vista del BI Personal, que es el que estamos utilizando, realmente es justo lo que necesitamos. Estamos en un libro Excel, desde el que queremos automatizar una secuencia de pasos que nos permitan, cada vez que la ejecutemos, obtener la información que necesitamos para su análisis. Por tanto, Power Query es una herramienta que cubre perfectamente nuestras necesidades y esta limitación carece de importancia de cara al usuario final, que es a quien va dirigida.
Volviendo al ejemplo que hemos realizado anteriormente, vamos a continuar con los pasos finales:
- Pulsamos el botón y vemos el resultado de una nueva tabla de tiendas que contiene los datos de las tiendas y los datos de su ubicación geográfica (Población, Provincia y Pais) que hemos obtenido de sus correspondientes tablas relacionadas.
También podemos pulsar en la parte inferior derecha de dicho botón y elegir entre una de estas dos opciones:
Si pulsamos ‘Close & Load’ guarda el resultado en una hoja Excel (Excel Worksheet).
Si pulsamos ‘Close & Load To…’ podemos elegir entre diversas opciones. Veamos la pantalla que nos aparece:
- Table: guarda la información en una hoja Excel (Excel Worksheet) formateada como tabla.
- Only Create Connection: crea la conexión, pero no guarda nada en la hoja Excel.
En el caso de seleccionar anteriormente ‘Table’ puede elegir entre:
- New Worksheet: guardar en una nueva hoja.
- Existing worksheet: guardar en una hoja existente, especificando además la celda que quedará como esquina superior izquierda de la tabla.
En la parte inferior aparece un check:
- Add this data to the Data Model: esta es la opción que hace que los resultados se almacenen en Power Pivot (Excel Data Model). Este check es independiente del resto de opciones seleccionadas.
Teniendo en cuenta diversas combinaciones de las opciones anteriores, podemos almacenar la información sólo en una hoja Excel (bien en una existente o una nueva), sólo en Power Pivot, o combinar opciones y almacenar simultáneamente en Excel y Power Pivot.
Nuestra recomendación es que almacene los resultados sólo en Power Pivot y aproveche toda su potencia de cálculo y rapidez de respuesta.
Lenguaje M
Con todo lo estudiado hasta el momento puede considerarse un usuario intermedio-avanzado de Power Query.
El Lenguaje M es un lenguaje orientado a la manipulación de datos, que le permite poder interactuar con Power Query y exprimir toda su potencia.
No es necesario utilizarlo en la mayoría de los casos. Pero, si más adelante desea profundizar más aún en la materia, debe estudiar dicho lenguaje y practicar hasta que domine la creación de expresiones con él, pudiéndolas utilizar tanto en el editor avanzado, como en la barra de fórmulas. Podrá crear consultas parametrizadas, y otra serie de alternativas que no son posibles utilizando solamente las opciones visuales (sin escribir código).
Power Query vs SSIS (SQL Server Integration Services)
Power Query es una herramienta orientada al usuario, mientras que SSIS es una herramienta orientada a desarrolladores y personal de TI.
SSIS tiene una mayor funcionalidad, mayor cantidad de transformaciones y destinos, mayor flexibilidad. Es mucho más escalable, permitiendo un mayor volumen de datos y un aumento periódico de estos mayor. Tiene capacidades de programación en VB.NET y C#. Es una herramienta extensible, el desarrollador puede crear nuevos orígenes, transformaciones y destinos e integrarlos en la herramienta.
Power Query tiene ciertas limitaciones que debe tener en cuenta:
- No permite carga periódica automatizada. La forma de volver a cargar la información es pulsando manualmente el botón “Refresh”.
- No permite hacer cargas incrementales, manteniendo información que ya había sido incorporada, el proceso de refresco (Refresh) hace un borrado total y una recarga completa.
- Aunque tiene una amplia variedad de transformaciones e incluso un lenguaje propio, Lenguaje M, la funcionalidad es más limitada que la de SSIS.
- Como destino sólo podemos tener archivos .xlsx, almacenando bien en hojas Excel tradicionales, bien en Power Pivot.
Si tenemos una herramienta como SSIS, ¿qué sentido tiene crear Power Query?
Básicamente quitar dependencia del usuario del departamento de TI y permitirle obtener datos de forma independiente. Es muy útil tanto para el BI Personal como para el Self-Service BI. Son herramientas muy diferentes orientadas a públicos diferentes. Son herramientas que se complementan, Power Query viene a cubrir un hueco muy demandado por los usuarios de negocio desde hace tiempo, que les permite obtener datos y convertirlos en información por ellos mismos.
Conclusiones
Como ha podido comprobar Power Query, aunque con algunas limitaciones comparado con herramientas ETL corporativas, tiene una inmensa cantidad de posibilidades, tanto a la hora de acceder a muy diversos orígenes de datos, como para aplicar transformaciones sobre ellos y convertirlos en un modelo que nos facilite su análisis, aplicando las buenas prácticas estudiadas en capítulos anteriores.
Posiblemente se haya quedado con la sensación de que hay una gran cantidad de posibilidades, que las entiende por separado, pero que una cosa muy diferente es ponerlas en práctica, y cuando tenemos un caso real, ser capaz de estudiar el origen, extraer de él los datos que necesitamos, hacer un buen número de transformaciones y cálculos, hasta conseguir un modelo que nos permita realizar un buen análisis sobre ellos y finalmente guardarlos en Power Pivot, para posteriormente mejorar y enriquecer dicho modelo.