Share via


Ordenar los miembros de atributo en función de un atributo secundario

En la lección 3, aprendió a ordenar los miembros de atributo en función de su nombre o valor de clave. También aprendió a utilizar una clave de miembro compuesta para afectar a todos los miembros de atributo y al criterio de ordenación. Para obtener más información, vea Modificar la dimensión Time. No obstante, es posible que en algunas ocasiones tenga que ordenar los miembros del atributo en función de un atributo secundario para conseguir el orden deseado, por ejemplo, si ni el nombre ni la clave del atributo ofrecen el orden que desea. Para poder ordenar un atributo en función del nombre o la clave de un atributo secundario, debe utilizar un atributo secundario que esté relacionado con el atributo.

Las relaciones de atributo definen las relaciones o dependencias que existen entre los atributos. En una dimensión que se basa en una única tabla relacional, todos los atributos están generalmente relacionados entre sí a través del atributo de clave. Esto es así porque todos los atributos de una dimensión proporcionan información sobre los miembros vinculados por el atributo de clave de la dimensión a los hechos de la tabla de hechos de cada grupo de medida relacionado. En una dimensión que se basa en varias tablas, los atributos generalmente están vinculados en función de la clave de combinación entre las tablas.

No obstante, es posible que los usuarios estén interesados en información adicional sobre los miembros de un nivel determinado de una jerarquía. El Diseñador de dimensiones permite definir relaciones adicionales entre atributos o cambiar las relaciones predeterminadas para incrementar el rendimiento. La limitación principal que existe al crear una relación de atributo es asegurarse de que el atributo al que se hace referencia no tiene más de un valor para ningún miembro del atributo con el que está relacionado. Cuando se define una relación entre dos atributos, se puede definir la relación como rígida o flexible, en función de si las relaciones entre los miembros cambiarán con el tiempo. Por ejemplo, un empleado puede cambiar de región de venta, pero una ciudad nunca pasará a formar parte de una provincia distinta. Si se define una relación como rígida, las agregaciones de atributos no se calculan de nuevo cada vez que se procesa la dimensión de forma incremental. No obstante, si la relación entre los miembros cambia, la dimensión debe procesarse por completo. Para obtener más información, vea Relaciones de atributo, Definir y configurar una relación de atributo, Configurar propiedades de relación de los atributos y Especificar relaciones de atributo entre los atributos de una jerarquía definida por el usuario.

En las tareas de este tema, definirá un atributo nuevo en la dimensión Time basado en una columna existente de la tabla de dimensiones subyacente. Utilizará este atributo nuevo para ordenar los miembros del mes natural cronológicamente en lugar de ordenarlos alfabéticamente. También definirá un atributo nuevo en la dimensión Customer en función del cálculo con nombre que utilizará para ordenar los miembros del atributo Commute Distance. En las tareas del tema siguiente, aprenderá a utilizar las relaciones de atributo para incrementar el rendimiento de las consultas.

Definir una relación de atributo y el criterio de ordenación en la dimensión Time

Para definir una relación de atributo y el criterio de ordenación en la dimensión Time

  1. Abra el Diseñador de dimensiones para la dimensión Time y luego revise la propiedad OrderBy del atributo Month Name en la ventana Propiedades.

    Observe que los miembros del atributo Month Name están ordenados por sus valores de clave.

  2. Cambie a la ficha Examinador, compruebe que Calendar Time está seleccionado en la ficha Jerarquía y, a continuación, expanda los niveles de la jerarquía definida por el usuario para revisar el criterio de ordenación de los meses naturales.

    Observe que los miembros de la jerarquía de atributo están ordenados en función de los valores ASCII de las claves de sus miembros, que son el mes y el año. En este caso, si se ordena por el nombre o la clave del atributo, los meses naturales no se ordenan cronológicamente. Para resolver este problema, ordenará los miembros de la jerarquía de atributo en función de un atributo nuevo, el atributo MonthNumberOfYear. Creará este atributo tomando como base una columna de la tabla de dimensiones DimTime.

  3. Cambie a la ficha Estructura de dimensión de la dimensión Time, haga clic con el botón secundario en MonthNumberOfYear en el panel Vista de origen de datos y, a continuación, haga clic en Nuevo atributo de la columna.

  4. En el panel Atributos, seleccione Month Number Of Year y, a continuación, establezca la propiedad AttributeHierarchyEnabled en False en la ventana Propiedades, la propiedad AttributeHierarchyOptimizedState en NotOptimized y la propiedad AttributeHierarchyOrdered en False.

    Estos parámetros ocultarán el atributo ante los usuarios, lo que supondrá un ahorro de tiempo de procesamiento; además, deben establecerse de este modo porque el nuevo atributo sólo se utilizará para ordenar los miembros de otro atributo.

