Recientemente nos hemos visto involucrados en un proyecto SSAS Multidimensional en el que existía una dimensión de cuentas padre-hijo bastante compleja y con un operador unario por en medio. Es por esto que nos hemos decidido a describir brevemente la implementación por defecto de SSAS y la que utilizamos finalmente para mejorar el rendimiento.

  • Implementación nativa padre-hijo + operador unario de SSAS: Esta es posiblemente la manera más rápida y sencilla de implementar la jerarquía de cuentas. Por contra, a poco que nuestro proyecto sea algo complejo su rendimiento puede caer drásticamente.

Para usarla solo necesitamos que el origen de la dimensión tenga una relación padre-hijo y por supuesto el operador unario.

  • Jerarquía aplanada + Operador unario: En lugar de definir en SSAS una jerarquía padre – hijo, si previamente aplanamos la jerarquía podemos definirla como una jerarquía “normal” (de la misma forma que una jerarquía de año, mes y día). Podemos seguir usando el operador unario nativo que ofrece SSAS, pero no es lo más eficiente.
  • Jerarquía aplanada + “Factor”: Si el rendimiento de la implementación nativa de la jerarquía padre-hijo + operador unario se nos antoja insuficiente podemos quitarle el trabajo que se le atraganta a SSAS. Sin embargo, la siguiente aproximación tiene un problema, perdemos el control sobre las cuentas que tienen el operador unario “~” y que no deben agregar hacia arriba. Si tenemos este tipo de cuentas deberemos crear distintas jerarquías o tratarlas de alguna manera con MDX.

Para esta aproximación usaremos la jerarquía aplanada y una tabla de hechos donde definimos el operador unario como 1 o -1 (en función de si era + o -) y el id de cuenta. De esta forma, relacionamos esta tabla en el cubo por el id de cuenta y la medida se multiplicará por el “factor”, que le cambiará el signo para que sume o reste.

Cálculos de tiempo personalizados

Si para ciertas cuentas no queremos sumar en los cálculos temporales, sino hacer otra operación, por ejemplo, la media, podemos definir una columna (TBAverage) que para cada cuenta indique si suma (0) o hace media (1). La usaremos en el cubo como una medida que comprobaremos para cada nivel para detectar si esa cuenta debe sumar o hacer media para los cálculos temporales.

A continuación, puedes ver la presentación de la charla ‘Hilando fino en SSAS multidimensional’ del SolidQ Summit 2018:

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

Power BI embedded: Tus informes se vuelven omnipresentes

Crear reportes es esencial, pero, de nada sirve si no puedes compartirlos. Además de ver formas básicas de embeber un reporte de Power BI, esta sesión se centrará en cómo mostrar reportes dentro de sus propias aplicaciones web/móviles para compartir información con gente que está dentro y fuera de su organización (sin necesidad de cuenta de Power BI). Se trata brevemente Power BI Premium y Azure Power BI Embedded, así como otros temas relacionados con el licenciamiento.

Carga de Slowly Changing Dimensions y tabla de Hechos con atributos de Tipo 2 (Parte 2 de 3)

Este es el segundo post de la serie en el que explicaremos como cargar nuestra tabla de Hechos a partir de una dimensión con atributos de Tipo 2, usando dos maneras diferentes, una de ellas será mediante un componente “Look Up” con caché parcial y la otra opción será usando un componente “Merge Join” con un “Conditional Split” para seleccionar el registro que se encuentra en el rango de fechas correcto. Para mas información sobre qué es un atributo de Tipo 2 y sobre como cargar la dimensión que usaremos en este ejemplo puedes consultar el primer post de la serie.