En los últimos meses me he dado cuenta que es frecuente encontrar clientes donde el mismo atributo aparece varias veces dentro de una misma dimensión. Los motivos que se argumentan son varios, pero las consecuencias no están muy claras en todos los casos.

Las situaciones que más he visto son las siguientes:

  • El atributo se duplica tantas veces como es usado en las distintas jerarquías que se definen dentro de la dimensión. Esta práctica realmente debe ser eliminada, no es necesario duplicar el atributo, ya que los niveles de las jerarquías pueden ser renombrados sin afectar al nombre del atributo que las generan. Además, si el atributo duplicado es la clave de la tabla, esto puede afectar drásticamente al tiempo de procesamiento de la dimensión ya que SSAS consultará n-veces la tabla completa (una por cada una de las veces que tengamos el atributo duplicado en nuestra dimensión).
  • Definir una jerarquía adicional de un solo nivel por cada atributo que se define en la dimensión. En esta situación el tiempo de procesamiento no se ve afectado por accesos innecesarios a la base de datos, pero si por la generación de estructuras jerárquicas adicionales innecesarias en muchos casos (ej: Dimensión Cliente donde generamos una jerarquía para el atributo teléfono). ¿Qué beneficio aporta esta práctica?
    • Desde el punto de vista de usuario, la etiqueta del elemento All deja de ser la misma etiqueta del elemento All de la dimensión y pasa a tener su propia etiqueta. Ej: Atributo Edad dentro de la dimensión Cliente, podemos definir un elemento ‘Todas las Edades’ para ese atributo en lugar de utilizar el elemento ‘Todos los clientes’. Esto sucede porque se está generando una jerarquía independiente para el atributo.
    • Desde el punto de vista de rendimiento, el atributo entra dentro de los elementos candidatos a ser utilizados dentro de la agregación del cubo. Con este punto hay que tener especial cuidado, ya que lo que aparentemente parece una ventaja, puede volverse en nuestra contra. SSAS determina si un atributo se va a usar como parte de una agregación en función del numero de valores distintos que se estima para ese atributo, si el número es muy elevado, no se va a usar para agregar aunque generemos una jerarquía independiente, pero si está en un rango medio de valores puede ser uno de los atributos elegidos para generar la agregación y puede afectar al rendimiento de procesamiento del cubo. (Se puede encontrar más detalles sobre cómo se eligen los atributos para generar agregados en la guía de mejora de rendimiento para SSAS)
  • Se habilita la propiedad AttributeHierarchyEnable para todos los atributos. ¿Realmente el usuario va a analizar la información por todos los atributos de la dimensión? Debemos evitar habilitar esta propiedad cuando el atributo no vaya a ser utilizada como elemento de filtrado o agrupación. Solo hay una excepción, si necesitamos mostrar ese atributo en los resultados de una acción drillthrough, entonces dicha propiedad debe estar habilitada para que podamos incluirla dentro del conjunto de datos a devolver.
0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Backups y restores “al vuelo” sin almacenamiento intermedio

Seguramente los más “senior” recordarán la posibilidad que existía en versiones SQL Server antiguas de realizar backups utilizando named pipes. Cuando hablo de versiones antiguas, me refiero a “antiguas de verdad”, ya que esta funcionalidad fue marcada como obsoleta en SQL Server 7, se mantuvo en SQL 2000 pero ya se eliminó de SQL Server 2005 y posteriores.

Primeros pasos: Creación de bases de datos en Apache Hive en HDInsight (en la nube) y paths (rutas – HDFS o WASB)

Anteriormente hemos conectado con la herramienta cliente (CLI) a HDInsight Developer Preview; en esta ocasión vamos a hacerlo directamente en la distribución disponible de HDInsight en Azure. Para crear un cluster de HDInsight en Windows Azure debes seguir los pasos descritos en este enlace. Esta publicación asume que has creado correctamente tu cluster HDInsight en Windows Azure.