[!NOTA] Al ordenar alfabéticamente las propiedades de la ventana Propiedades se simplificará esta tarea ya que las tres propiedades aparecerán una al lado de la otra.

  1. Expanda Fecha en el panel Atributos.
    Observe que todos los atributos de la dimensión Time están relacionados directamente con el atributo Date, que es el miembro de clave que relaciona los miembros de la dimensión con los hechos de los grupos de medida relacionados.
  2. Expanda Month Name.
    Observe que no hay ninguna relación definida entre el atributo Month Name y el atributo Month Number Of Year.
  3. Arrastre el atributo Month Number Of Year a la etiqueta <nueva relación de atributos> del atributo Month Name.
    Aunque podría haber definido una relación adicional, el movimiento de la relación existente producirá un rendimiento de procesamiento más eficaz y reducirá la redundancia. Ahora ha definido una relación entre el atributo Month Number Of Year y el atributo Month Name. En la ventana Propiedades, observe que el valor predeterminado de la propiedad RelationshipType de la relación del atributo Month Number Of Year es Flexible.
  4. En la ventana Propiedades, cambie el valor de la propiedad RelationshipType por Rígida.
    Las relaciones entre los miembros del atributo Month Name y del atributo Month Number Of Year no cambiarán con el tiempo. Como resultado, Analysis Services no quitará las agregaciones de esta relación durante el procesamiento incremental. Si se produce un cambio, el procesamiento generará un error durante el procesamiento incremental y tendrá que realizar el proceso completo de la dimensión. Ahora ya puede establecer el criterio de ordenación de los miembros de Month Name.
    En la imagen siguiente se muestra la propiedad RelationshipType establecida en Rígida para la relación del atributo Month Number Of Year del atributo Month Name.
    Propiedad RelationshipType establecida en Rigid
  5. Seleccione Month Name en el panel Atributos y, a continuación, cambie el valor de la propiedad OrderBy de la ventana Propiedades por AttributeKey y el valor de la propiedad OrderByAttribute por Month Number Of Year.
    En la imagen siguiente se muestran los cambios realizados en las propiedades de la ventana Propiedades.
    Cambios de las propiedades OrderBy y OrderByAttribute
  6. En el menú Generar, haga clic en Implementar Tutorial de Analysis Services.
  7. Cuando la implementación haya finalizado correctamente, diríjase a la ficha Examinador para la dimensión Time, haga clic en Volver a conectar y, a continuación, examine las jerarquías de usuario Calendar Time y Fiscal Time para comprobar que los meses están ordenados cronológicamente.
    Observe que los meses ahora aparecen en orden cronológico, como se muestra en la imagen siguiente.
    Jerarquía de usuarios modificada en orden cronológico

Definir las relaciones de atributo y el criterio de ordenación en la dimensión Customer

