Definir la granularidad de las dimensiones en un grupo de medida

Los usuarios desearán dimensionar los datos de hechos con una granularidad o especificidad distinta para distintos objetivos. Por ejemplo, los datos de venta para las ventas de proveedor o ventas por Internet pueden registrarse cada día, mientras que es posible que la información sobre cuotas de venta sólo exista en el nivel de mes o trimestre. En estos casos, los usuarios desearán una dimensión de tiempo con otra granularidad o un nivel de detalle distinto para cada una de las distintas tablas de hechos. Si bien puede definirse una nueva dimensión de base de datos como una dimensión de tiempo con esta granularidad distinta, hay una forma más fácil de hacerlo con Microsoft SQL Server 2005 Analysis Services (SSAS).

De forma predeterminada, en SQL Server 2005 Analysis Services, cuando se utiliza una dimensión en un grupo de medida, el nivel de detalle de los datos de la dimensión se basa en el atributo de clave de la dimensión. Por ejemplo, cuando se incluye una dimensión de tiempo en un grupo de medida y el nivel de detalle predeterminado de la dimensión de tiempo es diariamente, el nivel de detalle predeterminado de dicha dimensión dentro del grupo de medida es diariamente. Esto es a menudo muy apropiado, como en el caso de los grupos de medida Internet Sales y Reseller Sales de este tutorial. No obstante, cuando se incluye una dimensión de este tipo en otros tipos de grupos de medida, como en el grupo de medida de cuotas de venta o de presupuestos, generalmente es más apropiado utilizar un nivel de detalle mensual o trimestral.

Para especificar un nivel de detalle para una dimensión de cubo que no sea el predeterminado, debe modificar el atributo de granularidad para una dimensión de cubo como se utiliza en un grupo de medida determinado en la ficha Uso de dimensiones del Diseñador de cubos. Si cambia el nivel de detalle de una dimensión de un grupo de medida específico por un atributo distinto del atributo clave de dicha dimensión, debe garantizar que todos los demás atributos del grupo de mensaje estén directa o indirectamente relacionados con el nuevo atributo de granularidad. Para ello, debe especificar las relaciones de atributo entre todos los demás atributos y el atributo que se ha especificado como atributo de granularidad en el grupo de medida. En este caso, se definen relaciones de atributos adicionales en vez de mover relaciones de atributos. El atributo que se especifica como atributo de granularidad se convierte efectivamente en el atributo de clave del grupo de medida para el resto de atributos de la dimensión. Si no especifica correctamente las relaciones entre los atributos, Analysis Services no podrá agregar los valores de forma correcta, como verá en las tareas de este tema.

Para obtener más información, vea Relaciones de dimensión y Definir relaciones normales y propiedades de las relaciones normales.

En las tareas de este tema, debe agregar un grupo de medida Sales Quotas y definir la granularidad de la dimensión Time en este grupo de modo que sea mensual. Luego debe definir las relaciones de atributo existentes entre el atributo de mes y otros atributos de dimensión para garantizar que Analysis Services agregue los valores correctamente.

Agregar tablas y definir el grupo de medida Sales Quotas

