Lección 5-4: Definición de la granularidad de dimensión dentro de un grupo de medida
Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
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 solo 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. Aunque podría definir una nueva dimensión de base de datos como una dimensión de tiempo con este grano diferente, hay una manera más sencilla de SQL Server Analysis Services.
De forma predeterminada, en SQL Server Analysis Services, cuando se usa una dimensión dentro de un grupo de medida, el nivel de los datos de esa dimensión se basa en el atributo 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 pestaña 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 atributo adicionales en vez de mover relaciones de atributo. El atributo que se especifica como atributo de granularidad se convierte efectivamente en el atributo clave del grupo de medida para el resto de atributos de la dimensión. Si no especifica correctamente las relaciones de atributo, SQL Server Analysis Services no podrá agregar valores correctamente, como verá en las tareas de este tema.
Para obtener más información, consulte Relaciones de dimensióny 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 Date en este grupo de modo que sea mensual. Después, defina las relaciones de atributo entre el atributo month y otros atributos de dimensión para asegurarse de que SQL Server Analysis Services agregue los valores correctamente.
Agregar tablas y definir el grupo de medida Sales Quotas
Cambie a la vista del origen de datos Adventure Works DW 2019 .
Haga clic con el botón derecho en cualquier lugar del panel Organizador de diagramas , haga clic en Nuevo diagramay, después, asigne al diagrama el nombre Sales Quotas.
Arrastre las tablas Employee, Sales Territoryy Date desde el panel Tablas hasta el panel Diagrama .
Agregue la tabla FactSalesQuota al panel Diagrama haciendo clic con el botón derecho 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 .
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.
En el Diseñador de vistas del origen de datos, cambie la propiedad FriendlyName de la tabla FactSalesQuota a SalesQuotas.
Cambie al cubo tutorial de SQL Server Analysis Services y, a continuación, haga clic en la pestaña Estructura del cubo.
Haga clic con el botón derecho en cualquier lugar 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, después, 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 Date nueva, basada en la dimensión Date de la base de datos. Se define una nueva dimensión de cubo relacionada con el tiempo porque SQL Server Analysis Services no sabe cuál de las dimensiones de cubo relacionadas con el tiempo existentes se relaciona con la columna DateKey de la tabla de hechos FactSalesQuota que subyace al grupo de medida Cuotas de ventas. Cambiará este valor más adelante en otra tarea de este tema.
Expanda el grupo de medida Sales Quotas .
En el panel Medidas , seleccione Sales Amount Quotay, a continuación, establezca el valor de la propiedad FormatString en Currency en la ventana Propiedades.
Seleccione la medida Sales Quotas Count (Recuento de cuotas de ventas) y escriba #,# como valor de la propiedad FormatString en el ventana Propiedades.
Suprima la medida Calendar Quarter del grupo de medida Sales Quotas .
SQL Server Analysis Services detectó la columna que subyace a la medida Calendar Quarter como una 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 Date.
En el panel Medidas , haga clic con el botón derecho en el grupo de medida Sales Quotas y luego haga clic en Nueva 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.
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. Las medidas de recuento distintas de SQL Server se crean en sus propios grupos de medida para maximizar el rendimiento del procesamiento.
Cambie el valor de la propiedad Name para la medida Employee Key Distinct Count a Sales Person Count y, a continuación , escriba #,# como valor de la propiedad FormatString .
Examinar las medidas de nuevo en el grupo de medida cuota de ventas por fecha
En el menú Compilar , haga clic en Tutorial de Implementar Analysis Services.
Cuando la implementación se haya completado correctamente, haga clic en la pestaña Explorador del cubo Designer para el cubo tutorial de SQL Server Analysis Services y, a continuación, haga clic en el botón Volver a conectar.
Haga clic en el acceso directo de Excel y, a continuación, haga clic en Habilitar.
En la lista de campos de tabla dinámica, expanda el grupo de medida Sales Quotas y arrastre la medida Sales Amount Quota hasta el área Valores.
Expanda la dimensión Sales Territory y arrastre la jerarquía definida por el usuario Sales Territories hasta las etiquetas de fila.
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.
En la próxima serie de pasos de este tema definirá una relación de dimensión de referencia entre esta dimensión y esta tabla de hechos.
Mueva la jerarquía de usuario Territorios de ventas del área Etiquetas de fila al área Etiquetas de columna.
En la lista de campos de tabla dinámica, seleccione la jerarquía definida por el usuario Sales Territories y haga clic en la flecha hacia abajo de la derecha.
En el filtro, haga clic en la casilla Seleccionar todo para desactivar todas las casillas y elija solo Norteamérica.
En la lista de campos de la tabla dinámica, expanda Date.
Arrastre la jerarquía de usuario Date.Fiscal Date hasta Etiquetas de fila.
En la tabla dinámica, haga clic en la flecha hacia abajo que aparece junto a Etiquetas de fila. Desactive todos los años excepto FY 2008.
Observe que solo aparece el miembro July 2007 del nivel Month , en lugar de los miembros July, 2007, August, 2007y September, 2007 del nivel Month , y que solo aparece el miembro July 1, 2007 del nivel Date en lugar de 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 Date 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.
de
Definir las propiedades de uso de dimensiones para el grupo de medida Sales Quotas
Abra el Diseñador de dimensiones para la dimensión Employee , haga clic con el botón derecho en SalesTerritoryKey en el panel Vista del origen de datos y, después, haga clic en Nuevo atributo de columna.
En el panel Atributos , seleccione SalesTerritoryKeyy, a continuación, establezca la propiedad AttributeHierarchyVisible en False en la ventana de propiedades, la propiedad AttributeHierarchyOptimizedState en NotOptimizedy la propiedad AttributeHierarchyOrdered en False.
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.
En Cubo Designer para el cubo tutorial de SQL Server Analysis Services, haga clic en la pestaña Uso de dimensiones y, a continuación, revise el uso de dimensiones en los grupos de medida Cuotas de ventas y Cuotas de ventas 1.
Observe que las dimensiones de cubo Employee y Date están vinculadas a los grupos de medida Sales Quotas y Sales Quotas 1 a través de relaciones normales. Observe también que la dimensión de cubo Sales Territory no está vinculada a ninguno de estos grupos de medida.
Haga clic en la celda en la intersección de la dimensión Sales Territory y el grupo de medida Sales Quotas y, a continuación, haga clic en el botón Examinar (...). Se abre el cuadro de diálogo Definir relación .
En la lista Seleccionar tipo de relación , seleccione Referenciada.
En la lista Dimensión intermedia , seleccione Employee.
En la lista Atributo de dimensión de referencia , Sales Territory Region.
En la lista Atributo de dimensión intermedia , seleccione Sales Territory Key (la columna de clave para el atributo Sales Territory Region es la columna SalesTerritoryKey).
Compruebe que la casilla Materializar está activada.
Haga clic en OK.
Haga clic en la celda en la intersección de la dimensión Sales Territory y el grupo de medida Sales Quotas 1 y, a continuación, haga clic en el botón Examinar (...). Se abre el cuadro de diálogo Definir relación .
En la lista Seleccionar tipo de relación , seleccione Referenciada.
En la lista Dimensión intermedia , seleccione Employee.
En la lista Atributo de dimensión de referencia , Sales Territory Region.
En la lista Atributo de dimensión intermedia , seleccione Sales Territory Key (la columna de clave para el atributo Sales Territory Region es la columna SalesTerritoryKey).
Compruebe que la casilla Materializar está activada.
Haga clic en OK.
Elimine la dimensión de cubo Date .
En lugar de tener cuatro dimensiones de cubo relacionadas con el tiempo, usará 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.
En la lista Dimensiones , cambie el nombre de la dimensión de cubo Order Date por Date.
Cambiar el nombre de la dimensión de cubo Order Date por Date facilita a los usuarios comprender su rol como dimensión de fecha principal del cubo.
Haga clic en el botón Examinar (...) de la celda en la intersección del grupo de medida Sales Quotas y la dimensión Date .
En el cuadro de diálogo Definir relación , seleccione Regular en la lista Seleccionar tipo de relación .
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 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 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 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.
Repita los cuatro pasos anteriores para el grupo de medida Sales Quotas 1 .
Definir las relaciones de atributo entre el atributo Calendar Quarter y otros atributos de dimensión de la dimensión Date
Cambie a Dimension Designer para la dimensión Date y, a continuación, haga clic en la pestaña Relaciones de atributo.
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 .
En el diagrama, haga clic con el botón derecho en el atributo Calendar Quarter y seleccione Nueva relación de atributo.
En el cuadro de diálogo Crear relación de atributo , el Atributo de origen es Calendar Quarter. Establezca el Atributo relacionado en Fiscal Quarter.
Haga clic en OK.
Observe que aparece un mensaje de advertencia para indicarle que la dimensión Date contiene una o varias relaciones de atributo redundantes que pueden impedir que se agreguen datos cuando se usa un atributo sin clave como atributo de granularidad.
Elimine la relación de atributo entre los atributos Month Name y Fiscal Quarter .
En el menú Archivo, haga clic en Guardar todo.
Examinar las medidas del grupo de medida Sales Quota por fecha
En el menú Compilar , haga clic en Tutorial de Implementar Analysis Services.
Cuando la implementación se haya completado correctamente, haga clic en la pestaña Explorador del cubo Designer para el cubo tutorial de SQL Server Analysis Services y, a continuación, haga clic en Volver a conectar.
Haga clic en el acceso directo de Excel y, a continuación, haga clic en Habilitar.
Arrastre la medida Sales Amount Quota hasta el área Valores.
Arrastre la jerarquía de usuario Territorios de ventas hasta las Etiquetas de columna y, a continuación, filtre en Norteamérica.
Arrastre la jerarquía de usuario Date.FiscalDate hasta Etiquetas de fila y, a continuación, haga clic en la flecha hacia abajo que aparece junto a Etiquetas de fila en la tabla dinámica y desactive todas las casillas excepto FY 2008para mostrar solamente el año fiscal 2008.
Haga clic en Aceptar.
Expanda sucesivamente FY 2008, H1 FY 2008y Q1 FY 2008.
En la imagen siguiente se muestra una tabla dinámica para el cubo tutorial de SQL Server Analysis Services, con el grupo de medida Cuota de ventas dimensionado correctamente.
Observe que cada miembro del nivel de trimestre fiscal tiene el mismo valor que el nivel de trimestre. Usando Q1 FY 2008 como ejemplo, la cuota de $9.180.000, 00 para Q1 FY 2008 es también el valor de cada uno de sus miembros. 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 Date también es el nivel de trimestre. En la lección 6, aprenderá a asignar el importe trimestral proporcionalmente a cada mes.
el
Lección siguiente
Consulte también
Relaciones de dimensión
Definir relaciones normales y propiedades de las relaciones normales
Trabajar con diagramas en el Diseñador de vistas del origen de datos (Analysis Services)