Mi ex colega Jon podría estar pasando demasiado tiempo publicando bajo un seudónimo comentarios estupidos en blogspero merece una ración extra de mousse de chocolate para encontrar este problema con relaciones de atributos redundantes: ¡es algo que todos los que diseñan cubos AS2005 deben tener en cuenta!
Imagine que tiene una dimensión Geografía con tres atributos: Ciudad (el atributo clave), Estado y País, donde cada país tiene muchos estados y cada estado tiene muchas ciudades. A estas alturas, probablemente ya sepa que si creó su dimensión con el asistente, es probable que su dimensión tenga dos relaciones predefinidas, entre Ciudad y estado y Ciudad y país, y necesita modificar eso para que haya ciudad-estado y estado. -relaciones entre países para lograr un rendimiento óptimo y ayudar en el diseño de la agregación. AS2005 entiende las relaciones transitivas entre los atributos y, por lo tanto, incluso si solo hay dos relaciones integradas en su dimensión, sabe que debido a que la ciudad está relacionada con el estado y el estado está relacionado con el país, existe una relación transitiva entre la ciudad y el país.
PERO, ¿sabías que pueden pasar cosas malas si realmente construyes la relación entre la ciudad y el campo en tu dimensión? Antes de que Jon se enterara, me di cuenta de que el único efecto era que esta relación redundante podía aumentar el tamaño de la dimensión y aumentar los tiempos de procesamiento. Sin embargo, resulta que hay otros dos efectos secundarios potencialmente graves:
1) Los ámbitos del script MDX pueden incluir celdas adicionales inesperadas. Entonces, por ejemplo, si asigna valores a un subcubo en su secuencia de comandos MDX (y la mayoría de los cálculos creados por los asistentes en BI Dev Studio lo hacen), puede ver resultados incorrectos con relaciones de atributos redundantes en su lugar.
2) La consulta de datos de hechos puede omitir algunos segmentos o devolver valores nulos en algunos atributos relacionados cuando el grupo de métricas tiene granularidad en un atributo diferente del atributo clave.
Aparentemente lo que sucede es que, usando nuestro ejemplo, la relación redundante entre ciudad y campo haría que AS ignorara la relación legítima entre estado y país. Aún más confuso, si tuviera que crear una jerarquía de usuarios de país a estado a ciudad, el comportamiento incorrecto desaparecería.
Entonces, la moraleja de todo esto es ser extremadamente cuidadoso al diseñar sus dimensiones y no dejar que ninguna relación de atributo redundante permanezca allí. Este problema no se solucionará en SP1, pero habrá una advertencia en la interfaz de usuario del editor de dimensiones cuando se detecten relaciones redundantes, lo que debería informar a más personas.
Aparte de Jon, gracias también a Matt Carroll y Marius Dumitru del equipo de desarrollo de AS por tomarse el tiempo para explicarme lo que está pasando aquí.