Para agregar tablas y definir el grupo de medida Sales Quotas

  1. Cambie al Diseñador de vistas de origen de datos de la vista de origen de datos Adventure Works DW.

  2. Haga clic con el botón secundario en cualquier punto del panel Organizador de diagramas, haga clic en Nuevo diagrama y, a continuación, especifique Sales Quotas como nombre del nuevo diagrama. Para obtener más información, vea Trabajar con diagramas en una vista de origen de datos (Analysis Services).

  3. Arrastre las tablas Employee, Sales Territory y Time del panel Tablas al panel Diagrama.

  4. Agregue la tabla FactSalesQuota al panel Diagrama haciendo clic con el botón secundario en cualquier punto del panel Diagrama y seleccionando Agregar o quitar tablas.

    Observe que la tabla SalesTerritory está vinculada a la tabla FactSalesQuota a través de la tabla Employee.

  5. Revise las columnas de la tabla FactSalesQuota y, a continuación, explore los datos de la tabla.

    Observe que el nivel de detalle de los datos de esta tabla es trimestre natural, que es el nivel más bajo de detalle de la tabla FactSalesQuota.

  6. En el Diseñador de vistas de origen de datos, cambie la propiedad FriendlyName de la tabla FactSalesQuota por SalesQuotas.

  7. Cambie al Diseñador de cubos para el cubo Tutorial de Analysis Services y haga clic en la ficha Estructura de cubo.

  8. Haga clic con el botón secundario en cualquier punto del panel Medidas, haga clic en Nuevo grupo de medida, haga clic en SalesQuotas en el cuadro de diálogo Nuevo grupo de medida y, a continuación, haga clic en Aceptar.

    Aparece el grupo de medida Sales Quotas en el panel Medidas. Observe que, en el panel Dimensiones, también se define una dimensión de cubo Time nueva, basada en la dimensión Time de la base de datos. Se define una nueva dimensión de cubo relacionada con el tiempo porque Analysis Services no sabe qué dimensión de las existentes en el cubo y relacionada con el tiempo debe relacionar con la columna TimeKey de la tabla de hechos FactSalesQuota subyacente del grupo de medida Sales Quotas. Cambiará este valor más adelante en otra tarea de este tema.

  9. Expanda el grupo de medida Sales Quotas.

    Observe que las nuevas medidas están definidas.

  10. En el panel Medidas, seleccione Sales Amount Quota y, a continuación, establezca el valor de la propiedad FormatString en Currency en la ventana Propiedades.

  11. Seleccione la medida Sales Quotas Count y, a continuación, establezca el valor para la propiedad FormatString en #,# en la ventana Propiedades.

  12. Suprima la medida Calendar Quarter del grupo de medida Sales Quotas.

    Analysis Services ha detectado la columna que subyace en la medida Calendar Quarter como columna que contiene medidas. No obstante, esta columna y la columna CalendarYear contienen los valores que más adelante en este tema utilizará para vincular el grupo de medida Sales Quotas con la dimensión Time.

  13. En el panel Medidas, haga clic con el botón secundario en el grupo de medida Sales Quotas y luego haga clic en Nueva medida. Para obtener más información, vea Definir y configurar una medida.

    Se abre el cuadro de diálogo Nueva medida, que contiene las columnas de origen disponibles para una medida con un tipo de uso Suma.

  14. En el cuadro de diálogo Nueva medida, seleccione Recuento distinto en la lista Uso, compruebe que SalesQuotas está seleccionado en la lista Tabla de origen, seleccione EmployeeKey en la lista Columna de origen y haga clic en Aceptar.

    Observe que la medida se crea en un grupo de medida nuevo denominado Sales Quotas 1. A fin de maximizar el rendimiento del procesamiento, en Microsoft SQL Server 2005 se crean medidas de recuento distintas en los grupos de medida correspondientes.

  15. Cambie el valor de la propiedad Name de la medida Employee Key Distinct Count por Sales Person Count y, a continuación, establezca el valor de la propiedad FormatString en #,#.

Examinar las medidas del grupo de medida Sales Quota por tiempo

Para examinar las medidas del grupo de medida Sales Quota por tiempo

  1. En el menú Generar, haga clic en Implementar Analysis Services Tutorial.

  2. Cuando la implementación haya finalizado correctamente, haga clic en la ficha Examinador del Diseñador de cubos para el cubo Tutorial de Analysis Services y, a continuación, haga clic en Volver a conectar.

  3. Borre todas las jerarquías y las medidas del panel Datos y luego borre el miembro de la dimensión del panel Filtro.

  4. Expanda el grupo de medida Sales Quotas del panel Metadatos y luego agregue la medida Sales Amount Quota al área de datos.

  5. Agregue la jerarquía definida por el usuario Sales Territories de la dimensión Sales Territory al área de columna.

    Observe que la dimensión de cubo Sales Territory no está relacionada, directa ni indirectamente, con la tabla de hechos Sales Quota, como se muestra en la imagen siguiente.

    Dimensión del cubo Sales Territory

    En la tarea siguiente de este tema definirá una relación de dimensión de referencia entre esta dimensión y esta tabla de hechos.

  6. En el panel Datos, haga clic en la flecha abajo que aparece junto a Sales Territory Group y, a continuación, desactive todas las casillas de verificación excepto la que aparece junto a North America, para cambiar los miembros de dimensión que aparecen en Sales Territory Group a North America.

  7. En el panel Metadatos, expanda Time y luego Fiscal.

  8. Agregue la jerarquía de usuario Time.Fiscal Time al área de filas y, a continuación, haga clic en la flecha abajo que aparece junto a Fiscal Year en el panel Datos y desactive todas las casillas de verificación excepto FY 2004 para mostrar sólo el año fiscal 2004.

  9. En el panel Datos, expanda FY 2004, H1 FY 2004, Q1 FY 2004 y July 2003.

    Observe que sólo aparece el miembro July 2003 del nivel Month, en lugar de los miembros July, 2003, August, 2003 y September, 2003 del nivel Month, y que sólo aparece el miembro July 1, 2003 del nivel Date, en lugar de todos los 31 días. Este comportamiento se produce porque el nivel de detalle de los datos de la tabla de hechos es el nivel trimestral y el nivel de detalle de la dimensión Time es el nivel diario. Cambiará este comportamiento en la siguiente tarea de este tema.

    Observe también que el valor de Sales Amount Quota para los niveles de mes y día es el mismo valor que aparece en el nivel de trimestre, $13.733.000,00. Esto es así porque el nivel más bajo de datos del grupo de medida Sales Quotas se encuentra en el nivel de trimestre. Cambiará este comportamiento en la lección 6.

    En la imagen siguiente se muestran los valores para Sales Amount Quota.

    Valores de Sales Amount Quota

