Power BI. Tecnología. Conectar un modelo mediante Excel y SSMS

Power BI es una evolución de diferentes conceptos previamente existentes en Microsoft. Además se basa en tecnología que ya existía en el momento de su creación, aunque utilizada de forma distinta y evolucionada en algunos aspectos.

Power BI se basa en el motor de Analysis Services y en la tecnología xVelocity -previamente denominada VertiPaq- que apareció en SQL Server 2012 para comprimir los datos y colocarlos en memoria, además de poseer un eficiente indexado de columnas, una tecnología que permitió un aumento de la velocidad significativo. La aparición de los modelos tabulares en Analysis Services 2012 completó la tecnología necesaria con la que se desarrolló también PowerPivot, antecesor de Power BI.

Archivo

Los datos de Power BI Desktop se guardan en un archivo en formato “pbix”, este archivo no deja de ser un archivo “zip” que a su vez contiene otros archivos (xml y json en su mayoría) donde se almacenan los datos del modelo, los metadatos y todas las características de los informes. Si renombramos cualquier “.pbix” a “.zip” y lo descomprimimos podremos ver estos archivos:

El archivo “DataModel” es el que contiene los datos. Este fichero está en formato comprimido por la propia tecnología de xVelocity y su tamaño nos dará una idea muy exacta de la cantidad de memoria RAM que requerirá Power BI para manejar el modelo.

SSAS

Al iniciar Power BI se inicia a su vez una instancia tabular de SSAS (SQL Server Analysis Services) en un puerto aleatorio. Cuando se instala Power BI Desktop también se instala el fichero “msmdsrv.exe” para crear una instancia local de SSAS.

Cuando abrimos un archivo de Power BI Desktop se desarrolla una secuencia:

  • Se crea una instancia de SSAS en un puerto aleatorio
  • Se descomprime en memoria el archivo “pbix”
  • Lectura del archivo “DataModel”, transformación en una estructura de datos en columnas de VertiPaq, codificación y compresión de cada columna.
  • Creación de un diccionario e índices para cada columna
  • Cálculo y compresión de todas las columnas calculadas
Acceso desde SQL Server Management Studio (SSMS)

Desde SSMS podemos conectarnos a cualquier servidor de Analysis Services al que tengamos acceso en la red y nos podamos autentificar. Tal como hemos visto, si abrimos un archivo “pbix” con Power BI Desktop, lo que hacemos es crear una nueva instancia de SSAS, aunque en un puerto aleatorio. Si queremos acceder al modelo de datos mediante SSMS, antes deberemos conocer el puerto.

Podemos ver las instancias de SSAS mediante el administrador de tareas. En el caso de la imagen de abajo el servidor dispone de una instancia de SQL Server Analysis Services y dos que pertenecen a dos archivos abiertos de Power BI.

Si vamos a ver los detalle de cualquiera de estos procesos podremos ver su PID (identificador del proceso)

Para ver el puerto debemos ejecutar un programa en la línea de comandos por lo que primero abrimos el programa denominado “Símbolo de sistema” donde escribiremos

netstat /ano | findstr “18588”

Entendiendo que 18588 es el PID del cual queremos saber el puerto que utiliza.

El resultado es el siguiente:

Nos indica que el puerto utilizado es el 60881

Ahora abrimos SSMS y conectamos con el servidor local de Analysis Services en el puerto localizado

Una ve conectados con el modelo de datos ya podemos explorar sus dimensiones, jerarquías y medidas así como realizar las consultas que queramos

 

Otra solución para averiguar el puerto de un archivo abierto es la de utilizar DAX Studio. Al conectarse nos da las propiedades de dicha conexión averiguando cual es el puerto.

En el caso que queramos conectar el modelo a Excel, el proceso es el mismo salvo que una vez obtenidos los datos, desde Excel debemos ir a “Datos”, “Obtener datos”, “Desde una base de datos”, “Desde Analysis Services” e introducimos los datos: Localhost:60881

Y ya tendremos acceso al modelo.

 

Azure Analysis Services

Esta es la versión de SQL Server Analysis Services en la nube y que se ha consolidado este año con mejoras incrementales. En julio apareció un diseñador en la web de modelos de datos y que entre otras facilidades permite crear una base de datos e importar el modelo de datos a partir de un archivo “pbix” tal como mostró Josh Caplan en el blog de Azure, de esta manera convertimos Power BI Desktop en un diseñador de modelos tabulares de Analysis Services.

No es posible hacer lo contrario, a menos que lo hagamos manualmente, es decir que creamos un nuevo pbix como resultado de la importación de un modelo de Azure Analysis Services, aunque desde la propia aplicación web con la que gestionamos los models de Azure Analysis Services si que es posible descargar un archivo pbix que tiene una conexión directa con el modelo. En este vídeo de Channel 9 tenéis alguna información al respecto.

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *