GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

Trabajando con Dimensiones en Analysis Services (SSAS)


Buena parte del trabajo a realizar en el Diseño de Cubos de Analysis Services (SSAS) lo realizaremos en el Diseño y Modelado de las Dimensiones de nuestros Cubos, desde nuestro proyecto de Visual Studio, con BIDS o SSDT. Definir y configurar las diferentes Jerarquías y Atributos, personalizar las diferentes propiedades de las mismas en base a nuestras necesidades funcionales y de rendimiento, etc. El presente artículo es una pequeña introducción al trabajo con Dimensiones en Analysis Services, que intentaremos completar con futuros artículos.

El correcto Diseño y Desarrollo de las Dimensiones de un Cubo de Analysis Services (SSAS) es una de las tareas más importantes que tendremos que realizar como Consultores o Desarrolladores de Business Intelligence (BI), para conseguir una satisfactoria experiencia de usuario al navegar por nuestros Cubos.

Para el presente artículo, hemos utilizado Analysis Services 2014, para lo que hemos tenido que descargar la herramienta SQL Server Data Tools. Podría utilizarse también versiones anteriores de Analysis Services sin ningún problema. Como origen de datos hemos utilizado las Bases de Datos de Ejemplo de SQL Server 2012, en particular la Base de Datos AdventureWorksDW2012, que puede descargarse de forma gratuita.

La forma más fácil de comenzar el Diseño y Desarrollo de un nuevo Cubo de Analysis Services (SSAS) desde un Proyecto de Visual Studio, es utilizan el Asistente (Wizard) para la creación de un nuevo Cubo (New Cube). Si en el Wizard seleccionamos la opción Use existing tables, podremos seleccionar las Tablas que necesitemos como Tablas de Hechos y de Dimesiones (deberemos haber creado antes los Orígenes de Datos y los DSV con sus relaciones), así como seleccionar las Medidas (Measures) y Grupos de Medidas que deseemos para nuestro Cubo. Con todo esto, habremos obtenido un Cubo básico, que en muchos casos, incluso podremos Desplegar y Procesar para empezar a utilizar, aunque para dejarlo fino, seguro que tendremos que seguir trabajando en Visual Studio muchas más horas.

La forma más fácil de comenzar el Diseño y Desarrollo de un nuevo Cubo de Analysis Services (SSAS) desde un Proyecto de Visual Studio, es utilizan el Asistente (Wizard) para la creación de un nuevo Cubo (New Cube)

Editar una Dimensión, para ocultar y añadir Atributos

Si deseamos personalizar una Dimensión desde nuestro Proyecto de Visual Studio, podemos hacer doble-click en la misma en el Solution Explorer, para acceder al Editor de Dimensiones, y poder empezar a trabajar sobre ella. En nuestro caso vamos a editar la Dimensión Territorial (Dim Sales Territory).

Si deseamos personalizar una Dimensión desde nuestro Proyecto de Visual Studio, podemos hacer doble-click en la misma en el Solution Explorer, para acceder al Editor de Dimensiones

El Asistente (Wizard) de creación de nuestro nuevo Cubo, ha creado una Dimensión Territorial muy sencilla, en la que tenemos un único Atributo con poco significado (es una clave).

El Asistente (Wizard) de creación de nuestro nuevo Cubo, ha creado una Dimensión Territorial muy sencilla, en la que tenemos un único Atributo con poco significado (es una clave)

Lo primero que vamos a hacer es ocultar este Atributo/Jerarquía, ya que carece de cualquier significado para el usuario. Para ello vamos a utilizar la Propiedad AttributeHierarchyVisible de dicho Atributo, que configuraremos a False. De este modo, dicho Atributo (que forma una Jerarquía de un único nivel de profundidad por sí solo, además de ser la Clave de esta Dimensión) quedará oculto como Atributo y como Jerarquía, pero seguirá estando disponible en cálculos MDX.

Vamos a utilizar la Propiedad AttributeHierarchyVisible de dicho Atributo, que configuraremos a False. Quedará oculto como Atributo y como Jerarquía, pero seguirá estando disponible en cálculos MDX

Realizado esto se quedará esta Dimensión vacía, sin ninguna Jerarquía. Para solucionar esta situación, Arrastraremos y Soltaremos (drag and drop) los atributos SalesTerritoyContry, SalesTerritoryGroup, y SalesTerritoryRegion, desde el panel Data Source View al panes Attributes. De este modo, estaremos creando tres nuevas Jerarquías. Si lo deseamos, podremos Procesar de nuevo esta Dimensión, para poder navegar por el Cubo y observar los resultados obtenidos.

Arrastraremos y Soltaremos (drag and drop) los atributos SalesTerritoyContry, SalesTerritoryGroup, y SalesTerritoryRegion

Las Propiedades de Atributo OrderBy y NameColumn

Para continuar con esta introducción al Diseño de Dimensiones con Analysis Services (SSAS), vamos a personalizar otra Dimensión, para a través de dicho ejercicio, presentar las propiedades OrderyBy y NameColumn. Estas son dos de las Propiedades más utilizadas en los Atributos de las Dimensiones.

La Dimensión Temporal tal y cual ha sido creada por el Asistente (Wizard) también es demasiado básica, y necesitamos personalizarla. Como podemos ver, tiene definido un único Atributo, que es la Clave. En este caso, la Clave es un valor numérico que representa la fecha, por lo que en cierto modo tiene algo de significado (no se trata de un valor auto-numérico, aunque podría ser el caso), algo similar a lo que ocurría en el caso anterior.

La Dimensión Temporal tal y cual ha sido creada por el Asistente (Wizard) también es demasiado básica, y necesitamos personalizarla