Para definir las relaciones de atributo y el criterio de ordenación en la dimensión Customer

  1. Cambie a la ficha Estructura de dimensión del Diseñador de dimensiones para la dimensión Customer.

  2. En el panel Atributos, seleccione el atributo Commute Distance y revise la propiedad OrderBy de la ventana Propiedades.

  3. Cambie a la ficha Examinador y examine los miembros de la jerarquía de atributo Commute Distance.

    Observe que los miembros de la jerarquía de atributo están ordenados en función de los valores ASCII de la clave de miembro. En este caso, si se ordena por el nombre o la clave del atributo, las distancias para ir al trabajo no se ordenan de menor a mayor. En esta tarea, debe ordenar los miembros de la jerarquía de atributo en función del cálculo con nombre CommuteDistanceSort que atribuye el número de orden apropiado a cada valor distinto de la columna. Para ahorrar tiempo, este cálculo con nombre ya se ha agregado a la tabla Customer de la vista del origen de datos Adventure Works DW; puede cambiar a esta vista de origen de datos para ver la secuencia de comandos SQL que se utiliza en este cálculo con nombre. Para obtener más información, vea Definir cálculos con nombre en una vista de origen de datos (Analysis Services).

    En la imagen siguiente se muestran los miembros de la jerarquía de atributo Commute Distance, ordenados según los valores ASCII de la clave de miembro.

    Jerarquía del atributo Commute Distance

  4. Cambie a la ficha Estructura de dimensión del Diseñador de dimensiones de la dimensión Customer, haga clic con el botón secundario en CommuteDistanceSort en la tabla Customer del panel Vista de origen de datos y, a continuación, haga clic en Nuevo atributo de la columna.

  5. En el panel Atributos, seleccione Commute Distance Sort y establezca la propiedad AttributeHierarchyEnabled de este atributo en False en la ventana Propiedades, la propiedad AttributeHierarchyOptimizedState en NotOptimized y la propiedad AttributeHierarchyOrdered en False.

    Estos parámetros ocultarán el atributo ante los usuarios, lo que supondrá un ahorro de recursos de procesamiento; además, deben establecerse de este modo porque el nuevo atributo sólo se utilizará para ordenar los miembros de otro atributo.

  6. En el panel Atributos, expanda Full Name.

    Observe que todos los atributos de la dimensión Customer que se derivan de la tabla Customer de la vista de origen de datos del Tutorial de Analysis Services están relacionados a través de este atributo.

  7. Expanda Geography.

    Observe que todos los atributos de la dimensión Customer que se derivan de la tabla Geography de la vista de origen de datos del Tutorial de Analysis Services están relacionados a través del atributo Geography.

  8. Seleccione Geography y, a continuación, establezca su propiedad AttributeHierarchyVisible en False en la ventana Propiedades, la propiedad AttributeHierarchyOptimized en NotOptimized y la propiedad AttributeHierarchyOrdered en False.

    Puesto que este atributo no se utilizará para examinar, estos valores se ocultarán ante los usuarios, lo que supondrá un ahorro en el tiempo de procesamiento. Una jerarquía de atributo debe estar habilitada si tiene propiedades de miembro.

  9. En el panel Atributos, expanda Commute Distance.

    Observe que no hay ninguna relación definida entre este atributo y el atributo Commute Distance Sort.

  10. Arrastre el atributo Commute Distance Sort a la etiqueta <nueva relación de atributos> del atributo Commute Distance.

    Ahora ha definido una relación entre el atributo Commute Distance y el atributo Commute Distance Sort. En la ventana Propiedades, observe que el valor predeterminado de la propiedad RelationshipType del miembro Commute Distance Sort del atributo Commute Distance es Flexible.

  11. En la ventana Propiedades, cambie el valor de la propiedad RelationshipType por Rígida.

    La relación entre los miembros del atributo Commute Distance y del atributo Commute Distance Sort no cambiará con el tiempo. Ahora ya puede establecer el criterio de ordenación del atributo Commute Distance.

  12. En el panel Atributos, seleccione Commute Distance y cambie el valor de la propiedad OrderBy de la ventana Propiedades por AttributeKey, y el valor de la propiedad OrderByAttribute por Commute Distance Sort.

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

  14. Cuando la implementación haya finalizado correctamente, vaya a la ficha Examinador del Diseñador de dimensiones de la dimensión Customer, haga clic en Volver a conectar y examine la jerarquía de atributo Commute Distance.

    Observe que los miembros de la jerarquía de atributo ahora están clasificados en un orden lógico en función de una distancia cada vez mayor, como es muestra en la imagen siguiente.

    Jerarquía del atributo Commute Distance ordenada de nuevo

Siguiente tarea de la lección

Especificar relaciones de atributo entre los atributos de una jerarquía definida por el usuario