Creando una dimensión Tiempo en Analisys Services 1/2

Posted by Miguel Egea | Posted in Analisys Services | Posted on 17-01-2010

2

PortalSQL tradicionalmente venía hablando solo de motor relacional, sin embargo, mi carrera me ha llevado a la parte multidimensional, y os prometo que ha sido un descubrimiento total, trabajar con cientos o miles de millones de filas, y que los usuarios vean los resultados en tiempo real es una experiencia increible. Si además le podemos añadir luego cierta lógica relacionada con el tiempo y fórmulas que añadan valor a las operaciones, los proyectos sin duda tienen tendencia a ser más exitosos.

Dicho esto, vamos a comenzar con el primer artículo sobre Analisys Services, pasaremos casi de largo por algunos pasos básicos, y construiremos la dimensión tiempo paso a paso para que los veais.

Comenzamos en el resultado de los artículos sobre la dimensión tiempo, es decir nuestro datawarehouse cargado y relleno con la dimensión tiempo en Español, Inglés y frances como pude verse en la siguiente figura.

Ahora lo que vamos a hacer es abrir el Bussiness Studio Development Studio desde el menú tal y como puede verse en la siguiente figura.

Después lo que haremos será crear un proyecto de Analisys services llamado Dimensión Tiempo, para ello en Fichero –> Nuevo –>Proyecto–> Bussiness Intelligence Projects y ahí elegimos analisys services projects, tal y como podeis ver en la siguiente figura.

Una vez creado el proyecto nos aparecerán los distintos apartados de Analisys Services, los que necesita para crear el proyecto. Lo primero que haremos será crear el Data Source, es decir, crear una conexión al motor relacional en el que estará la tabla tiempo en la que nos vamos a basar, en realidad, lo que hacemos es muy parecido a lo que se hacía cuando se creaba una conexión ODBC, es decir crear una conexión a una base de datos (no tiene por que ser SQL Server, puede ser cualquier otro motor).
Importante Pensad que estamos haciendo un proyecto que al final no es mas que código fuente que se ejecutará en un servidor, por tanto, la conexión que creamos al final se conectará no desde nuestra máquina, no con nosotros logueados, sino desde el servidor, y ejecutado bajo las credenciales que levanten el servicio de Analisys Services.

Para crear el Data Source pulsaremos con el botón derecho sobre la carpeta Data Sources, y elegiremos New Data Source :

A partir de elegir la opción nuevo data source nos aparece un asistente para crear la conexión, saltamos el primer paso, que es siempre el de bienvenida, y en el segundo nos permite elegir alguna conexión que ya hayamos hecho anteriormente o podemos pulsar el botón nueva conexión.

Una vez pulsado el botón nueva conexión nos va a aparecer la siguiente pantalla, en la que realmente será la que creemos la conexión.

En la parte superior de la imagen podeis ver como hay una lista desplegable en la que seleccionamos el proveedor de datos que usaremos para conectarnos, en nuestro caso es SQL Server, de forma que hemos elegido el Native Client 10.0, basta con que tengas instalados los drivers adecuados para poder elegir cualquier conexión a cualquier base de datos del mercado.

El siguiente paso, que es el penúltimo, nos pide la información de impersonación, es decir, nos ayuda a decir con que credenciales ha de conectarse el servicio de Analisys Services a esta base de datos, podemos especificar unas credenciales de windows, podemos especificar que se conecte bajo las credenciales del servicio, que se usen nuestras credenciales, o que no use ninguna.


El último paso es especificar el nombre que daremos a la conexión, elegid cualquiera que nos vale.

Una vez creado el Data Source, (Origen de Datos), debemos crear el Data Source View, esto nos permite seleccionar bien tablas o vistas, o bien crear consultas y que aparezcan en nuestro modelo como una tabla. Para nuestro ejemplo, en el que no vamos a hacer un cubo completo sino solamente la dimensión tiempo, nos valdrá con la tabla que tiene la dimensión tiempo. Realmente es la única que vamos a necesitar, pero en futuros artículos espero que creemos un cubo completo contra Adventure Works por ejemplo, para que veais el proceso completo.

Para crear el data source view, sobre el apartado en el explorardor de soluciones, botón derecho, nuevo data source view y seguimos el asistente, en el primer paso solamente es el de bienvenida, el segundo nos ofrece para elegir el datasource del que saldrá la conexión, obviamente elegiremos el que acabamos de crear.

Las alternativas que nos ofrece el asistente en el segundo paso son las que usará para inferir claves primarias, y relaciones en las tablas seleccionadas. El data source view añade esta lógica sin modificar el origen de datos, es decir, él necesita saber que campos son clave primaria y como se relacionan las tablas para ayudarnos en la creación de las dimensiones y hechos posteriormente. La alternativa que elijais dependerá mucho de como tengais vuestro protocolo de nombres en la creación, fijaos en los ejemplos que pone cuando pinchais una de las alternativas y elegid el más adecuado a vuestro esquema. En el siguiente paso hay que elegir que tablas nos traemos. En nuestro caso solo Dimensiones.Tiempo, fijaos que hay una parte de filtro abajo de las tablas de origen, esto es porque en los esquemas grandes suelen haber, cientos, quizás miles de tablas (el otro día vi un ejemplo de un sistema navision con 90.000 tablas…) para elegir una en concreto ayudarnos del filtro será fundamental en estos casos.

Fijaos también en el botón Add Related tables, en los que el sistema va a traerse las tablas que estén relacionadas, averiguando esto a través de las restricciones de integridad referencial. De esta forma podemos elegir el conjunto de tablas que necesitamos de una forma mucho más sencilla.

Hasta aquí la primera parte, en breve publicaré el final de la creación de la dimensión tiempo, lo que es la creación en sí.

Saludos

Comments (2)

Hola Miguel,

muchas gracias por el artículo tan bien detallado. Ya estoy esperando la segunda parte.

Write a comment