Si navegamos por esta Dimensión Temporal tal cual está, observaremos el siguiente resultado. Valores numéricos, que si bien se podrían interpretar (no son auto-numéricos ni códigos sin sentido), al menos les falta una representación un poco más amigable.

Si navegamos por esta Dimensión Temporal tal cual está, observaremos el siguiente resultado. Valores numéricos

Para corregirlo, en esta ocasión, en lugar de ocultar este Atributo/Jerarquía, vamos a establecer la propiedad NameColumn del Atributo al valor de la columna FullDateAlternateKey (podemos utilizar el botón de los puntos suspensivos). De este modo, la Clave de este atributo sigue siendo la misma columna, pero especificaremos una columna alternativa que deseamos utilizar para mostrar el valor de cada miembro de este atributo, y que sea más User-Friendly.

Vamos a establecer la propiedad NameColumn del Atributo al valor de la columna FullDateAlternateKey

Para continuar, Arrastraremos y Soltaremos (drag and drop) los atributos CalendarYear y MonthNumberOfYear, desde el panel Data Source View al panes Attributes. De este modo, estaremos creando dos nuevas Jerarquías.

Arrastraremos y Soltaremos (drag and drop) los atributos CalendarYear y MonthNumberOfYear

En el caso del Atributo Mont Number Of Year, volvemos a  tener el mismo problema: su valor es un número, de 1 a 12, que representa el mes. Siendo correcto, aporta poco significado, si pensamos en Informes, y en el uso desde el punto de vista del usuario del negocio. Para corregirlo, vamos a establecer la propiedad NameColumn del Atributo al valor de la columna EnglishMontName.

En el caso del Atributo Mont Number Of Yer, volvemos a  tener el mismo problema: su valor es un número, de 1 a 12. Para corregirlo, vamos a establecer la propiedad NameColumn del Atributo al valor de la columna EnglishMontName

Si Procesamos la Dimensión, y Navegamos sobre ella, podremos ver que ahora se muestran los nombres de los Meses, en lugar de un valor numérico entre 1 y 12. Sin embargo, nos hemos encontrado con nuevo problema: los meses aparecen por orden alfabético, lo cual, no tiene mucho sentido.

Nos hemos encontrado con nuevo problema: los meses aparecen por orden alfabético, lo cual, no tiene mucho sentido

Para corregirlo, vamos establecer la propiedad OrderBy al valor Key. De este modo, los miembros de esta Jerarquía se ordenarán por el valor de la Clave, que se trata de un valor numérico entre 1 y 12, que cumple con las necesidades de ordenación que tenemos para dicha Jerarquía. Objetivo cumplido.

Vamos establecer la propiedad OrderBy al valor Key. De este modo, los miembros de esta Jerarquía se ordenarán por el valor de la Clave

Despedida y Cierre

El presente artículo ha sido una breve introducción al trabajo con Dimensiones y Jerarquías en Analysis Services (SSAS), donde hemos aprovechado para presentar tres de las principales Propiedades de los Atributos de Dimensión, las Propiedades AttributeHierarchyVisible, OrderBy, y NameColumn, a través de varios ejemplos.

Poco más por hoy. Como siempre, confío que la lectura resulte de interés.

 


Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Oct 2007
  771 usuarios registrados
  86146 pageloads/mes
  Ranking Alexa 498160

Social Networks
Sigue a Portal GuilleSQL en Linkedin !!
Sigue a Portal GuilleSQL en Twitter !!



Archivo

Marzo de 2019 (1)
Octubre de 2018 (1)
Julio de 2018 (1)
Junio de 2018 (4)
Mayo de 2018 (5)
Abril de 2018 (3)
Marzo de 2018 (2)
Febrero de 2018 (7)
Enero de 2018 (1)
Diciembre de 2017 (15)
Noviembre de 2017 (7)
Junio de 2017 (3)
Mayo de 2017 (1)
Marzo de 2017 (3)
Enero de 2017 (4)
Junio de 2016 (1)
Mayo de 2016 (2)
Abril de 2016 (2)
Septiembre de 2015 (2)
Agosto de 2015 (2)
Junio de 2015 (10)
Mayo de 2015 (4)
Abril de 2015 (8)
Marzo de 2015 (11)
Octubre de 2014 (3)
Septiembre de 2014 (7)
Agosto de 2014 (5)
Julio de 2014 (2)
Mayo de 2014 (4)
Abril de 2014 (4)
Marzo de 2014 (4)
Febrero de 2014 (1)
Enero de 2014 (5)
Diciembre de 2013 (8)
Noviembre de 2013 (2)
Octubre de 2013 (7)
Septiembre de 2013 (6)
Agosto de 2013 (1)
Julio de 2013 (6)
Junio de 2013 (11)
Mayo de 2013 (7)
Abril de 2013 (6)
Febrero de 2013 (5)
Enero de 2013 (7)
Diciembre de 2012 (12)
Noviembre de 2012 (13)
Octubre de 2012 (5)
Septiembre de 2012 (3)
Agosto de 2012 (6)
Julio de 2012 (4)
Junio de 2012 (1)
Mayo de 2012 (2)
Abril de 2012 (7)
Marzo de 2012 (16)
Febrero de 2012 (9)
Enero de 2012 (5)
Diciembre de 2011 (10)
Noviembre de 2011 (10)
Octubre de 2011 (4)
Septiembre de 2011 (5)
Agosto de 2011 (2)
Julio de 2011 (2)
Junio de 2011 (4)
Mayo de 2011 (2)
Abril de 2011 (6)
Marzo de 2011 (4)
Febrero de 2011 (10)
Enero de 2011 (5)
Diciembre de 2010 (6)
Noviembre de 2010 (4)
Octubre de 2010 (8)
Septiembre de 2010 (4)
Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






Copyright © 2007 GuilleSQL, todos los derechos reservados.