Definir las propiedades de uso de dimensiones para el grupo de medida Sales Quotas

Para definir las propiedades de uso de dimensiones para el grupo de medida Sales Quotas

  1. Abra el Diseñador de dimensiones para la dimensión Employee y, a continuación, agregue el atributo SalesTerritoryKey basado en la columna SalesTerritoryKey de la tabla Employee como atributo oculto, no optimizado y no ordenado.

    Este atributo es necesario para vincular la dimensión Sales Territory con los grupos de medida Sales Quotas y Sales Quotas 1 como dimensión referenciada.

  2. En el Diseñador de cubos para el cubo Tutorial de Analysis Services, haga clic en la ficha Uso de dimensiones y, a continuación, revise el uso de las dimensiones en los grupos de medida Sales Quotas y Sales Quotas 1.

    Observe que las dimensiones de cubo Employee y Time están vinculadas a los grupos de medida Sales Quotas y Sales Quotas 1 a través de relaciones regulares. Observe también que la dimensión de cubo Sales Territory no está vinculada a ninguno de estos grupos de medida.

  3. Defina una relación referenciada y materializada entre la dimensión Sales Territory y el grupo de medida Sales Quotas, especificando Employee como dimensión intermedia, Sales Territory Region como atributo de dimensión de referencia y SalesTerritoryKey como atributo de dimensión intermedia. (La columna de clave para el atributo Sales Territory Region es la columna SalesTerritoryKey.)

  4. Repita el paso anterior para el grupo de medida Sales Quotas 1.

  5. Suprima la dimensión de cubo Time.

    En lugar de tener cuatro dimensiones de cubo relacionadas con el tiempo, utilizará la dimensión de cubo Order Date del grupo de medida Sales Quotas como fecha a partir de la que se dimensionarán las cuotas de ventas. También utilizará esta dimensión de cubo como dimensión de fecha principal del cubo.

  6. En la lista Dimensiones, cambie el nombre de la dimensión de cubo Time (Order Date) por Time (Date).

    Cambiar el nombre de la dimensión de cubo Order Date por Date facilita a los usuarios comprender su función como dimensión de fecha principal del cubo.

  7. Haga clic en el botón de puntos suspensivos () de la celda que se encuentra en la intersección de la dimensión Sales Quotas y la dimensión Time (Date).

  8. En el cuadro de diálogo Definir relación, seleccione Regular en la lista Seleccionar tipo de relación.

  9. En la lista Atributo de granularidad, seleccione Calendar Quarter.

    Observe que aparece un mensaje de advertencia para notificarle que, puesto que ha seleccionado un atributo sin clave como atributo de granularidad, debe especificar todos los demás atributos como propiedades de miembro para asegurarse de que estén relacionados directa o indirectamente con el atributo de granularidad.

    En la imagen siguiente se muestra el cuadro de diálogo Definir relación.

    Cuadro de diálogo Definir relación

  10. En el área Relación del cuadro de diálogo Definir relación, vincule las columnas de dimensión CalendarYear y CalendarQuarter de la tabla que subyace en la dimensión de cubo Time (Date) con las columnas CalendarYear y CalendarQuarter de la tabla que subyace en el grupo de medida Sales Quota y, a continuación, haga clic en Aceptar.

    [!NOTA] Calendar Quarter se define como atributo de granularidad de la dimensión de cubo Time (Date) en el grupo de medida Sales Quotas, pero el atributo Date sigue siendo el atributo de granularidad para los grupos de medida Internet Sales y Reseller Sales.

  11. Repita los cuatro pasos anteriores para el grupo de medida Sales Quotas 1.

    En la imagen siguiente se muestra Calendar Quarter definido como atributo de granularidad para la dimensión de cubo Time (Date) para ambos grupos de medida, Sales Quotas y Sales Quotas 1.

    Calendar Quarter definido como atributo de granularidad

