Construyendo Cubos en Analysis Services sobre Azure

El otro día me plantearon un pequeño desafío, migrar cubos multidimensionales On premise a Azure. Al principio podía parecer sencillo, de hecho pequé de optimista, pero según fui revisando mis apuntes y demás, fui dándome cuenta de que el proceso se complicaba por momentos, pero claro… ¡con lo que me gusta remangarme, no lo podía dejar pasar!

Así pues, ¡comencemos!

Lo primero es crear un nuevo proyecto en Azure DevOps, como siempre que utilizamos cualquier tipo de desarrollo. Aunque como en este caso, se trate de un caso de uso relacionado con Datos. ¡Hay que dejar atrás el miedo a usar Visual Studio en vez de SSMS!

Una vez completada la creación del repositorio y las branch tanto main como develop, paso a clonar el repositorio en mi Visual Studio y continuo.

Al terminar, creo mi primera rama feature desde develop y ahora toca empezar a construir el primer cubo.

La rama sobre la que voy a trabajar se llama: feature/first-data-multi y en ella, lo primero será construir la solución, para posteriormente añadir el o los proyectos que quieras incorporar. En nuestro caso, será un proyecto de Datos con modelo Multidimensional. Recordar que para ello deberás instalar una extensión en VS. Os dejo el enlace en el link

Para ello, vamos a utilizar la base de datos AdventureWorksDW de Microsoft, disponible en este link. El diagrama sobre el que vamos a trabajar es sencillo. Dispondremos de una primera base de datos, Azure SQL Database sobre un servidor básico en la que hemos restaurado la copia de AdventureWorksDW. Y como destino de nuestro Cubo en Azure, utilizaremos un SQL Server 2019 sobre Máquina Virtual Windows, ya que Azure Analysis Services no soporta (por ahora) modelos Multidimensionales.

IMPORTANTE:
Para realizar el despliegue de la base de datos de AdventureWorksDW en Azure Database el proceso a seguir es restauran la bbdd previamente en un SQL Server (puede ser en local por ejemplo) y desde él, hacer un movimiento desde SQL a Azure SQL Database directamente desde SSMS.

Una vez completado, verificamos que nuestros recursos están en la Azure SQL Database.

Y acto seguido, ya podremos comenzar con la creación del modelo multidimensional desde nuestro Visual Studio, creando el proyecto. Para esta primera parte de creación del cubo, os dejo este genial artículo de Daniel Calbimonte, donde se describe de un modo muy detallado el Step by Step, que yo he seguido. Merece la pena porque yo no he incluido todo el detalle de los propios pasos. Mejor el original 😉

Una vez incorporado el proyecto a la solución, comenzaremos con la creación de los recursos. Empezaremos con Data Sources. Que como ya hemos avanzado, se tratará de la base de datos AdventureWorksDW en Azure. Para ello, configuramos la conexión a dicha base de datos.

El siguiente paso es crear un Data Source View desde la recién creada Data Source. Para ello seleccionamos la siguientes tablas de dimensiones y una sola tabla de hechos.

El siguiente paso es definir la dimensión básica sobre la que vamos a trabajar. En el ejemplo será Currency y posteriormente repetiremos el proceso para incluir la dimensión de Sales Territory. Lo mismo haré con Sales Territory

Al finalizar la creación de las dimensiones, continuaremos con la configuración del Cubo.

Para finalmente hacer el procesado del mismo y verificar que está correctamente construido.

Terminado, pulsamos sobre browser y comenzamos a definir nuestra query

Una vez completado, hacemos el commit y lo subimos a nuestro repositorio de código en Azure DevOps.

El siguiente paso es crear una Máquina Virtual en Azure con SQL Server 2017 Analysis Services para desplegar allí el Cubo recién creado.

Una vez configurada y desplegada en Azure, procederemos a realizar el deploy del cubo y comprobar que está accesible. Lo primero es conseguir acceder desde nuestro SSMS desde la máquina virtual.

Lo siguiente es configurar el target del despliegue del proyecto del modelo multidimensional sobre este servidor en MV. Aquí nos encontramos con un problema ya que Analysis Services no permite conectar si no es mediante autenticación de Windows. Por eso, lo que he hecho ha sido instalar Visual Studio en el servidor de la MV y clonar el proyecto de Azure DevOps para de este modo ejecutar el deploy definiendo como Target Server, mi localhost.

IMPORTANTE:
Recuerda que para manejar el proyecto de datos, deberás instalar Visual Studio Professional y añadir la extensión de Microsoft Analysis Services 😉

NOTA: Alternativamente, se podría solucionar este inconveniente, incluyendo la MV en el mismo dominio de Active Directory. Aunque no lo he comprobado, pero seguro que da para otra entrada 🙂

Y finalmente vemos que el proceso termina con un completado satisfactoriamente. Genial 😉

Con lo que si accedo a la instancia de Analysis Services de mi MV podré comprobar que los recursos se han desplegado correctamente

Ya lo tendríamos funcionando!

CONCLUSIÓN
El análisis de datos utilizando modelos multidimensionales estuvo muy de moda hace unos diez o doce años. Ahora dicha estrategia de análisis ha quedado bastante en desuso, algo que se constata por ejemplo al comprobar que Microsoft ha desarrollado Analysis Services como servicio SaaS en Azure. Eso sí, soportando exclusivamente modelos tabulares. Si a esto le sumamos que SSAS tan sólo está soportado en MV sobre Azure con el SQL Server 2017, da pistas la urgencia de comenzar a migrar todos los desarrollos en Cubos, hacia modelos tabulares, por ejemplo.

Así mismo, aspectos como que, Analysis Services tan sólo disponga de autenticación mediante Windows, limita bastante la usabilidad y conectividad. Obligando a desarrollar, o al menos a desplegar los modelos desde la propia MV.

Ya sólo me queda comentar que, hacia mucho tiempo que no me encontraba con un reto así, lo he disfrutado! y que en próximas entradas desplegaré un modelo tabular sobre Azure Analysis Services para demostrar la sencillez del proceso comparado con los modelos multidimensionales.

Foto de portada gracias a Rostislav Uzunov en Pexels

Publicado por alb3rtoalonso

Soy un enamorado del poder de los datos. Entusiasta de la mejora y formación continua.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: