Modificar la dimensión Time
Puede definir claves compuestas para que los atributos controlen los miembros que devuelve la consulta de procesamiento SELECT DISTINCT. Si se utilizan claves compuestas, el criterio de ordenación de los miembros del atributo viene determinado por el orden de los miembros de la clave compuesta. En las tareas de este tema, debe cambiar el nombre de la jerarquía definida por el usuario, cambiar los nombres de los miembros que se muestran para los atributos Date, Month, Calendar Quarter y Calendar Semester, definir claves compuestas para los atributos EnglishMonthName, CalendarQuarter y CalendarSemester, y modificar el orden de los miembros de las claves compuestas para controlar el criterio de ordenación de los miembros de las dimensiones.
Modificar la jerarquía definida por el usuario
Para modificar la jerarquía definida por el usuario
Cambie al Diseñador de dimensiones para la dimensión Time de Business Intelligence Development Studio y haga clic en la ficha Estructura de dimensión.
En el panel Jerarquías y niveles, haga clic en la jerarquía CalendarYear - CalendarSemester - CalendarQuarter - EnglishMonthName - FullDateAlternateKey y, a continuación, cambie la propiedad Name por Calendar Time en la ventana Propiedades.
El nombre de esta jerarquía definida por el usuario ahora es Calendar Time.
En la jerarquía definida por el usuario Calendar Time, cambie el nivel English Month Name a Calendar Month y el nivel Full Date Alternate Key a Date.
Cambie al Diseñador de vistas de origen de datos de la vista de origen de datos Adventure Works DW, haga clic con el botón secundario en Time (dbo.DimTime) en el panel Tablas y, a continuación, haga clic en Nuevo cálculo con nombre.
En el cuadro de diálogo Crear cálculo con nombre, escriba SimpleDate en el cuadro Nombre de columna y, a continuación, escriba la secuencia de comandos SQL siguiente en el cuadro Expresión:
DATENAME(mm, FullDateAlternateKey) + ' ' + DATENAME(dd, FullDateAlternateKey) + ', ' + DATENAME(yy, FullDateAlternateKey)
Esta secuencia de comandos SQL extrae los valores de año, mes y día de la columna FullDateAlternateKey. Modificará el nivel Date en la jerarquía Calendar Time de la dimensión Time para mostrar el valor de esta nueva columna en lugar del valor original almacenado en la columna FullDateAlternateKey de la tabla DimTime.
Haga clic en Aceptar y luego cambie al Diseñador de dimensiones para la dimensión Time.
Haga clic en Date en la jerarquía Calendar Time y, a continuación, revise las propiedades del nivel Date en la ventana Propiedades.
Observe que el nivel Date de la jerarquía se basa en el atributo FullDateAlternateKey. En los pasos siguientes, cambiará el atributo en el que se basa este nivel por TimeKey, y luego modificará las propiedades del atributo TimeKey de modo que los nombres de sus miembros se basen en los valores de la columna SimpleDate que acaba de definir. También podría dejar FullDateAlternateKey como atributo en el que se basara el nivel de Date y cambiar el atributo de modo que sus nombres de miembro se basaran en la columna SimpleDate. No obstante, el primer método es más eficaz; el atributo TimeKey y el atributo FullDateAlternateKey no son ambos necesarios, por lo que eliminará el atributo FullDateAlternateKey.
En la jerarquía definida por el usuario Calendar Time, cambie el valor de la propiedad SourceAttribute del nivel Date por TimeKey y, a continuación, elimine el atributo FullDateAlternateKey del panel Atributos.
Seleccione TimeKey en el panel Atributos, expanda la colección de propiedades NameColumn y, a continuación, expanda la colección de propiedades Source de la ventana Propiedades. Cambie el valor de la propiedad ColumnID por SimpleDate.
Observe que la propiedad OrderBy del atributo TimeKey especifica que los miembros de la jerarquía de atributo se ordenan según sus valores de clave.
En el menú Generar de BI Development Studio, haga clic en Implementar Tutorial de Analysis Services. Cuando la implementación haya finalizado correctamente, haga clic en la ficha Examinador del Diseñador de dimensiones para la dimensión Time y luego haga clic en Volver a conectar en la barra de herramientas.
Expanda los niveles de la jerarquía Calendar Time para revisar los miembros del nivel Date.
Observe que los miembros del nivel Date son más descriptivos que antes. No obstante, observe también que los miembros de semestre, trimestre y mes no indican su año primario.
En la imagen siguiente se muestran los miembros del nivel Date.
En la lista Jerarquía, seleccione EnglishMonthName y expanda el miembro All.
Observe que cada mes aparece sólo una vez, en lugar de aparecer una vez por cada año de la dimensión Time. En la tarea siguiente de este tema generará nombres únicos para cada mes de cada año.
Seleccione CalendarQuarter en la lista Jerarquía y expanda el miembro All.
Observe que cada trimestre aparece sólo una vez, en lugar de aparecer una vez por cada trimestre de la dimensión Time. Observe también que los meses están ordenados alfabéticamente. En la tarea siguiente de este tema generará nombres únicos para cada trimestre natural de cada año. En la lección 4, configurará los meses para ordenarlos cronológicamente.
Proporcionar nombres de miembros de dimensión únicos
Para proporcionar nombres de miembros de dimensión únicos
Cambie al Diseñador de vistas de origen de datos de la vista de origen de datos Adventure Works DW, haga clic con el botón secundario en Time (dbo.DimTime) en el panel Tablas y, a continuación, haga clic en Nuevo cálculo con nombre.
En el cuadro de diálogo Crear cálculo con nombre, escriba MonthName en el cuadro Nombre de columna y, a continuación, escriba la secuencia de comandos SQL siguiente en el cuadro Expresión:
EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)
Esta secuencia de comandos SQL concatena el mes y el año de cada mes de la tabla DimTime en una nueva columna.
Haga clic en Aceptar.
Haga clic con el botón secundario en Time (dbo.DimTime) en el panel Tablas y, a continuación, haga clic en Nuevo cálculo con nombre.
En el cuadro de diálogo Crear cálculo con nombre, escriba CalendarQuarterDesc en el cuadro Nombre de columna y, a continuación, escriba la secuencia de comandos SQL siguiente en el cuadro Expresión:
'Q' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'CY ' + CONVERT(CHAR (4), CalendarYear)
Esta secuencia de comandos SQL concatena el trimestre natural y el año de cada trimestre de la tabla DimTime en una nueva columna.
Haga clic en Aceptar.
Haga clic con el botón secundario en Time en el panel Tablas y, a continuación, haga clic en Nuevo cálculo con nombre.
En el cuadro de diálogo Crear cálculo con nombre, escriba CalendarSemesterDesc en el cuadro Nombre de columna y, a continuación, escriba la secuencia de comandos SQL siguiente en el cuadro Expresión:
CASE WHEN CalendarSemester = 1 THEN 'H1' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) ELSE 'H2' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) END
Esta secuencia de comandos SQL concatena el semestre natural y el año de cada semestre de la tabla DimTime en una nueva columna.
Haga clic en Aceptar y, a continuación, cambie al Diseñador de dimensiones para la dimensión Time y haga clic en la ficha Estructura de dimensión.
Modificará los atributos EnglishMonthName, CalendarQuarter y CalendarSemester en la dimensión Time para utilizar los valores de las columnas nuevas como valores de miembro.
En el panel Atributos, seleccione EnglishMonthName. En la ventana Propiedades, expanda la propiedad NameColumn y la propiedad Source y, a continuación, cambie el valor de la propiedad ColumnID por MonthName.
Del mismo modo, cambie la propiedad ColumnID del atributo Calendar Quarter y el atributo Calendar Semester como se indica a continuación:
- Calendar Quarter: cambie la propiedad ColumnID por CalendarQuarterDesc.
- Calendar Semester: cambie la propiedad ColumnID por CalendarSemesterDesc.
En el menú Generar de BI Development Studio, haga clic en Implementar Tutorial de Analysis Services. Cuando la implementación haya finalizado correctamente, haga clic en la ficha Examinador del Diseñador de dimensiones para la dimensión Time.
En la barra de herramientas de la ficha Examinador, haga clic en Volver a conectar y, a continuación, revise los miembros de la jerarquía de atributo CalendarQuarter de la jerarquía de atributo Calendar Quarter.
Observe que, si bien los nombres de los miembros de la jerarquía de atributo son más descriptivos, sigue habiendo sólo cuatro miembros en la jerarquía de atributo, en lugar de un miembro para cada combinación de año y trimestre. Si revisa las jerarquías de los atributos EnglishMonthName o CalendarSemester, observará un comportamiento parecido. En la tarea siguiente de este tema, modificará este comportamiento especificando una clave compuesta para estos atributos.
Especificar valores de clave compuesta
Para especificar valores de clave compuesta
Seleccione la ficha Estructura de dimensión del Diseñador de dimensiones para la dimensión Time, seleccione el atributo EnglishMonthName y, a continuación, haga clic en el botón de puntos suspensivos (…) de la celda de la propiedad KeyColumns de la ventana Propiedades para modificar el valor del atributo.
Se abre el Editor de la colección DataItem para mostrar la columna de clave de miembro para este atributo. Cuando Analysis Services procesa una dimensión, emite una consulta SELECT DISTINCT para determinar los miembros de la misma. En el Editor de la colección DataItem, puede especificar una clave compuesta en lugar de una clave de una sola columna para el atributo, para devolver miembros de dimensión adicionales.
Haga clic en Agregar para definir una segunda clave de miembro para el atributo de la dimensión.
Aparece una nueva clave de miembro en la lista de miembros. Debe definir las propiedades de este nuevo miembro de clave.
En Propiedades del nuevo enlace (WChar), haga clic en el botón de puntos suspensivos (...) de la celda de la propiedad Source para cambiar su valor.
Aparece el cuadro de diálogo Enlace de objetos. En este cuadro de diálogo, debe especificar una columna existente en una tabla determinada o especificar el tipo de columna que desea crear si genera el esquema relacional utilizando el método de diseño descendente.
En la lista Tipo de enlace, seleccione Enlace de columna.
Compruebe que Time está seleccionado en la lista Tabla de origen.
En la lista Columna de origen, seleccione CalendarYear.
En la imagen siguiente se muestra el cuadro de diálogo Enlace de objetos.
Haga clic en Aceptar para cerrar el cuadro de diálogo Enlace de objetos y, a continuación, haga clic de nuevo en Aceptar para cerrar el Editor de la colección DataItem.
Observe que el valor de la propiedad KeyColumns ahora está establecido en (Colección).
Seleccione el atributo CalendarQuarter y haga clic en el botón de puntos suspensivos (...) de la celda de la propiedad KeyColumns de la ventana Propiedades para modificar el valor del atributo.
Aparece el Editor de la colección DataItem.
Haga clic en Agregar para definir un segundo miembro para la propiedad KeyColumns.
En Propiedades del nuevo enlace (WChar), haga clic en el botón de puntos suspensivos (...) de la celda de la propiedad Source para cambiar su valor.
Aparece el cuadro de diálogo Enlace de objetos.
En la lista Tipo de enlace, seleccione Enlace de columna.
En la lista Tabla de origen, compruebe que Time está seleccionado.
En la lista Columna de origen, seleccione CalendarYear.
Haga clic en Aceptar y, luego, vuelva a hacer clic en Aceptar.
Seleccione el atributo CalendarSemester y haga clic en el botón de puntos suspensivos (...) de la celda de la propiedad KeyColumns de la ventana Propiedades para modificar el valor del atributo.
Aparece el cuadro de diálogo Editor de la colección DataItem.
Haga clic en Agregar para definir un segundo miembro para la propiedad KeyColumns.
En Propiedades del nuevo enlace (WChar), haga clic en el botón de puntos suspensivos (...) de la celda de la propiedad Source para cambiar su valor.
Aparece el cuadro de diálogo Enlace de objetos.
En la lista Tipo de enlace, seleccione Enlace de columna.
En la lista Tabla de origen, compruebe que Time está seleccionado.
En la lista Columna de origen, seleccione CalendarYear.
Haga clic en Aceptar y, luego, vuelva a hacer clic en Aceptar.
En el menú Generar de BI Development Studio, haga clic en Implementar Tutorial de Analysis Services. Cuando la implementación haya finalizado correctamente, haga clic en la ficha Examinador del Diseñador de dimensiones para la dimensión Time.
En la barra de herramientas de la ficha Examinador, haga clic en Volver a conectar y, a continuación, revise los miembros de la jerarquía de atributo CalendarQuarter de la jerarquía de atributo Calendar Quarter.
Observe que, si bien ahora existen miembros en la jerarquía de atributo CalendarQuarter para cada trimestre de cada año, los miembros no están ordenados cronológicamente. En lugar de ello, están ordenados por trimestre y luego por año. En la siguiente tarea de este tema, modificará este comportamiento para ordenar los miembros de la jerarquía de este atributo por año y luego por trimestre.
En la imagen siguiente se muestra la estructura actual de la jerarquía de atributo CalendarQuarter.
Revise los miembros de las jerarquías de los atributos EnglishMonthName y CalendarSemester.
Observe que los miembros de estas jerarquías tampoco están ordenados cronológicamente. En lugar de ello, están ordenados por mes o semestre, respectivamente, y luego por año. En la tarea siguiente de este tema, modificará este comportamiento para cambiar el criterio de ordenación.
Cambiar el criterio de ordenación modificando el orden de los miembros de clave compuesta
Para modificar el orden de los miembros de clave compuesta
Seleccione la ficha Estructura de dimensión del Diseñador de dimensiones para la dimensión Time y, a continuación, seleccione CalendarSemester en el panel Atributos.
En la ventana Propiedades, revise el valor de la propiedad OrderBy.
Los miembros de la jerarquía de atributo CalendarSemester están ordenados por su valor de clave. Con una clave compuesta, el orden de las claves de los miembros se basa en el primer valor de la primera clave del miembro y luego en el valor de la segunda clave del miembro. Dicho de otro modo, los miembros de la jerarquía de atributo CalendarSemester están ordenados primero por semestre y luego por año.
En la ventana Propiedades, haga clic en el botón de puntos suspensivos (...) del valor de la propiedad KeyColumns.
Se abre el Editor de la colección DataItem.
En la tabla Members del Editor de la colección DataItem, compruebe que DimTime.CalendarSemester (UnsignedTinyInt) está seleccionado y, luego, haga clic en la flecha abajo para invertir el orden de los miembros de esta clave compuesta. Haga clic en Aceptar.
Los miembros de la jerarquía de atributo ahora aparecen ordenados primero por año y luego por semestre.
Seleccione CalendarQuarter en el panel Atributos y, a continuación, haga clic en el botón de puntos suspensivos (...) de la propiedad KeyColumns de la ventana Propiedades.
En la tabla Members del Editor de la colección DataItem, compruebe que DimTime.CalendarQuarter (UnsignedTinyInt) está seleccionado y, luego, haga clic en la flecha abajo para invertir el orden de los miembros de esta clave compuesta. Haga clic en Aceptar.
Los miembros de la jerarquía de atributo ahora aparecen ordenados primero por año y luego por trimestre.
Seleccione EnglishMonthName en el panel Atributos y, a continuación, haga clic en el botón de puntos suspensivos (...) de la propiedad KeyColumns de la ventana Propiedades.
En la tabla Members del Editor de la colección DataItem, compruebe que DimTime.EnglishMonthName (WChar) está seleccionado y, luego, haga clic en la flecha abajo para invertir el orden de los miembros de esta clave compuesta. Haga clic en Aceptar.
Los miembros de la jerarquía de atributo ahora aparecen ordenados primero por año y luego por mes.
En el menú Generar de BI Development Studio, haga clic en Implementar Tutorial de Analysis Services. Cuando la implementación haya finalizado correctamente, haga clic en la ficha Examinador del Diseñador de dimensiones para la dimensión Time.
En la barra de herramientas de la ficha Examinador, haga clic en Volver a conectar y, a continuación, revise los miembros de las jerarquías de los atributos CalendarQuarter y CalendarSemester.
Observe que los miembros de estas jerarquías ahora están clasificados por orden cronológico, por año y luego por trimestre o semestre, respectivamente.
Revise los miembros de la jerarquía de atributo EnglishMonthName.
Observe que los miembros de la jerarquía ahora aparecen ordenados primero por año y luego de forma alfabética por mes (esto se debe a que el tipo de datos de la columna EnglishCalendarMonth de la vista del origen de datos es una columna de cadena, basada en el tipo de datos nvarchar en la base de datos relacional subyacente). No obstante, resultaría de más utilidad que los meses estuvieran ordenados cronológicamente dentro de cada año. Realizará este cambio en la lección 4.
En la imagen siguiente se muestra la jerarquía de atributo EnglishMonthName.
En el menú Archivo de BI Development Studio, haga clic en Guardar todo para guardar los cambios que ha realizado en este punto del proyecto Tutorial de Analysis Services, de modo que pueda detener aquí el tutorial si desea reanudarlo más adelante.
Ha incrementado la facilidad de uso de los miembros de las jerarquías de atributo de la dimensión Time, creando cálculos con nombre en la vista de origen de los datos y luego utilizando dichos cálculos como nombres de los miembros del atributo. También ha incrementado la facilidad de uso definiendo claves compuestas y especificando el orden apropiado de los miembros de las claves compuestas para controlar el criterio de ordenación de los miembros de la dimensión.
Siguiente tarea de la lección
Modificar la dimensión Product
Vea también
Otros recursos
Definir y configurar dimensiones, atributos y jerarquías