Definir las relaciones de atributo entre el atributo Calendar Quarter y otros atributos de dimensión de la dimensión Time

Para definir las relaciones de atributo entre el atributo Calendar Quarter y otros atributos de dimensión de la dimensión Time

  1. Cambie al Diseñador de dimensiones para la dimensión Time y haga clic en Estructura de dimensión.

  2. En el panel Atributos, expanda los atributos siguientes:

    • Calendar Quarter
    • Calendar Semester
    • Fiscal Quarter
    • Fiscal Semester

    Observe que, aunque Calendar Year está vinculado a Calendar Quarter a través del atributo Calendar Semester, los atributos de calendario fiscal están vinculados solamente el uno al otro; no están vinculados al atributo Calendar Quarter y, por consiguiente, no se agregan correctamente al grupo de medida Sales Quotas.

  3. Arrastre el atributo Fiscal Quarter a la etiqueta <nueva relación de atributos> del atributo Calendar Quarter.

    Observe que aparece un mensaje de advertencia para indicarle que la dimensión Time contiene una o varias relaciones de atributos redundantes que pueden impedir que se agreguen datos cuando se usa un atributo sin clave como atributo de granularidad. La advertencia sugiere que la relación del atributo Fiscal Quarter con el atributo Month Name no es necesaria.

  4. Elimine la relación del atributo Fiscal Quarter con el atributo Month Name.

    La advertencia anterior desaparece.

Examinar las medidas del grupo de medida Sales Quota por tiempo

Para examinar las medidas del grupo de medida Sales Quota por tiempo

  1. En el menú Generar, haga clic en Implementar Analysis Services Tutorial.

  2. Cuando la implementación haya finalizado correctamente, haga clic en la ficha Examinador del Diseñador de cubos para el cubo Tutorial de Analysis Services y, a continuación, haga clic en Volver a conectar.

    Observe que la medida Sales Amount Quota ahora está bien dimensionada por Sales Territory, porque la dimensión Sales Territory ahora está definida como dimensión a la que se hace referencia.

  3. Agregue la jerarquía de usuario Date.FiscalTime al área de filas de la dimensión de cubo Date y, a continuación, haga clic en la flecha abajo que aparece junto a Fiscal Year y desactive todas las casillas de verificación excepto FY 2004 para mostrar solamente el año fiscal 2004.

  4. Haga clic en Aceptar.

  5. Expanda FY 2004, H1 FY 2004 y Q1 FY 2004.

    Observe que las medidas del grupo de medida Sales Quotas están bien dimensionadas. Observe también que se muestra cada miembro del nivel de trimestre fiscal, y que el valor de cada miembro es el valor del nivel de trimestre. Este comportamiento se produce porque el nivel de detalle de los datos de la tabla de hechos es el nivel trimestral y el nivel de detalle de la dimensión Time también es el nivel de trimestre. En la lección 6, aprenderá a asignar el importe trimestral proporcionalmente a cada mes.

    En la imagen siguiente se muestra el Diseñador de cubos del cubo Tutorial de Analysis Services, con el grupo de medida Sales Quota bien dimensionado.

    Grupo de medida Sales Quota con dimensiones correctas

[!NOTA] Para disponer de un proyecto completo de la lección 5, descargue e instale los ejemplos actualizados. Para obtener más información, vea la sección sobre cómo obtener ejemplos actualizados en Instalar ejemplos.

Lección siguiente

Lección 6: Definir los cálculos

Vea también

Otros recursos

Relaciones de dimensión
Definir relaciones normales y propiedades de las relaciones normales

Ayuda e información

Obtener ayuda sobre SQL Server 2005