El Rincon del BI

Descubriendo el Business Intelligence…

14.6.2. Reporting en Microstrategy 9 (II).

Publicado por respinosamilla en 7 Febrero 2010

Inserción de calculos. Porcentajes sobre Total y Transformaciones.

Microstrategy nos permite incluir en el informe cálculos que se realizan sobre los valores de las columnas devueltas al ejecutar el análisis. Es decir, se realizan después de la consulta sobre la base de datos, en el momento en el que el motor análitico va a visualizar los resultados. Esto nos puede ser util para incluir nuestros propios calculos que no tienen porque tener un indicador asociado y definido en el metadata.

Veamos un ejemplo:

Partiendo del informe de ventas por Año, Trimestre y Target (segmento destino del producto), en el cual se visualizan el importe neto de ventas, las unidades, el margen y el numero de pedidos contabilizados en el sistema, queremos obtener el numero de unidades medidas por pedido y el importe medio de cada pedido. El informe original es el siguiente:

Ventas por Año, Trimestre y Target de Producto

Para añadir una columna calculada, seleccionaremos la opción Insertar –> Calculo. Nos aparecera el editor de indicadores donde podremos definir la formula de calculo de la nueva columna. En el editor nos aparecen unica y exclusivamente los indicadores del informe y los atributos (también los podremos utilizar en el calculo, por ejemplo, para obtener un recuento de sus valores).

Editor columnas calculadas

En nuestro ejemplo, añadimos tres nuevas columnas. Una de ellas, la Media de Unidades por Pedido fruto de la división del total de unidades y el numero de pedidos. La otra, la Media de Ingresos por Pedido, que se calcula dividiendo el Importe Neto por el número de pedidos. Finalmente, añadimos el calculo del Margen Porcentual, con el objetivo de ver como se comportan los totalizadores de las columnas calculadas (el indicador Margen% ya lo tenemos definido en nuestro catalogo de indicadores). El informe con los nuevos calculos sería el siguiente:

Ventas por Año, Trimestre y Target con columnas calculadas

Podemos ver como aparecen las nuevas columnas en el informe. A diferencia de los indicadores, los campos de totalización para estas columnas son calculados también en la sección de totales y subtotales. Por ejemplo, para la columna %MargenB, se va calculado su resultado en cada fila. A nivel de subtotal, no se suman las diferentes cantidades de cada linea, sino que se recalcula con los importes de los subtotales y totales de los campos implicados en el cálculo. Esto nos puede ser útil en determinados casos.

Ademas de los campos calculados, Microstrategy nos permite insertar otros campos con utilidad miscelanea, que pueden ser:

  • Porcentaje sobre total: para un indicador determinado, podemos añadir un nuevo indicador calculado donde aparezca el peso de su valor con respecto al total general o con respecto a los totales en un determinado nivel de desglose del informe. En nuestro ejemplo, podriamos haber incluido el Porcentaje sobre Total a nivel de Trimestre (en ese caso, para cada Target, nos dara el peso del Importe Neto sobre el total de cada Trimestre).
  • Transformaciones: podemos seleccionar cualquier indicador de los existentes en el informe y aplicarles una de las transformaciones que tengamos definidas, creando un nuevo indicador calculado. Por ejemplo, a la columna Importe Neto, le podriamos haber aplicado la transformación Año Anterior, y estamos creando un nuevo indicador que incluye los importes netos del año anterior al de analisis actual. Con esto, podemos realizar, como ya vimos, análisis de series temporales.
  • Orden: nos permite definir una columna donde aparece el número de orden de un valor respecto al total o respecto a los diferentes niveles de desglose del informe. El orden se puede referir a nivel ascendente (de menor o mayor) o descendente (de mayor a menor). En nuestro ejemplo, podriamos haber añadido una columna de Orden a nivel de Trimestre, para que nos indique el ranking de mayor a menor importe de ventas o de rentabilidad.

Como ejemplo, vamos a añadir algún campo calculado de este tipo a nuestro informe de ejemplo:

Informe con Indicadores % sobre Total y Orden

En nuestro informe ejemplo hemos añadido tres columnas mas:

  • Ranking Trim: el valor que aparece en esta columna nos indica el lugar que ocupa el importe de ventas de cada Target de Producto a nivel de cada Trimestre, con ordenación descendente.
  • %s/ Total: esta columna nos indica el porcentaje que representa el Importe Neto sobre el total general del informe.
  • %s/ Total Trim: esta columna nos indica el porcentaje que representa el Importe Neto sobre el total general de cada Trimestre.

Vemos que estos campos calculados nos pueden ser utiles para añadir información estadística y ordenaciones que hagan mas claros y faciles de analizar los resultados.

Formatos de exportación de Informes: PDF, Excel, HTML, Word, Access, Texto. Envio por Email.

Una vez tenemos calculado un informe, podremos exportar sus resultados en diferentes formatos. Esto nos va a permitir, por ejemplo, pasar la información a terceras personas y en el formato preciso según el tipo de acción que se tenga que realizar sobre los datos. Para realizar la exportación, desde el menú Datos –> Exportar A, y a continuación seleccionaremos el tipo de formato de exportación.

Por ejemplo, podremos crear un documento estático del tipo PDF o HTML que contenga los resultados. Tambien podremos sacar los datos a un fichero de texto o a documentos modificables en formato Excel, Word, Access. Se pueden configurar parametros de la exportación (como si se abrirá la aplicación correspondiente despues de la exportación, si queremos guardarlo en un determinado archivo y carpeta, si queremos ejecutar macros en el documento antes o despues de la exportación, etc).

Exportacion a Excel de los resultados de un informe

Microstrategy tiene una gran integración con la suite Office y las exportaciones estan bastante conseguidas. Por ejemplo, al exportar el mismo resultado de informe del ejemplo a Word, me aparece un texto con las características de ejecución del informe y a continuación una tabla de Word con los resultados del informe (el crosstab del informe replicado en la tabla). Observad en el ejemplo como se han pasado todos los atributos del informe a Excel, incluyendo los formatos y umbrales.

Igualmente, Microstrategy nos permite enviar los resultados de un informe por Correo Electrónico, utilizando uno de los formatos indicados anteriormente. Se genera un correo electrónico que llevará anexo el correspondiente documento en el formato seleccionado (se requiere tener instalado el programa Outlook para que funcione correctamente).

Ejecución de Informes desde aplicaciones Office.

Microstrategy 9 incluye el componente Office que instala un complemento dentro la suite Microsoft Office. Este complemento nos permite interactuar directamente desde Word, Excel, Powerpoint, Access o incluso Outlook.El complemento se conecta a nuestro proyecto y nos muestra los diferentes informes a los que tenemos acceso.

Ejecucion de Informes desde Excel

Una vez seleccionado el informe que queremos ejecutar, apareceran los correspondientes filtros o selecciones dinámicas que lleve asociado el informe y se nos mostraran los resultados, una vez ejecutado el informe, dentro de la aplicación Office desde la que estemos trabajando. Desde Excel, podremos repetir la ejecución del informe con los mismos criterios de selección o repetir la selección para obtener otros rangos de información, todo de una forma integrada y automática.

En nuestra prueba hemos ejecutado un informe de Ventas por Año, Trimestre y Target desde Excel, y todos los formatos, colores, Umbrales, etc. se han mantenido y se han pasado exactamente igual en la hoja de calculo que se nos ha creado automáticamente.

Navegación en los informes. Opciones de navegación. Configuracion.

Aunque la navegación es una característica de los cubos OLAP, vamos a verla por encima pues es una característica muy util en el reporting, que nos va a permitir ir profundizando en el análisis de los datos que se obtienen en la ejecución de un informe o cambiar el ambito de análisis en tiempo de ejecución (cambiando la dimensión por la que estemos analizando la información).

La navegación se puede configurar a nivel de informe, de forma que podemos tener informes que sean estáticos y donde no este permitida la navegación (nos puede interesar por el perfil de usuario que lo utilice) o informes en donde se puede navegar, pero solo a nivel descendente. En la imagen, vemos algunas de las opciones de navegación.

Opciones de navegación en un informe

También se pueden configurar otros aspectos, como el mantener en la cuadricula el atributo padre desde el que estamos navegando, si mantenemos los umbrales y subtotales, etc. La navegación se puede realizar sobre todos los elementos de un atributo o sobre valores seleccionados. Para entender esto, vamos a ver un ejemplo. Tenemos un informe sencillo, donde se analizan las ventas por Año y Trimestre (tal y como vemos en la imagen).

Analisis Ventas por Año y Trimestre

Podriamos profundizar mas en los datos de dos maneras:

  • Total: seleccionamos en la cabecera del atributo que queremos desglosar (por ejemplo, el Trimestre Año), y con el botón derecho, desde el menú contextual seleccionamos Navegación –> Abajo –> Mes Año. El informe se recalculara y se mostrara toda la información desglosada al nuevo nivel.
  • Según valores seleccionados: seleccionamos uno o varios trimestres (pulsando Control), y de la misma manera con el menú contextual, procederemos a la navegación. En este caso, solo estaremos desglosando al nivel inferior los trimestres seleccionados.

Analisis año-trimestre con navegacion

En la imagen podeis ver como hemos desglosado por mes el primer y segundo trimestre de 2007. Igualmente, podeis ver el aspecto del menú contextual que nos permite realizar la navegación. La opción Arriba y Abajo nos permite subir y bajar en la jerarquía actual. Con la opción Otras direcciones, podriamos cambiarnos de jerarquía y pasar a analizar los datos y a desglosarlos por otro atributo.

Movilidad en los componentes de un informe. Filas, columnas, indicadores.

La herramienta de reporting nos permite en tiempo de ejecución modificar el aspecto del informe, pudiendo intercambiar filas y columnas, cambiar el orden de los elementos en la visualización, ocultar un indicador (aunque sigue estando asociado al informe). Tambien podremos llevar una fila a columnas o viceversa o seleccionar un determinado atributo y llevarlo a la ventana de paginación (momento en el que pasara a formar parte del filtro de paginación). Veamos un ejemplo sencillo de un informe de analisis de ventas por Linea de Producto y Mes (en la filas estan las lineas de producto y en las columnas los meses):

Ventas por Linea de Producto y Mes

En este informe queremos transponer las filas con las columnas. Sera tan facil como seleccionar la opción Mover –> Intercambiar filas y columnas, y el aspecto del informe pasará a ser el siguiente:

Ventas por Mes y Linea de Producto

En el caso de haber tenido mas indicadores, podriamos haber cambiado su posición simplemente seleccionandolos y arrastrandolos a la nueva ubicación. De la misma manera, en el caso de tener varios atributos en el mismo eje (por ejemplo Trimestre, Linea Producto), podriamos haberlos arrastrado cambiando su orden, orden que determinara la forma en que se hace el desglose de la información.

Limites a nivel de informe. Filtros de visualización.

Ademas de los filtros que vimos anteriormente que se pueden establecer a nivel del informe mediante los filtros y selecciones dinámicas, y también mediante el filtrado de valores de un indicador (que también vimos), Microstrategy nos permite dos filtrados adicionales de la información:

  • Limites a nivel de informe: en las opciones de datos del informe, podemos indicar criterios adicionales de filtrado que produciran como resultado que no se visualicen los valores que no cumplan las condiciones. Por ejemplo, si en un informe de ventas indicamos la condición de la imagen (Importe Neto Mayor o Igual que 100), no se mostrara, cuando ejecutemos el informe, ninguna linea que no cumpla dicha condición. Pero una cosa importante, los valores filtrados si apareceran reflejados en totales y subtotales del informe. Es una forma útil de quitar información no relevante, aunque si siga considerandose para los analisis de importes totales.

  • Filtro de visualización: este filtro se define en la sección del informe correspondiente y nos permite ir estableciendo filtros de visualización en caliente sobre los datos mostrados en pantalla. Conforme se van cambiando los filtros y aplicandose, dinamicamente cambian los valores visualizados, y también los importes de totales y subtotales. Puede ser util para trabajar dinamicamente sobre los datos y para ir mostrando diferentes escenarios de datos según se omite o no determinada información.

Filtro visualizacion

Cache de Informes.

Es una característica avanzada de Microstrategy, que permite que los informes que se ejecutan con mas frecuencia y en los que no cambian los criterios de ejecución, sean guardados en cache y recuperados en el momento en el que alguien vuelva a realizar la misma consulta. En este tipo de ejecución, cuando lanzamos un informe no se accede a la base de datos, sino que leemos los resultados del informe que quedaron guardados en un area de trabajo especial. Con esto, optimizamos los recursos del sistema y mejoramos los tiempos de respuesta y el rendimiento general del sistema. Puede tener algún inconveniente, como que los datos que se nos muestren no esten actualizados con los datos mas recientes, aunque todo esto es configurable.

Para saber si un informe se ha ejecutado recuperando o no la cache, en la sección Detalles de Informe aparecera si se ha recurrido a ella o no. En cualquier momento se puede limpiar la cache de un informe antes de volverlo a ejecutar, y así asegurarnos que se realizará el recálculo completo.

Las opciones de cache se establecen a nivel de proyecto (a nivel general), tal y como vemos en la imagen.

Configuración de cache a nivel de proyecto

A nivel de informe, se pueden establecer opciones de cache personalizadas, que solo afectarán al informe en cuestion. Incluso se puede inhabilitar la cache para un informe en concreto y darle una caducidad.

Cache a nivel de informe

Las caches se pueden limpiar de forma global en cualquier momento para que todo se recalcule.

Creación de informes al vuelo.

Ademas de construir informes desde cero utilizando el editor de informes o el correspondiente asistente, tenemos otra forma de construir informes al vuelo. Partiendo de la ejecución de cualquier informe, nos podemos pasar al modo Diseño, y realizar los cambios que estimemos oportunos (añadir indicadores, modificar atributos, quitar o poner filas y columnas, cambios en  los formatos, umbrales, filtros, etc).

Una vez realizados todos los cambios, podremos guardar el informe con un nombre diferente y habremos creado de forma interactivo un nuevo informe. Esta característica nos permite reutilizar componentes ya definidos y personalizarlos según las diferentes necesidades que vayamos teniendo. Por eso, puede ser util cuando queramos construir un nuevo informe, buscar uno ya existente que tenga elementos en comun y sobre el realizar las modificaciones para dar lugar al nuevo informe.

Creación de grupos personalizados.

Los grupos personalizados son agrupaciones heterogeneas de atributos que nos permiten ver los resultados de los informes desde otro punto de vista. Es una característica avanzada de Microstrategy que yo no he visto en otras herramientas y que puede ser muy util para analizar la información por criterios que no estan registrados en el modelo de datos.

Antes de continuar, os recomiendo visualizar el video elaborado por Microstrategy que habla de la forma de crear los grupos personalizados (ver aquí ).

Para nuestro ejemplo, hemos creado un Grupo Personalizado que incluye varios grupos de atributos. El objetivo es realizar una clasificación de las regiones por Zonas. Por ejemplo, la zona Levante incluye la región de Valencia, Murcia y Cataluña. La region Sur incluye Andalucia, Extremadura, Ceuta y Melilla. Y así con el resto de las regiones. La definición del grupo personalizado sería la siguiente:

Creación de grupo personalizado Zonas Geográficas

Una vez definido un grupo personalizado, lo podemos utilizar en la creación de un informe como si fuera un atributo mas de una dimensión. En nuestro ejemplo, hemos definido un informe utilizando el Grupo personalizado en las filas y en las columnas los indicadores Importe Neto, Precio Neto y Unidades. El resultado de la ejecución del informe sería el siguiente:

Informe con grupo personalizado

Podemos ver como se ha realizado la clasificación de la información y como aparece desglosado todo según la jerarquía definida al crear el grupo personalizado. Cuando se define el grupo personalizado, se puede predefinir como queremos que se vea la representación jerarquica, los subtotales, si el elemento padre aparecera en la parte superior o inferior de los hijos, etc.

Ademas del grupo personalizado indicando valores de atributos, podemos crear grupos personalizados que califican sobre valores (por ejemplo los 10 primeros clientes por importe, los 20 primeros clientes por rentabilidad, los clientes que representan el 40% de las unidades vendidas). Para este caso, la definición del grupo personalizado sería la siguiente:

Grupo Personalizado calificando Indicadores

Observad como se pueden añadir tantos subgrupos dentro de un grupo personalizado como se deseen. En este caso, hemos añadido 3. Cada uno califica sobre un indicador diferente y con un criterio de agrupación diferente (Clasificación, Porcentaje). El grupo personalizado lo hemos incluido en un informe, y el resultado de la ejecución sería el siguiente:

Informe con grupo Personalizado sobre indicadores

Hemos podido ver con estos dos ejemplos las amplias posibilidades que nos proporciona esta funcionalidad de Microstrategy. Podremos crear nuestro propios grupos e incluirlos en el mismo informe, incluso aunque no esten relacionados de una forma homogenea.

Graficos. Combinación tabla cruzada-gráfico.

Ademas de los informes en forma de crosstab o tabla cruzada que hemos visto hasta ahora, Microstrategy también nos permite incluir gráficos para la visualización de los resultados. Disponemos de un amplio abanico de posibilidades en lo que respecta a los gráficos: desde gráficos de área, de barras, de lineas, circular o de tarta, dispersión, polar, radial, burbuja, marcadores, diagramas de gant, gráficos combinados o gráficos personalizados.

Tipos de grafico en Microstrategy

A la hora de utilizar los gráficos, tendremos que tener los datos apropiados en la tabla cruzada para que su visualización en un gráfico tenga sentido (si tenemos 5 indicadores y la información desglosada por muchos atributos, no valdrá de nada construir un gráfico).

Ejemplo grafico de barras

Ademas, Microstrategy nos permite combinar en un mismo informe la tabla cruzada y su correspondiente informe. Por ejemplo, para el ejemplo que hemos visto, podriamos tener las ventas por mes y región-provincia. Conforme vayamos cambiando en la paginación la región, los valores en la tabla cruzada se irían actualizando, asi como los valores reflejados en el gráfico.

Ejemplo Tabla Cruzada con gráfico

Con los gráficos podremos complementar nuestro informes y darles un significado gráficos. También seran utiles para esquematizar información en los cuadros de mando.

Informes con selección de atributos y ratios en tiempo de ejecución.

Para terminar con el detalle de los elementos que podemos utilizar en nuestro sistema de reporting, vamos a ver la combinación de selecciones dinámicos que nos permiten seleccionar los atributos o indicadores de un informe, incluidos dentro de un crosstab. De esta forma, al ejecutar el informe, se ejecutaran también las selecciones, y estaremos construyendo, en tiempo de ejecución, lo que queremos que incluya nuestro informe.

En primer lugar, realizaremos la definición de las selecciones dinámicas. Definiremos esta como del tipo “Selección Dinámica de Objeto“, y crearemos una para los atributos, y otra para los indicadores (tal y como vemos en la imagen).

Seleccion dinamica de indicadores

A continuación, construiremos un informe. La seleccion dinámica de atributos la pondremos en las filas en nuestro ejemplo (como si fuera un atributo), y la selección dinámica de indicadores en las columnas(como si fuera un indicador). Al ejecutar el informe, nos aparecerá algo asi:

Selecciones de atributos e indicadores al ejecutar

Vemos como el informe nos muestra la lista de atributos e indicadores que hemos preconfigurado, y podremos elegir entre ellos para llevarlos al informe al lugar correspondiente donde se incluyeron en el diseño. Con la selecciónes realizadas, mas el filtrado propio de cada informe, estaremos dejando al criterio del usuario que información quiere ver en cada momento. Esto nos puede ser util para reducir el número de informes disponible o para que el mismo informe se utilice para funciones diferentes según nuestras necesidades.

Otros elementos

  • Generación informes a partir de sentencias SQL personalizadas: podremos desde una sentecia SQL construida por nosotros, crear un informe. El el momento de crear un informe, seleccionamos el origen ODBC con el que vamos a trabajar. Utilizando el generador de consultas, podremos ir llevando las tablas que haya definidas en la base de datos seleccionada, al espacio de trabajo. De ahí, podremos ir seleccionando los campos, construyendo expresiones sobre ellos e indicando condiciones (como vemos en la imagen siguiente). Al grabar, volvemos al editor de informes con la información necesaria recuperada de la query. Con este procedimiento podremos construir informes sobre cualquier origen de datos y preparar consultas puntuales y no predefinidas sobre la información.

Generador consultas SQL para construir informes

  • Mapas de navegación: nos permiten establecer los patrones de como será la navegación en los informes.
  • Creación de plantillas de informes: cualquiera de los informes que hemos creado, lo podremos encapsular en forma de plantilla. Esta plantilla se podrán reutilizar luego en el diseño de otros informes.
  • Consolidaciones: es un concepto similar al de los grupos personalizados. Las consolidaciones nos permiten crear atributos “ficticios”, que pueden ser agrupaciones de estos y para los que luego realizaremos operaciones aritmeticas. Las consolidaciones son mas eficientes a nivel de SQL y los calculos se realizan a nivel del Motor análitico (en lugar de en la consulta al DW, como es el caso de los grupos personalizados). En el ejemplo podeis ver el editor de consolidaciones. En los tres primeros grupos, hemos indicado los valores de las lineas de producto que queremos incluir en ellos, solo de un determinado atributo. En el ultimo grupo, Cavas Rueda, hemos indicado dos condiciones sobre atributos diferentes, la linea de Producto CAVAS y la denominación de origen RUEDA (Cavas fabricados en la denominación de origen Rueda). Las consolidaciones se utilizan luego en el editor de informes como si fueran un atributo.

Editor de consolidaciones

  • Filtrado utilizando resultados de otro informe.
  • …..

Conclusiones.

Hemos intentado pasar con bastante detalle por todas las funcionalidades de reporting que nos proporciona Microstregy. Partiendo de los objetos de esquema que habiamos preconfigurado (atributos, indicadores, filtros, selecciones dinámicas) y los elementos que podemos utilizar para reporting como las tablas cruzadas, gráficos, grupos personalizados y consolidaciones, columnas calculadas, formatos, umbrales, totales y subtotales, etc, podremos seguramente cubrir todas las necesidades de reporting de cualquier organización. También seguramente habra funcionalidades complejas que nunca utilizaremos, pero que estan ahí disponibles.

El feeling con la herramienta es bueno, aunque la primera impresión es que técnicamente puede ser compleja la comprensión y utilización de todos los elementos que ofrece (sobre todo el tema de los niveles de cálculo de los indicadores), y para hacer determinadas cosas seguramente no bastará con un usuario de tipo medio, sino mas bien avanzado.

Por otro lado, conociendo otras herramientas de reporting, creo que Microstrategy es bastante completo y nos deja muchas puertas abiertas para personalizar los informes y para hacer cosas que no son estandar (como por ejemplo, lo de los grupos personalizados y las consolidaciones, o los indicadores de nivel) o el tema de las transformaciones para la series temporales.

Tras la revisión de la herramienta de reporting, hemos profundizado en su conocimiento y ademas hemos construido un set de ejemplos de informes que incluyen la mayoria de elementos disponibles y que nos permitiran preparar todo el lote de informes para reporting dentro de nuestro proyecto. En los ejemplos explicados no lo hemos visto, pero los filtros y selecciones dinamicas tienen muchisimas funcionalidades que nos van a permitir definir todo tipo de filtrados de todas las formas que necesitemos, como podriamos hacer en cualquier lenguaje de programación, y ademas con funciones avanzadas, para, por ejemplo, el tratamiento de fechas (nos permite definir patrones para crear, a partir de la fecha actual, periodos predefinidos, como el mes anterior hasta la misma fecha, desde principio de año hasta la fecha actual, el primer lunes del año y todas las variantes que podamos imaginar).

En la proxima entrada del blog veremos las funcionalidades OLAP que proporciona Microstrategy y como nos permite trabajar con los cubos inteligentes y origenes de datos MDX.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14.6.1. Reporting en Microstrategy 9 (I).

Publicado por respinosamilla en 6 Febrero 2010

Durante los ultimos días he estado validando las funcionalidades de Microstrategy 9 en lo referente al reporting, intentando ir de los aspectos mas generales y sencillos hasta los mas especificos y complejos, intentando pasar por todos los componentes y desarrollando ejemplos de análisis basados en el módelo dimensional que hemos visto en las entradas anterior del blog.

Antes de empezar, os recomiendo el video publicado por Microstrategy para familiarizaros con el entorno de trabajo ( visualizar aquí ).

Como consideración inicial, indicar que el reporting en Microstrategy esta algo limitado a nivel de diseño, pues siempre trabajaremos con tablas tabuladas donde podremos ir colocando los diferentes elementos del informe (atributos, indicadores, filtros, selecciones dinamicas, grupos personalizados, etc). Ademas de los informes, podremos construir lo que en Microstrategy se llama Documento, el cual nos permitira incluir varios informes y objetos que diseñemos nosotros mismos (se utilizaran por ejemplo para  construir los cuadros de mando, tableros interactivos, etc). Esta parte la veremos cuando veamos el diseño de cuadros de mando.

En la imagen podeis observar el editor de informes. Es el lugar donde se realiza el diseño de los informes. Podemos observar 5 secciones diferenciadas, que son:

Editor Informes en Microstrategy 9

  • Objetos de informe: en la parte superior izquierda. En esa sección visualizaremos todos los elementos que hemos incluido en la tabla del informe. Nos apareceran los atributos, indicadores, campos calculados, etc., que hemos insertado en el diseño del informe. Desde aquí se pueden modificar sus características. Por ejemplo, podremos cambiar el nombre con el que aparece el elemento en el informe, su representación, si aparece en el informe o esta oculto, etc.
  • Detalles de informes: en la parte superior derecha. Muestra información del informe en el momento de ejecutar.
  • Filtro de informe: en la parte superior derecha. Es el lugar donde asociamos al informe los filtros o selecciones dinámicas que se van a utilizar para restringir la información devuelta.
  • Explorador de objetos:  en la parte inferior izquierda. Es el arbol desde el cual podemos navegar por los diferentes elementos definidos en el metadata de Microstrategy: Jerarquias de usuario, atributos, indicadores, etc. Desde esta ventana podemos arrastrar a la sección de filtros o a la plantilla del informe para incluir el elemento seleccionado en el informe. Es contextual y solo deja insertar en cada lugar los elementos que se pueden utilizar
  • Vista de Informe: es el lugar donde diseñamos el layout del informe. Realmente estamos creando una plantilla que se asocia al informe. Es una tabla cruzada donde vamos incluyendo los elementos por los que se desglosara la información.

Construcción de Informes Simples

Vamos a empezar diseñando un informe sencillo. Queremos analizar los importes netos de venta y unidades por año y región. Ademas, queremos que se puede seleccionar el año/s de análisis. Para ello, abrimos el editor de informes y seleccionamos, en el explorador de objetos, los siguientes elementos:

  • Filtro: navegamos por el explorador de objetos, en la carpeta objetos públicos, filtros y seleccionamos el que ya teniamos definido para seleccionar el año, arrastrandolo a la sección Filtro de informe.

Ventas por año y región

  • Atributos e indicadores: a continuación, seleccionamos desde el explorador de objetos los atributos Año y Región y lo llevamos a las filas de la plantilla del informe. Finalmente, desde la carpeta de indicadores, realizamos la misma operación con los indicadores Importe Neto y Unidades, posicionandolos en las columnas de la tabla.

A continuación cambiamos el estilo del informe uno de los disponibles (en concreto el tema Pasteles). Veremos mas adelante que los estilos se pueden personalizar a todos los niveles (colores, tipos de letra, fuente, color de celda, color de subtotales, etc.). Con unos cuantos movimientos de ratón hemos construido nuestro primer informe de análisis.  Lo ejecutamos y obtenemos el siguiente resultado:

Ventas por Año-Region

Observar el resultado. Nos aparecen todas las ventas del año, desglosadas por región, con el detalle de importes y unidades. En la sección Detalles de informe, nos aparecen los criterios con los que se ha ejecutado el informe (filtros). En ese lugar tendremos la referencia de que restricciones se estan aplicando al informe. Las ventanas Objeto de informe y Explorador de objetos siguén apareciendo por si queremos ir realizando “sobre la marcha” modificaciones en el informe (añadiendo nuevos atributos o indicadores, cambiando descripciones, etc). Estas ventanas se pueden ocultar sin ningún problema (pues habrá usuarios que no tendrán que realizar este tipo de tareas).

Objetos Microstrategy

Partiendo de este informe simple, vamos a ir viendo las diferentes propiedades que podemos modificar para ir personalizando su aspecto y características conforme a nuestras necesidades.

Formateo de los Informes. Personalizar filas, columnas, titulos, fuentes, colores.

Microstrategy dispone de unos 20 estilos de informe predefinidos, tal y como observamos en la imagen.

Cada estilo tiene su propia configuración de colores, tipos de letra, tramas de las cuadriculas, etc. Ademas, las modificaciones que realizemos sobre el diseño las podemos guardar creando nuestros propios estilos personalizados.

Algunas de las cosas que podemos configurar en el formato de nuestros informes serán:

- Formato de los titulos de filas y columnas: fuente, tamaño de letra, efectos sobre la letra (negrita, cursiva, subrayado), color de la letra, color de la casilla, bordes, alineación.

- Formato de valores (indicadores): fuente, tamaño, efectos sobre la letra, formato de los números, color de la letra, color de la casilla, bordes, alineación.

- Visualización de los atributos: cuando en la casilla que estemos personalizando tengamos un atríbuto, podemos seleccionar que valor se mostrará de el (ID, DESC o ambos). Por ejemplo, si estamos con el atributo material, podemos ver solo el ID (será el código del material), o solo el DESC (será la descripción del material) o ambos y en el orden que deseemos.

- Formato de subtotales:  de la misma manera, podremos cambiar las propiedades que hemos visto anteriormente para los subtotales de un atributo (tanto a nivel de encabezado como de valores).

Con esta parametrización a nivel de los elementos de un informe, le podremos dar el aspecto deseado para remarcar determinados valores o para hacerlos mas intuitivos al usuario. Para nuestro informe de ejemplo, hemos realizado varios cambios. Hemos incluido el indicador %Margen y le hemos cambiado el color de visualización y el formato  a su valores (color de la letra azul y en negrita) para destacarlos sobre el resto de las columnas. Igualmente, hemos cambiado los colores de las celdas de subtotales y totales generales para diferenciarlos según el atributo al que corresponden. El informe modificado tendría el siguiente aspecto:

Informe basico con cambio formato

El cambio del formato es tan sencillo como seleccionar la casilla de cabecera del atributo o el indicador para el cual queremos cambiar el formato, y con el botón derecho nos aparecerá el menú contextual. El cambio de formato lo podemos realizar de la misma manera bien desde el diseño de informes o en tiempo de ejecución, interactuando con el informe que presenta la información. El menú contextual es el siguiente:

Menu contextual para cambio de formato

En el ejemplo, hemos seleccionado la casilla de cabecera del atributo Año. Podremos cambiar el formato del encabezado (Año encabezados), de los valores (Año valores), encabezado de los subtotales del atributo (casilla Total) y el formato de los valores de subtotales. Vemos que desde el mismo menú contextual podremos cambiar la Representación del Atributo, quitarlo de la cuadrícula o del informe, bloquear el objeto para que se quede fijo cuando tengamos informes con muchas filas o columnas o incluso acceder a la modificación de atributos, indicadores, etc desde este lugar (se requeriran los oportunos permisos. Los cambios en objetos del esquema desde esta opción no se resfrescarán hasta que no se vuelva a ejecutar el informe).

Para los indicadores, también podremos establecer formateo a nivel de categoría (Numero, Fracción, notación cientifica, porcentaje), número de decimales, separación de miles, formateo personalizado, etc (mas o menos las mismas opciones de formateo que en la tipica aplicación de Hoja de Cálculo).

Definición de Umbrales. Tipos de umbrales.

Observando el informe anterior, vemos que hemos remarcado los valores del indicador %Margen sobre el resto de indicadores del informe. En este informe nos interesa centrarnos en el análisis de este indicador de negocio. Para centrarlos en analizar los valores de una forma más ágil, vamos a utilizar otra característica de los informes de Microstrategy, que son los umbrales. Los umbrales nos permiten establecer un formato personalizado a los indicadores según los valores de estos. Con los umbrales podemos destacar determinados valores según nos interese, de forma que el usuario de los informes vaya al “grano” cuando este analizando la información visualizada, de forma que haya algo  que le llame la atención directamente y le avise  (valores de rentabilidad negativa, por ejemplo). Podría ser una forma de establecer alarmas en los datos.

Tenemos 4 tipos de umbrales, que son:

  • Formato: modificamos el formato de los valores según las condiciones indicadas. Podemos cambiar el tipo de letra, el color, el resaltado, el fondo, etc, para remarcar los valores que cumplan unos determinados criterios.
  • Remplazar texto: podemos cambiar el valor por un determinado texto que nos avise de algo (por ejemplo, el texto REVISAR para indicar que hay algo erróneo que convendría analizar o el texto EXCEDIDO para indicar que se han superado las ventas presupuestadas en un determinado nivel de análisis).
  • Simbolo rápido: sustituimos los valores que cumplan las condiciones por un determinado simbolo, al que también podremos dar un color diferenciado.
  • Imagen: sustituimos los valores que cumplan las condiciones por una imagen.

Editor umbrales

Como veis en la imagen, una vez seleccionado un determinado indicador, seleccionando la opción Umbrales podremos establecer los criterios que determinan cada umbral. En el ejemplo, hemos creado 4 rangos de valores. Para cada rango de valores, hemos determinado un formato diferente para los valores, de forma que los importes negativos de rentabilidad los veremos resaltados en rojo, los importes con rentabilidades bajas (entre 0 y 10) los veremos en amarillo, y asi hasta los valores mayores de 25%, que sacaremos en color negro considerandolos los valores normales.

Aplicando estos valores de umbrales a nuestro informe ejemplo, obtendremos el siguiente resultado:

Informe con umbrales del tipo formato y del tipo simbolo

Observad como los valores en rojo nos indican una rentabilidad negativa y son elementos que habrá que estudiar. En el informe he incluido en una nueva columna un umbral utilizando simbolos. También puede ser una forma ágil de llamar la atención sobre un determinado valor.

Los umbrales se pueden establecer a nivel de indicadores, a nivel de indicadores y subtotales o solo a nivel de subtotales.

Ordenación avanzada.

Puede darse el caso que en los informes tengamos muchisima información y nos interese que este ordenada por determinados criterios (para solo analizar valores que consideremos relevantes). Por ejemplo, nos puede interesar analizar las ventas por importe de mayor a menor, o las rentabilidades de menor a mayor (para analizar las mas bajas).

Para esto, Microstrategy dispone del editor de Ordenación Avanzada, que nos permite establecer criterios de ordenación compleja sobre los datos. En nuestro ejemplo, queremos ordenar los datos por rentabilidad de menor a mayor, pero no en general para todos los datos del informe, sino dentro del analisis de cada año que aparezca en el informe.

Ordenación avanzada

Podeis ver como hemos indicado dos criterios de ordenación. En primer lugar, que se ordenen los datos por año de forma ascendente. En segundo lugar, para los datos de cada año, que se orden de forma ascendente según el valor del indicador %Margen. De esta forma, para cada año, tendremos al principio las regiones con margenes mas bajos, que son las que nos interesará analizar. El informe quedaría así:

Informe con ordenación por Año y Margen

La ordenación avanzada se puede establecer tanto a nivel de filas (como en el ejemplo), a nivel de columnas, o a nivel de paginación. Veremos mas adelante en que consiste la paginación.

Filtros en indicadores. N Valores.

También puede darse el caso de que en los informes se nos presente gran cantidad de información irrelevante (por ejemplo, clientes con ventas muy bajas en un analisis detallado por cliente) y nos interese filtrar sobre los valores recuperados de la base de datos. Este filtrado sería a posteriori, y se produciria en el momento en el que el motor analítico va a mostrar la información.

Podremos tener dos tipos de filtrado sobre un indicador:

  • N valores:  donde podremos seleccionar, por ejemplo, los N primeros valores, los N ultimos valores, excluir los N primeros valores o excluir los N ultimos valores de la visualización. Tambien podremos indicar, dentro del ranking,  los valores que estan o no estan en un determinado rango (por ejemplo, los valores entre la posición 10 y 30 del ranking), o un valor determinado del ranking (el doceavo en el ranking).
  • Condición: igualmente, podremos establecer un filtrado indicando una condición que deberan de cumplir los valores del indicador (en el caso de que no la cumplan no se mostrarán).

Filtro Indicador (10 primeros valores de ventas)

Para probar el filtro sobre un indicador, hemos modificado nuestro informe de ejemplo sustituyendo el atributo región por el de provincia. Igualmente, hemos ordenado los datos obtenidos de forma descendente por la columna Importe Neto de Ventas. En este informe nos aparecen muchos datos y queremos quedarnos solo con los 10 primero valores. Aplicando el filtro que hemos visto anteriormente, el informe resultante quedaría:

Informe de Ventas por Año y Provinca - 10 Primeros Importes

Hay que tener en cuenta que al establecer el filtrado, los valores de subtotales se alteran y reflejan solo la suma de los valores que se muestran en pantalla.

Paginación.

Para explicar el concepto de paginación, vamos a modificar nuestro informe ejemplo y vamos a sustituir el atributo Año por el atributo Región. Queremos analizar las ventas por Región, y dentro de cada región, ver el detalle de cada una de las provincias. El informe modificado quedaría así:

Informe de Ventas por Región y Provincia

Para poder facilitar el análisis, queremos ver solo una región en pantalla y poder ir moviendonos por las diferentes regiones. Para esto, Microstrategy nos proporciona la funcionalidad del paginado. Uno o varios de los atributos se sacan de la cuadricula y aparecen en la sección de Paginación. En esa seccion el atributo seleccionado aparece como un menú desplegable con los diferentes valores que tiene y que se aplicaran en el informe como un filtro dinámico que podremos ir cambiando para ver los diferentes valores. El mismo informe con paginación en el atributo Región sería el siguiente:

Ventas por Region y Provincia - con paginación

Se pueden incluir todos los atributos de paginado que queramos dentro de los informes. Es tan facil como arrastrarlos a la sección de paginado o bien desde el menu contextual, al pulsar sobre la casilla del atributo, seleccionar la opción Mover –> A Páginas.

Definición subtotales y totales. Tipos de totalizacion.

Vamos a crear un nuevo informe para explicar las posibilidades de totalización que proporciona Microstrategy. Construiremos un report donde veremos la información por el atributo Año, a continuación por Trimestre, y finalmente por el Comercial de Ventas asignado a los clientes. Como indicadores de negocio, analizaremos el importe neto de ventas, las unidades vendidas, el Margen y el número de pedidos de cada uno de ellos. El informe quedaría algo así:

Ventas por Año, Trimestre y Comercial (sin Totales)

En un informe como este, donde no tenemos totalización, podremos añadir un total general al final del informe, así como subtotales para incluir en cada nivel de detalle de la información. Ademas del subtotal, que es una suma de valores, Microstrategy nos proporciona otras funciones de totalización como son Cantidad, Promedio, Minimo, Máximo, Producto, Mediana, Moda, Desviación Estandar, Varianza y Media Geométrica.

Para incluir un total general, seleccionaremos la opción Datos –> Totales Generales y nos aparecera un total general para el informe. Es importante tener en cuenta que podemos tenemos definidos los indicadores (cuando se crean) para que no se puedan realizar subtotales con ellos. Por ejemplo, en nuestro proyecto, el indicador %Margen esta configurado de esta manera, pues no tiene sentido la suma de valores individuales de porcentajes (es un dato que no nos dice nada, es mas, nos puede llevar a error).

Ademas, podemos incluir los subtotales indicando la opción de menú Datos –> Subtotales. Nos aparece el editor de subtotales donde podemos seleccionar que tipo de subtotal queremos utilizar,y el lugar dentro de la tabla donde mostraremos los subtotales por fila, columna o pagina. Observad el ejemplo donde hemos metido un subtotal al final de cada nivel y un total general. Ademas, hemos seleccionado el Minimo y Maximo de cada columna, que nos indicara los valores minimos y maximos de cada indicador en cada nivel. Puede resultar util para tener identificados determinados valores o cálculos de una forma rápida.

Ventas por Año, Trimestre y Comercial con Subtotales

Ademas, disponemos de unos subtotales avanzados que nos permiten realizar otro tipo de totalizaciones mas fuera de lo habitual. Por ejemplo, podemos indicar por que atributo queremos obtener un subtotal global y mostrarlo al final del informe. O establecer diferentes niveles de agrupación por atributos para los subtotales. En nuestro ejemplo, el subtotal global por el atributo comercial quedaría así:

Ventas por Año, Trimestre y Comercial con Total por Comercial

Podremos definir tantos subtotales como deseemos para incluir la sumarización deseada por el atributo deseado y en el lugar deseado.

Visualización Jerarquica de Resultados.

Cuando tenemos mucha información en pantalla, con muchos niveles de desglose, Microstrategy nos permite organizar la visualización de la información de forma jerárquica (lo que llaman Mostrar resultados indentados). Es otra técnica diferente a la de la paginación que ya vimos anteriormente. Para verlo mas en detalle, vamos a construirnos un informe que incluye para cada año, las lineas de producto y el detalle de los materiales de cada linea de producto, con los indicadores de analisis vistos anteriormente. Al ejecutar el informe, vemos que tienes mas 400 lineas y es dificil moverse por la información.

Para cambiar la visualización jerárquica, seleccionamos la opción de menú Cuadrícula –> Mostrar resultados indentandos, y cambia el aspecto del informe al siguiente:

Informe con resultados indentados

Observar que en la parte superior de la cuadricula hay 3 cuadros (con los valores 1, 2 y 3). En nuestro caso, tenemos seleccionado el valor 2, y estamos viendo la información desglosada hasta el nivel de Linea de Producto. Si seleccionaramos el valor 3, veriamos ademas toda la información de los materiales. Y si estuvieramos en el nivel 1, solo veriamos la información desglosada por año.

Puede ser una forma util de presentar la información en un nivel no muy desglosado para ver los datos de forma mas clara y cambiar de nivel jerarquico en el caso de querer profundizar mas en determinados aspectos.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14.5. Detalle de objetos definidos en el proyecto ENOBI. Atributos, Jerarquias, indicadores, filtros, transformaciones, etc.

Publicado por respinosamilla en 1 Febrero 2010

En esta entrada del Blog vamos a ver los elementos que hemos definido en el metadata de Microstrategy, que serán la representación de nuestro modelo lógico dentro del sistema de BI. Ademas, serán los elementos que nos van a permitir construir el resto de componentes que formaran nuestro sistema de análisis. Vamos a hacer un poco de recopilación de todo lo visto hasta ahora referente a nuestro modelo dimensional:

Modelo Lógico del Proyecto ENOBI

El modelo lógico del del proyecto, para que lo tengamos en mente ante toda la definición de elementos en Microstrategy, era el siguiente:

Modelo Físico del Proyecto ENOBI

El esquema físico definitivo del proyecto, con todos los ajustes realizados durante la fase de análisis y la creación de los procesos ETL era el siguiente:

Diseño Fisico Final en MySql

Como ya indicamos, hemos utilizado MySql como motor de base de datos, en la versión 5.1 Community. Os dejo el link al fichero con las sentencias  SQL de creación del Datawarehouse, así como al fichero de modelado (utilizando la herramienta de MySql Workbench).

Diseño de hechos, atributos y jerarquía de dimensiones en Microstrategy 9.

Conforme vimos en la correspondiente entrada del blog (14.2. Diseño de hechos, atributos y jerarquia de dimensiones en Microstrategy 9.), en esta fase de la configuración de nuestro BI seleccionabamos las tablas de la base de datos que iban a contener los elementos, y los formalizabamos, en forma de hechos (valores con los que construiremos los indicadores de negocio) y atributos (valores con los que construiremos las dimensiones de análisis y sus jerarquias). En nuestro proyecto, los elementos definidos son los siguientes:

Tablas

De todas las tablas existentes en la base de datos, seleccionamos las que van a contener nuestros hechos e indicadores (son las tablas que vemos en la imagen anterior).

  • Hechos: DWH_VENTAS Tabla de Hechos de Venta.
  • Dimensiones: DWD_TIEMPO Dimensión tiempo, DWD_PRODUCTO Dimensión Producto, DWD_PROMOCION Dimensión Promociones, DWD_LOGISTICA Dimensión Centros Logísticos, DWD_CLIENTE y DWD_CLUB_VINOS para la Dimensión Cliente (y los datos para análisis del Club de Vinos).

Atributos

La configuración de atributos que formara el módelo dimensional es la siguiente:

Atributos definidos en el proyecto EnoBI

En la imagen, obtenida, de la herramienta Architect, podeís observar la correlación que hay entre cada tabla de la base de datos, los atributos definidos en cada una de ellas, y los campos de la tabla a los que corresponden. De forma que, para cada atributo, indicamos los campos de la base de datos que le dan valor. Por ejemplo, en la dimensión tiempo tenemos creados los siguientes atributos:

  • Año: año de la fecha. Corresponde al campo ano_id de la tabla dwd_tiempo.
  • Dia de la semana: corresponde al campo diasem_id para el código numérico y diasem_desc para el campo descripcion (Lunes, Martes, etc), ambos de la tabla dwd_tiempo.
  • Dia del año: corresponde al campo diaano_id de la tabla dwd_tiempo.
  • Fecha: corresponde al campo fecha_id para el valor de la fecha y fecha_desc para el campo descripción (fecha en formato letra, p.e.: 12 de Enero de 2003).
  • Ind Festivo: flag que indica si una fecha es festivo o no. Corresponde al campo fest_ind_id de la tabla dwd_tiempo.
  • Ind Finde: flag que indica si una fecha es fin de semana o no. Corresponde al campo find_ind_id de la tabla dwd_tiempo.
  • Mes: corresponde al campo mes_id par el código numérico y mes_desc para el campo descripción (Enero, Febrero, Marzo, etc).
  • Mes Año: corresponde al campo mesano_id de la tabla dwd_tiempo. Indica el año en la notación AAAA-MM, donde AAAA es el año y MM el mes.
  • Semana: corresponde al campo sem_id de la tabla dwd_tiempo. Indica el numero de semana en el año.
  • Semana Año: corresponde al campo semano_id de la tabla dwd_tiempo. Indica el numero de semana en la notación AAAA-SS, donde AAAA es el año y SS y la semana.
  • Semestre: corresponde al campo smt_id de la tabla dwd_tiempo. Indica el semestre del año, en la notación XS (1S Primer Semestre, 2S Segundo Semestre, etc).
  • Semestre Año: corresponde al campo smtano_id de la tabla dwd_tiempo. Indica el semesre en la notación AAAA-SS, donde AAAA es el año y SS el semestre.
  • Trimestre: corresponde al campo trim_id de la tabla dwd_tiempo. Indica el trimestre del año, en la notación XT (1T Primer Trimestre, 2T Segundo Trimestre, etc).
  • Trimestre Año: corresponde al campo trimano_id de la tabla dwd_tiempo. Indica el trimestre en la notación AAAA-TT, donde AAAA es el año y TT el trimestre.

Para el resto de dimensiones, la correspondencia sería igual, conforme a la definido en la imagen anterior. Podeis observar como hay atributos que se asocian a dos campos (ID y DESC) y otros solo a uno (ID). Esto es debido a que hay atributos que se asocian con  un identificador (por ejemplo,el código de cliente o el de un producto) y ese identificador lleva relacionada una descripción (como el nombre de un cliente o la descripción de una familia de producto), que es la que califica realmente al atributo. En cambio, otros atributos se califican directamente con el valor del atributo (por ejemplo, el año), y con ese campo unico ID también tenemos la descripción (DESC). Para otros atributos, como la provincia, región, tipo promoción, también hemos omitido los códigos numéricos y en el campo ID hemos metido las descripciones (esto es cuestión de diseño y seguramente tambíen podriamos haber utilizando una codificación estandar de las que hay definidas, y por tanto, la correspondiente tupla ID DESC).

Igualmente, observar en la dimensión cliente, el atributo compuesto CPostal_Poblacion. Este atributo se forma por la concatenación de dos campos de la tabla dwd_cliente, que son cpostal_id y población_id (cosa que permite Microstrategy ). Esto nos permite definir valores a partir de operaciones con campos de la base de datos.

Hechos

Diseño Hechos

De la misma manera, definimos que hechos vamos a tener en nuestro sistema y a partir de que columnas de la base de datos se van a calcular.

En nuestro caso, nos hemos limitado a crear hechos simples, vinculandolos a un unico campo de la base de datos. Los valores con calculos los definiremos cuando construyamos los indicadores de negocio (que son los valores de análisis que luego incluiremos en nuestros informes y análisis).

Los hechos definidos son los siguientes:

Coste Total: corresponde al campo coste_total de la tabla dwh_ventas. Es el importe total del coste de la mercancia.

Coste Unit: corresponde al campo coste_unit de la tabla dwh_ventas. Es el coste unitario de cada unidad vendida.

Dtos Comerc: corresponde al campo importe_dtos de la tabla dwh_ventas. Es el importe total de los descuentos comerciales aplicados en los pedidos.

Dtos Promos: corresponde al campo importe_promos de la tabla dwh_ventas. Es el importe total de los descuentos promocionales aplicados en los pedidos.

Importe Bruto: corresponde al campo importe_bruto de la tabla dwh_ventas. Es el importe bruto de las ventas de una posición de pedido (sin aplicar ni descuentos comerciales ni descuentos promocionales).

Importe Neto: corresponde al campo importe_neto de la tabla dwh_ventas. Es el importe neto de las ventas de una posición de pedido (después de aplicar todos los descuentos).

Litros: corresponde al campo litros de la tabla dwh_ventas. Es el total de litros vendidos en una posición de pedido.

Margen Total: corresponde al campo margen_total de la tabla dwh_ventas. Es el margen total de una posición de pedido ( ingresos totales – coste total).

Margen Unit: corresponde al campo margen_unit de la tabla dwh_ventas. Es el margen unitario de una posición de pedido.

Unidades: corresponde al campo unidades de la tabla dwh_ventas. Son las unidades de producto vendidas en una posición de pedido.

Observad que hay columnas en la tabla que podiamos haber calculado a partir de los valores de otras columnas (como el importe neto a partir del importe bruto menos los descuentos, el coste unitario y el margen unitario a partir de los costes totales y margen total dividido por el número de unidades, etc.).  Hemos decidido en nuestro caso tener ya los calculos guardados en la base de datos para facilitar el análisis en determinados casos y a partir de ellos realizaremos muchos mas cálculos (como veremos cuando definamos los indicadores de nuestro proyecto). Es una elección de diseño esta consideración, aunque se podría haber elegido la de reducir al máximo el número de campos y luego realizar los calculos al ejecutar los corresondientes informes.

Igualmente, podiamos haber creados hechos compuestos, definidos con operaciones aritméticas o funciones sobre una o mas columnas de la tabla.

Jerarquia de atributos.

Las jerarquías, como ya vimos, determinan como se estructuran los diferentes atributos que forman las dimensiones. Tenemos dos jerarquías, la de Sistema, que se crea cuando construimos el módelo dimensional a partir de la información de relaciones padre-hijo entre los atributos y la de usuario, que determina la forma en que podremos realizar la navegación por los atributos cuando estemos ejecutando los informes. Veamos como  hemos definido ambas en nuestro proyecto.

Jerarquia de Sistema.

Las jerarquias de Sistema quedarían definidas tal y como observamos en la presentación siguiente:

Jerarquias de Usuario.

En lo referente a las jerarquias de usuario, hemos definido las siguientes (iremos detallando para cada una de las dimensiones). Veremos que las jerarquias de usuario nos permiten saltarnos atributos en la jerarquia de una dimensión para personalizar la navegación según nuestras necesidades.

  • Dimensión cliente:
    • Agrupador_Cliente: Agrupador Cliente –> Cliente (con punto de entrada en Agrupador Cliente)
    • Canal_Cliente: Canal Cliente –> Cliente (con punto de entrada en Canal Cliente).
    • Comercial_Cliente: Representante Comercial –> Cliente (con punto de entrada en Representante).
    • Nielsen_Cliente: Código Nielsen –> Cliente (con punto de entrada en Código Nielsen).
    • Pais_Cliente: Pais –> Region–> Provincia –> Población –> Cliente (con punto de entrada en Pais).

    Jerarquia Pais --> Region --> Provincia --> Población --> Cliente

    • Pais_Poblacion: Pais –> Region–> Provincia –> Población –>Codigo Postal (con punto de entrada en Pais).
    • TipoCl_Cliente: Tipo de Cliente –> Cliente (con punto de entrada en Tipo de Cliente).
  • Dimensión producto:
    • Denominac_Material: Denominación de Origen –> Material.
    • Familia_Material: Familia –> Material.
    • Formato_Material: Formato de Venta –> Material.
    • LinProd_Material: Linea de Producto –> Material.
    • Litros_Material: Litros –> Material.
    • Target_Material: Target de Destino del Producto –> Material.
    • Unidad_Material: Unidad de Medida –> Material.
    • Varietal_Material: Variedades de Uva –> Material.
  • Dimensión tiempo:
    • Año_Mes_Dia:  Año –> Mes –> Dia.
    • Año_Smt_Mes_Dia: Año –> Semestre del Año –> Mes Año –> Dia.
    • Año_Smt_Trim_Mes_Dia: Año –> Semestre del Año –> Trimestre del Año –> Mes Año –> Dia.
    • Año_Trim_Mes_Dia: Año –> Trimestre del Año –> Mes Año –> Dia.

    Jerarquia Año --> Semestre --> Trimestre --> Mes --> Dia

    • DiaSemana_Fecha: Dia de la Semana –> Dia (Fecha).
    • Festivo_Dia: Indicador de Festivo –> Dia.
    • Finde_Dia: Indicador de Fin de Semana –> Dia.
    • Semana_Dia: Semana –> Dia.
    • SemanaAño_Dia: Semana del Año –> Dia.
  • Dimensión promoción:
    • FecIni_Promocion: Fecha de Inicio de la Promoción –> Código de Promoción.
    • FecFin_Promocion: Fecha de Fin de la Promoción –> Código de Promoción.
    • TipoAccion_Promocion: Tipo de Acción Comercial –> Código de Promoción.
    • TipoDto_Promocion: Tipo de Descuento –> Código de Promoción.
    • TipoPromo_Promoción: Tipo de Promoción –> Código de Promoción.
    • TIpoPublic_Promocion: Tipo de Publicidad –> Código de Promoción.
  • Dimensión logística:
    • Capacidad_Centro: Capacidad del Centro –> Centro Logístico.
    • Pais_Centro: Pais –> Region –> Provincia –> Población –> Centro Logístico.
    • Tecnologia_Centro: Tecnologia de Almacenaje –> Centro Logístico.

Igualmente, hemos creado Jerarquias filtradas. Estas jerarquias tienen aplicado un filtro que restringe los valores devueltos. Por ejemplo, dentro de la dimensión cliente, hemos creado una jerarquía con punto de entrada en Pais, que pasa por Region, Provincia, Población y Cliente. En el atributo de entrada (Pais), hemos indicado un filtro con un valor estático que restrige las entradas a solo aquellas del pais España. De esta forma, cuando utilizemos esta jerarquía en los informes o en la navegación, los valores ya van a estar restringidos por ese criterio (cuando un atributo de una jerarquia esta filtrado aparece el simbolo de los 3 circulos de colores en su icono).

Ejemplo de jerarquia Filtrada

En el Explorador de datos de la herramienta Desktop (que nos permite navegar por los atributos utilizando las jerarquias de sistema y las jerarquias de usuario), para esta jerarquía visualizariamos los siguientes valores:

Valores visualizados en jerarquia filtrada

Hemos creado otras jerarquias filtradas, como son:

  • Linea Producto–> Material, eliminando los valores de linea de producto correspondientes a la gama alta (ciertos códigos de linea de producto).
  • Tipo de Cliente –> Cliente, eliminando determinados tipos de cliente que no queremos considerar en nuestro análisis (ciertos códigos de tipo de cliente).
  • Zona Levante –> Cliente, seleccionando el pais España y solo determinadas regiones (Cataluña y Comunidad Valenciana).
  • …..

Vemos que tenemos infinitas posibilidades de dejar predefinidas jerarquias que podremos utilizar en cada tipo de análisis concreto que realizemos. Otro aspecto interesante de las jerarquias es que podremos definir uno o varios puntos de entrada (lugar desde el que se puede iniciar la navegación). El punto de entrada puede estar en cualquier nivel dentro de la jerarquía (en el ejemplo de la imagen, el punto de entrada esta en el atribuito Pais).

Diseño de transformaciones en Microstrategy 9.

Las transformaciones son una técnica definida por Microstrategy que nos permite realizar analisis de series temporales. Por ejemplo, la tipica comparación Año Actual / Año Anterior. Las transformaciones se definen sobre un atributo (por ejemplo la fecha, el año) y luego se utilizan a la hora de construir los indicadores. En nuestro ejemplo, hemos creado 3 transformaciones para los siguientes análisis temporales: 15 Dias Atras, Año Anterior, Mes Anterior y Misma Fecha Mes Anterior.

Transformación Año Anterior

Como podeis ver en el ejemplo, la transformación Año Anterior, en nuestro caso, se aplicaria sobre el Año (restandole 1 al año de los datos), y a la Fecha, restandole 12 meses para ir a la misma fecha del año anterior. Las transformaciones se pueden facilitar guardando en base de datos campos ya calculados en la dimensión tiempo que nos indiquen el periodo temporal de comparación (nos podiamos haber guardado el año anterior, el mes anterior, fecha de comparación del año anterior, etc), aunque tambien podemos calcular los valores, como en nuestro caso.

El uso de transformaciones esta limitado a los atributos por los que estemos analizando la información, pero para determinados informes nos proporciona una gran potencia de análisis.

Diseño de indicadores, Filtros y Selecciones Dinámicas.

Según vimos en la correspondiente entrada del blog (14.3. Diseño de Indicadores, Filtros y Selecciones Dinámicas en Microstrategy 9.), los indicadores, filtros y selecciones dinámicas son el resto de elementos que nos permitiran empezar a trabajar con nuestro sistema de Inteligencia de Negocio. Los elemenos que hemos definido en nuestro proyecto son los siguientes:

Diseño de indicadores.

Los indicadores de análisis que hemos construido en nuestro sistema para poder utilizar dentro de los informes y documentos son los siguientes:

  • Coste_Total: coste total de las ventas. Se calcula con la funcion Sum sobre el hecho Coste_Total.
  • Coste_Total%: porcentaje de coste de las ventas. Se calcula con la formula Coste_total * 100 / Importe_Neto, utilizando los indicadores correspondientes.
  • Coste_Unit: es el coste unitario de las ventas. Se calcula con la formula Coste_Total / Unidades, utilizando los indicadores correspondientes.
  • Dto_Comerc: importe de los descuentos comerciales aplicados en las ventas. Se calcula con la funcion Sum sobre el hecho Dtos_Comerc.
  • Dto_Comerc%: porcentaje de descuento comercial aplicado. Se calcula con la formula Dto_Comerc * 100 / Importe Bruto, utilizando los indicadores correspondientes.
  • Dto_Promos: importe de los descuentos promocionales aplicados en las ventas. Se calcula con la funcion Sum sobre el hecho Dtos_Promos.
  • Dto_Promos%: porcentaje de descuento promocional aplicado. Se calcula con la formula Dto_Promos * 100 / Importe Bruto, utilizando los indicadores correspondientes.
  • Dto_Total: suma total de descuentos aplicados (tanto comerciales como promocionales). Se calcula como la suma de los indicadores Dto_Comerc y Dto_Promos.
  • Dto_Total%: porcentaje total de descuento aplicado. Formula ((Dto_Total * 100) / Importe Bruto), utilizando los correspondientes indicadores.
  • Dto_Total_Unit: porcentaje de descuento total aplicado. Se calcula con la formula ([Dto_Total] / Unidades) sobre los correspondientes indicadores.
  • Importe_Bruto: importe bruto de la venta. Se calcula con la funcion Sum sobre el hecho Importe_Bruto.
  • Importe_Neto: importe neto de la venta. Se calcula con la funcion Sum sobre el hecho Importe_Neto.
  • Litros: numero de litros vendidos. Se calcula con la funcion Sum sobre el hecho Litros.
  • Margen_Total: margen total en la venta. Se calcula con la funcion Sum sobre el hecho Margen_Total.
  • Margen_Total%: porcentaje de margen total sobre el importe de venta. Se calcula con los indicadores, utilizando la formula: (([Margen_Total] * 100) / [Importe Neto]).
  • Margen_Unit: margen de cada unidad vendida. Se calcula con los indicadores, con la formula ([Margen_Total] / Unidades).
  • Precio_Bruto: precio bruto de venta de cada unidad. Se calcula con los indicadores, con la formula ([Importe Bruto] / Unidades).
  • Precio_Neto: precio neto de venta de cada unidad (despues de descuentos). Se calcula con los indicadores, con la formula ([Importe Neto] / Unidades).
  • Unidades: numero de unidades vendidas. Se calcula con la funcion Sum sobre el hecho Unidades.

Editor Indicadores - Definicion del indicador Margen_Total%

Ademas, hemos creado los siguientes indicadores de recuento:

  • Recuento Clientes: indicador que nos devuelve el numero de clientes de un análisis. Se calcula con la función Count sobre el atributo Cliente.
  • Recuento Materiales: indicador que nos devuelve el numero de materiales de un análisis. Se calcula con la función Count sobre el atributo Material.
  • Recuento Pedidos: indicador que nos devuelve el numero de pedidos de un analisis. Se calculo con la función Count sobre el atributo Pedido.

Y utilizando la transformación Año Anterior, los siguiente indicadores para utilizar en las series temporales:

  • Importe Bruto AANT: similar al indicador Importe Bruto, pero aplicandole la transformación Año Anterior.
  • Importe Neto AANT: similar al indicador Importe Neto, pero aplicandole la transformación Año Anterior.
  • Margen Total AANT: similar al indicador Margen Total, pero aplicandole la transformación Año Anterior.

Este es un set de indicadores sencillos. Microstrategy nos permite, partiendo de los hechos definidos, los indicadores descritos aquí y multiples operadores y funciones realizar la definición de indicadores mucho mas complejos que nos permitirán cubrir los requerimientos de información (tales como valores máximos y mínimos, contadores, funciones estadísticas sobre un conjunto de valores como media, varianza, desviación estandar, etc, etc).

Diseño de Filtros.

Son los últimos elementos que nos faltan por definir, y son los que nos van a permitir establecer restricciones en los diferentes objetos de nuestro sistema, como son a nivel de jerarquías (jerarquias filtradas), indicadores o a la hora de ejecutar los informes y analisis (criterios de selección, selección de objetos a incluir en un informe, etc).

Algunos de los filtros  estáticos (con valores fijos) creados en nuestro sistema son los siguientes:

  • Año_2007, Año_2008: filtro sobre los valores del atributo Año, indicando un valor en concreto (2007, 2008, …).
  • Pais_España: filtro sobre los valores del atributo Pais, seleccionando el valor España.
  • LineaProducto_SinGamaAlta: filtro sobre los valores del atributo Linea Producto excluyendo determinados valores.
  • TipoCl_SinVentaDirecta: filtro sobre los valores del atributo Tipo Cliente, excluyendo los clientes de venta directa.
  • ES_TipoCL_No_VentaDirecta: filtro sobre el atributo pais con el valor España y a la vez sobre el atributo Tipo Cliente, excluyendo los de venta directa.
  • ZONA_CENTRO, ZONA_ISLAS, ZONA_NORTE, ZONA_LEVANTE, ZONA_SUR: filtros sobre el atributo Región, seleccionando una lista de valores (las regiones que incluyen cada zona, tal y como vemos en la imagen posterior).
  • …..

Filtro Estático ZONA_ISLAS

Algunos de los filtros dinámicos definidos (valores que se seleccionan o indican en tiempo de ejecución):

  • Año: filtro dinamico sobre los valores del atributo Año, nos permite seleccionar entre la lista de años definidos en la dimensión tiempo.
  • Periodo: filtro dinámico que nos permite definir un rango de fechas (fecha desde / fecha hasta), sobre el atributo fecha de la dimensión tiempo.
  • Dim_Cliente: filtro dinámico que nos permite elegir sobre que atributo de la dimensión cliente definir el filtrado, y a continuación, para ese atributo, indicar los valores de restricción (pudiendo seleccionar de la lista de valores de dicho atributo).
  • Dim_Tiempo: idem del anterior sobre todos los atributos de la dimensión tiempo.
  • ……

Selecciones Dinámicas

Las selecciones dinámicas van intimamente ligadas a los filtros dinámicos (de hecho, utilizan características de estas). Ademas, se pueden definir selecciones dinámicas para otros cometidos, como son:

  • Selección_Atributo_Tiempo: nos permite vincularla a un informe, de forma que al ejecutarlo podremos seleccionar que atributos queremos visualizar (y por los que queremos desglosar la información) en el informe,  todo ello en tiempo de ejecución. El usuario se podrá construir su filas y columnas de forma dinámica.
  • Selección_Indicadores_Informe: nos permite vincularla a un informe, de forma que al ejecutarlo podremos seleccionar de una lista los indicadores que queremos incluir en este (que serán los que se calculen y aparezcan en el informe), igualmente en tiempo de ejecución.
  • Seleccion_Filtro_Zona: nos permite seleccionar de una lista de filtros predefinidos. Asociado a un informe, cuando lo ejecutemos nos aparecera la lista de filtros y el que seleccionemos se aplicara para la construcción de los datos (por ejemplo, para seleccionar la zona geográfica para la que queremos realizar el análisis). En el ejemplo, se seleccionan filtros estáticos que ya tienen los valores de las regiones a considerar, aunque también podrian ser filtros dinámicos que pedirian la lista de valores a considerar.
  • Selección_Todas_Jerarquias: aplicada a un informe, nos permite seleccionar, de todas las jerarquias definidas en el sistema, los atributos correspondientes, y para cada uno de estos atributos, las correspondientes restricciones de filtrado de información (pudiendo seleccionar uno o varios atributos con los correspondientes valores para cada uno de ellos).
  • ….

Editor Selecciones Dinamicas - Lista de Indicadores a elegir

Igualmente, podríamos haber definido todo tipo de selecciones dinámicas para filtrar el valor de un indicador o de un atributo, y luego utilizarlas indistintamente en la definición de filtros simples o compuestos, o bien directamente en los informes (una selección dinámica también se puede considerar en este caso un filtro).

Conclusiones

Con la explicación y enumeración de los elementos definidos en nuestro proyecto concluimos la fase de modelado y diseño. A partir de ahora, intentaremos explotar nuestro DW con las diferentes herramientas de las que dispone Microstrategy 9. Empezaremos con el diseño de informes y las amplias posibilidades que este ofrece.

Hemos pasado de la definición teórica de los elementos del sistema Microstrategy a la fase práctica de ver como los hemos utilizado y definido nosotros para nuestro proyecto, viendo de una manera sencilla (se puede profundizar muchisimo mas) las posibilidades y propiedades que nos ofrece cada uno, y la cantidad de cosas que podemos construir con ellos para las siguientes fases del proyecto.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14.4. Gestión de usuarios en Microstrategy 9. Configuración del portal Web.

Publicado por respinosamilla en 27 Enero 2010

La gestión de usuarios se realiza en Microstrategy a nivel de proyecto, de forma que cada uno de ellos tiene sus propios usuarios y grupos de autorizaciones.

Antes de empezar, os recomiendo visualizar el video realizado por Microstrategy sobre la gestión de usuarios.

La gestión de usuarios se realiza desde la herramienta Desktop, en la sección de Administración. En Microstrategy se trabaja basicamente con tres conceptos: Roles de Seguridad,Usuarios y Grupos.

Gestión de usuarios en Microstrategy 9

Disponemos de un conjunto de privilegios, predefinidos y clasificados por areas temáticas, que son los siguientes:

  • Web Reporter.
  • Web Analyst.
  • Web Professional.
  • Opcion Web MMT.
  • Privilegios comunes.
  • Office.
  • Mobile.
  • Microstrategy Distribution Services.
  • Opción de origen múltiple.
  • Desktop analyst.
  • Desktop designer.
  • Architect.
  • Object Manager.
  • Integrity Manager.
  • Administración.

Cada conjunto de privilegios dispone de una lista de posibles tareas a realizar que podemos habilitar o dejar desmarcadas, de forma que se dispondra de autorizacion para dicha actividad en el caso de que el usuario o grupo tenga marcado el correspondiente flag (o no la tendra en el caso de que no este seleccionado). Con la selección de las diferentes tareas autorizadas en los diferentes grupos de privilegios existentes en Microstrategy definimos el concepto de Rol (grupo de autorizaciones). Microstrategy dispone de un conjunto de roles predefinidos que podemos utilizar en nuestros usuarios o grupos.

Editor de Roles de Seguridad

Una vez tenemos definido un rol, podemos desde el mismo editor indicar los  usuarios o grupos que lo poseen. Todas las autorizaciones indicadas en el rol pasaran automaticamente a formar parte del usuario o grupo. De la misma manera, cuando estamos creando un usuario o un grupo, podemos indicar, de cada privilegio, que tareas se autorizan o no al usuario (tal y como vemos en la imagen inferior). En el mismo editor de usuario o grupo podremos ver la autorizaciones que son heredadas por pertenecer a una entidad superior (el usuario pertenece a un grupo, por ejemplo, que ya tiene definidas sus propias autorizaciones, que el usuario también hereda o el usuario pertenece a un rol y también hereda todas las propiedades de este).

Mantenimiento de usuarios

Ademas de las autorizaciones, en el mantenimiento de usuarios se pueden indicar otros aspectos, como son:

  • Gestión de contraseñas: criterios para vencimiento de contraseña, frecuencia de vencimiento, bloqueo de una cuenta.
  • Filtros de seguridad: es un filtro de seguridad que se aplica a todas las consultas que ejecuta un usuario. Nos puede servir para limitar el acceso a los usuarios a determinados valores de atritubos (por ejemplo, creamos un filtro de seguridad para las diferentes regiones y los asignamos a los delegados de cada zona. De esta forma, solo podrán ver la información de su area, y no podrán ver nada del resto de zonas).
  • Grupos: grupos a los que pertence un usuario. Hereda todas las propiedades del grupo (autorizaciones y filtros de seguridad).
  • Verificación de identidad: si se va a verificar la c uenta cuentra un usuario de windows, de base de datos, servidor LDAP, etc.
  • Microstrategy Distribution Services: datos para la gestión de la distribución de informes (por ejemplo, indicar una cuenta de correo para el usuario, para de esta forma poder enviarle los informes a los que este suscrito).

A nivel de mantenimiento de grupos, disponemos de los mismos elementos, excepto la gestión de contraseñas, verificación de identidad y la configuración de distribución de servicios (no tienen sentido en este ámbito).

Privilegios a nivel de objetos.

Finalmente, Microstrategy nos permite establecer permisos sobre los diferentes objetos (Atributos, indicadores, filtros, etc) a nivel de si este se puede ver, modificar o se tiene control total sobre el. Esto nos puede valer para que determinados objetos no sean modificados por nadie que no sea la persona encargada de su definición o mantenimiento.

Privilegios a nivel de objetos

Con toda la configuración de usuarios, privilegios y permisos, podremos montar (sobre todo pensando en entornos complejos con muchos usuarios), el esquema de autorizaciones apropiado para que cada usuario, según su rol dentro del sistema de BI, solo tenga acceso a las tareas y objetos necesarios para el desarrollo de su trabajo.

Configuración del Portal Web

Antes de continuar, os recomiendo un vistazo al video elaborado por Microstrategy referente a la configuración de Portal Web.

Una vez concluida la instalación del producto, el proceso habrá creado todos los elementos necesarios en el servidor de Internet Information Services (Servidor Web) para poder utilizar el portal Web. Igualmente, en el proceso de configuración visto en anteriores entradas del blog, habremos dejado configurado el Intelligence Server según los parámetros oportunos. El Intelligence server nos llevara a todos los origenes de proyecto (contenedor de proyectos), que tengamos definidos del tipo “3 Niveles” (que se gestionan a través de él). Todos los proyectos definidos en un origen de proyecto de este tipo estarán disponibles en la interfaz Web (en caso contrario, solo estarán disponibles a través de la herramienta Desktop).

Solo nos quedará el paso final de conectar el Intelligence Server con el Web Server, tarea que realizaremos desde las paginas de administración Web:

Conexion del servidor Web con el Intelligent Server

El proceso es tan sencillo como indicar el nombre del servidor donde esta el Intelligence Server, y de esta forma establecemos el vínculo entre los dos elementos.

Configuracion parametros Web Server

Ademas podremos establecer otro tipo de propiedades, como la forma de autenticación de los usuarios, menú inicial, ordenación de los proyecto disponibles, etc. Una vez realizada la configuración, ya tenemos disponible también el entorno Web para trabajar con los diferentes elementos de Microstrategy (con el aspecto que vemos en la imagen siguiente):

Entorno Web de Microstrategy

El entorno Web por defecto es el que aparece en la imagen. Se podrán personalizar muchisimos aspectos de el en las preferencias de usuario, para hacerlo mas ajustado a las necesidades de cada uno.

Conclusiones

Hemos concluido en esta entrada del blog la serie de artículos que hablan de como configurar los elementos base de nuestro sistema BI utilizando Microstrategy. Antes de proceder a entrar en profundidad a preparar el sistema de reporting para los usuarios con la elaboración de los informes mas comunes, en la próxima entrada del blog detallaremos la configuración de todos los elementos de nuestro proyecto. Veremos a fondo las jerarquías de sistema y de usuario creadas, los indicadores de análisis, los filtros, las selecciones dinámicas y las transformaciones.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14.3. Diseño de Indicadores, Filtros y Selecciones Dinámicas en Microstrategy 9.

Publicado por respinosamilla en 26 Enero 2010

Antes de continuar con el diseño de indicadores, filtros y selecciones dinámicas, y ver la forma de preparar plantillas para nuestros informes, vamos a ver un poco mas en detalle elementos que tienen que ver con los atributos de las dimensiones (que vimos como se configuraban en la entrada anterior del blog), y que nos serán utiles en el desarrollo del proyecto.

Tipos de jerarquias.

Las jerarquias nos permiten organizar y navegar por los atributos. En Microstrategy, disponemos de dos tipos de jerarquías:

System hierarchy: Es la jerarquía del sistema, la que incluye las relaciones definidas entre los atributos del proyecto. Esta jerarquía no es necesario definirla, sino que se genera automaticamente en la herramienta Desktop al crear el proyecto (fue la que construimos utilizando el Architect).

Es la jerarquia por defecto, y contiene todos los atributos del proyecto, formando parte de la definición del esquema. Al terminar la creación del proyecto, es la única jerarquia que existe. La jerarquia de sistema no se edita, pero se actualiza cada vez que añadimos o quitamos atributos hijo o padre utilizando el editor de atributos o el architect, o añadimos nuevos atributos al proyecto.

Jerarquia del Sistema del proyecto EnoBI

La jerarquia del sistema es util para determinar las relaciones existentes entre todos los objetos del proyecto (podemos navegar por ella viendo los valores de los atributos y como estan relacionados unos con otros). Los atributos definidos en la jerarquia del sistema no necesitan estan definidos en una jerarquia de usuario. Los atributos de la jerarquia de sistema que no utilizemos en las jerarquias de usuario seguiran estando disponibles para ser usados en los informes, filtros o consolidaciones.

User hierarchy: las jerarquias de usuario son grupos de atributos y las relaciones entre ellos, juntados de manera que tenga significado en el contexto de análisis. No necesariamente tendrá que seguir  el modelo de datos lógico. Ademas, a diferencia de la jerarquia de sistema, nos permite definir limitaciones al numero de valores visualizados, establecer filtros sobre los valores a visualizar o definir un punto de entrada, que sera el atributo donde nos posicionaremos al utilizar la jerarquia (por ejemplo, al navegar o al realizar filtrado).

Editor de jerarquias

Por ejemplo, podremos crear una jerarquia que incluya los atributos Año, Trimestre, Mes y Dia. Cuando navegemos por los atributos con el Data Explorer, al hacer doble click en el año nos apareceran los trimestres, a continuación los meses y asi sucesivamente.

En nuestro proyecto vamos a crear todas las jerarquías necesarias para permitir la navegación por los diferentes atributos de las dimensiones.

Las jerarquias de usuario son las que tendremos disponibles cuando navegemos por los datos en los informes y documentos de Microstrategy, y nos permitiran disponer de la funcionalidad Drill Up y Drill Down entre los atributos que definamos dentro de ella. Por tanto, son un elemento indispensable en la configuración del sistema, pues son el punto de partida para sacarle todo el partido a la navegación dimensional. Por ejemplo, si en el ejemplo anterior estamos visualizando el atributo Trimestre, podremos navegar hacia arriba (drill up) por la jerarquia hasta el año, o navegar hacia abajo (drill down) hasta el mes, o cambiarnos a otra jeranquia y cambiar la navegación.

Son el unico tipo de jerarquia que se puede definir por el usuario y se podran crear todas las jerarquias que hagan falta dentro de un proyecto. Habra que pensar todas las jerarquias necesarias para que cubran todas las necesidades dentro del modelo de negocio de la compañia y del esquema del data warehouse.

Transformaciones

Son objetos del esquema que podemos definir utilizando los atributos. Se utilizan para ejecutar análisis de series de tiempo como periodo a fecha, periodo actual contra periodo anterior o análisis de periodos cambiantes. Las transformaciones las definimos sobre los atributos (como por ejemplo, en la imagen, en la que estamos utilizando una fecha, a la que restamos 14 dias). Esto nos configura un valor variable, que dependerá del valor del atributo con el que esta relacionado, y que luego utilizaremos al crear los indicadores.

Editor de transformaciones

Por ejemplo, tendremos un indicador llamado Ingresos Netos (calculado a partir del hecho ingresos netos), que nos mostrara las ventas netas actuales en el periodo que estemos analizando. Si creamos otro indicador llamado Ingresos Netos de hace 14 dias (y le asociamos la transformación definida en la imagen), cuando utilizemos el indicador en un informe nos mostrará los ingresos de 14 dias antes. Las transformaciones son un elemento muy potente y que nos permitira realizar de una forma sencilla el análisis de las series temporales.

Todos los objetos visto hasta ahora, los atributos, los hechos, las jerarquias de usuario y las transformaciones forman parte de los objetos de Esquema, y son el punto de partida para la construcción y el desarrollo de nuestro sistema de Business Intellingence. Veamos que elementos podemos construir con ellos:

Diseño de Indicadores, Filtros y Selecciones.

Antes de continuar, os recomiendo visualizar el video elaborado por Microstrategy donde se habla del diseño de indicadores, filtros y selecciones.

Indicadores

Los indicadores son objetos de MicroStrategy que representan medidas de negocio e indicadores de rendimiento clave. Desde un punto de vista práctico, los indicadores son los cálculos realizados en los datos almacenados en la base de datos y cuyos resultados se muestran en un informe. Son parecidos a las fórmulas de un programa de hoja de cálculo. No sería una exageración afirmar que el centro de prácticamente todos los informes son sus indicadores. La mayoría de las decisiones que se toman acerca del resto objetos que se deben incluir en un informe dependen de los indicadores que se utilicen en el informe.

En particular, los indicadores definen los cálculos analíticos que se realizan con los datos almacenados en el origen de datos. Un indicador se compone de hechos del origen de datos y de operaciones matemáticas que se van a realizar en tales hechos para, de este modo, poder efectuar un análisis de negocio con sentido en los resultados.

Editor de Indicadores

En los indicadores se pueden definir varias cosas, aunque el elemento fundamental es la formula que determina su valor.Una fórmula de indicador puede estar formada por hechos del origen de datos (como en el ejemplo anterior), atributos empresariales del origen de datos u otros indicadores que ya se hayan creado. Los siguientes ejemplos de indicadores muestran estas opciones distintas de fórmulas:

  • Indicador formado por hechos: (Sum(Ingresos) -Sum(Coste)). La fórmula de este indicador suma todos los beneficios registrados en el origen de datos, suma todos los costes registrados en el origen de datos y, a continuación, resta el total de costes del total de beneficios.
  • Indicador formado por atributos: Count(Clientes). La fórmula hace un recuento de los clientes de la empresa registrados en el origen de datos.
  • Indicador formado por otros indicadores: [Beneficios de este mes] – [Beneficios del mes pasado] / [Beneficios del mes pasado]. La formula de este indicador resta los beneficios del mes pasado (un indicador) de los beneficios de este mes (otro indicador) y divide el resultado entre el resultado del mes pasado para determinar la diferencia porcentual en beneficios desde el mes pasado.

Las formulas pueden contener funciones matematicas y Microstrategy posee un amplia abanico de ellas para permitir realizar multiples tipos de cálculos:

Funciones matematicas para utilizar en las fórmulas

Ademas de la fórmula, podemos indicar lo siguiente en las propiedades del indicador:

  1. Nivel de cálculo del indicador: indicamos el nivel en la jerarquia de atributos en el que se realiza el cálculo del indicador. Por defecto, un indicador se calcula en el nivel de informe, es decir, en el nivel del atributo del informe en el que se encuentra el indicador. Pero puede haber ocasiones en las que el cálculo solo tenga sentido en un determinado nivel (no en todos los posibles según la estructura jerarquica de atributos de las dimensiones). Con este atributo condicionamos ese aspecto.
  2. Condición:Es una condición que se incluye en los datos desde el origen de datos y aplica sólo a los datos relacionados con ese indicador en particular. El filtro entra a formar parte de la definición del indicador. La aplicación de la condicionalidad en un indicador hace que el cálculo de un indicador esté calificado por el filtro del indicador, independientemente de lo que se haya especificado en el filtro del informe, si lo hubiera. Nos permite definir indicadores con sus propias condiciones independientemente de las condiciones fijadas a nivel de informe.
  3. Transformación: Las transformaciones se agregan normalmente a los indicadores diseñados para realizar análisis de series temporales, por ejemplo, para comparar los  valores de momentos distintos, como este año frente al anterior o los del mes hasta la fecha. Las transformaciones son útiles para descubrir y analizar tendencias basadas en el tiempo en los datos.Las transformaciones se crean como objetos independientes (como hemos visto anteriormente) y se agregan a un indicador.

En el proyecto Tutorial que nos ofrece Microstrategy podemos ver ejemplos de como definir indicadores de todos los tipos posibles, desde funciones para manipular fechas, cadenas o numeros, funciones estadisticas, financieras, Olap o funciones para extraccion de datos para DataMining.

Filtros

Los filtros nos permiten establecer restricciones de valores a los diferentes elementos de nuestro sistema. Por ejemplo, podremos establecer un filtro sobre el atributo año y seleccionar un valor en concreto (por ejemplo 2009),y al ejecutar un informe con ese filtro, solo se recuperan los valores de ese año. Podriamos igualmente haber definido ese filtro de forma dinámica, de forma que al ejecutar el informe, nos aparecezca una lista de años y seleccionemos el que vamos a analizar (será un filtro de selección dinámica).

Editor de filtros

También se pueden definir los filtros sobre los indicadores, por ejemplo, para limitar que no nos aparezcan valores que sean inferiores a un valor u operaciones similares.

Selecciones dinámicas (Prompts)

Una selección dinámica es una pregunta que se hace al usuario que ejecuta un informe. Cualquier informe puede contener selecciones dinámicas. Este elemento nos permite dar un dinamismo a los informes y poder ejecutar el mismo report con diferentes criterios de ejecución. Las selecciones dinámicas pueden ser obligatorios (es imprescindible indicar un valor) u opcionales.

Las selecciones dinámicas se usan para seleccionar las condiciones de filtrado en el momento de ejecución del informe. Se puede condicionar de forma dinámica un atributo, una selección de elementos de atributo, métricas y otros objetos que se puedan incluir en un informe. Las selecciones dinámicas pueden utilizarse junto con otras selecciones estáticas, filtros, y se pueden añadir a un informe tantas como sean necesarias.

Creación de selecciones dinámicas

Tenemos los siguientes tipos de selecciones dinámicas:

  • Selección dinámica de una definición de filtro: permiten a los usuarios establecer criterios de filtrado en la ejecución de informes, que se van a aplicar sobre los valores devueltos en la ejecucion de estos. Podremos establecer filtros sobre los siguientes objetos:
    • Jerarquías: Es posible elegir dinámicamente la calificación de una jerarquía o entre cualquier atributo de cualquier jerarquía. Nos permite elegir entre todos los atributos que forman una jerarquía y seleccionar los valores de filtrado entre los valores mostrados para cada atributo.
    • Atributos: Al igual que con las Jerarquías, es posible elegir dinámicamente un atributo concreto. Similar al caso anterior, pero solo se califica sobre un atributo en concreto (por ejemplo, el año).
    • Lista de elementos de un Atributo. Esta opción permite elegir de una lista preestablecida de elementos de atributo, o bien se pueden mostrar todos los elementos. Podemos preseleccionar una lista de valores de los posibles de un atributo, y de esa lista previa, seleccionar los valores deseados.
    • Calificar sobre un indicador. La calificación de una indicador se puede hacer también de forma dinámica cuando se ejecuta un informe. Nos permite establecer restricciones conforme a los valores del indicador.
  • Selección dinámica de un objeto: permite al usuario seleccionar que objetos (tales como atributos, metricas, grupos personalizados, etc) incluir en el informe.  Por ejemplo, podemos tener una lista con varios indicadores, y a la hora de ejecutar el informe, solo seleccionaremos los indicadores que nos interesen.
  • Selección dinámica de un valor: Permite la selección dinámica de una fecha, de un valor numérico o de un texto. El valor devuelto lo podremos utilizar posteriormente en la definición de los filtros sobre una metrica o los valores de un atributo.
  • Selección dinámica de nivel: Esta opción permite al usuario especificar el nivel de calculo de un indicador.

Plantillas de Informes

Las plantillas son objetos que nos sirven de base para construir los informes. Definen el layout que tendra el informe. Las plantillas especifican el conjunto de datos que el informe debe recuperar del origen de datos y también determinan la estructura en que se muestra la información en los resultados del informe.

Cuando se crea una plantilla, se colocan los diferentes objetos de Microstrategy en el, siendo los que podemos utilizar los siguientes: atributos, indicadores, filtros y selecciones dinámicas (ademas de los grupos personalizados y las consolidaciones).

Basicamente, tenemos dos tipos de layout:

  • Tabla cruzada (cross-tab): util para analisis multidimensional.
  • Tabular: util para listados simples de información.

Editor de Plantillas

Las plantillas nos serviran de base para la construcción de informes.

Conclusiones

Hemos pasado por encima de los principales componentes que forman la base del sistema de BI Microstrategy. Son elementos mucho mas complejos de lo que hemos visto, con muchisimas opciones y funcionalidades, que nos van a dar muchisimas posibilidades de cara a cubrir nuestros requerimientos.

Os recomiendo una lectura profunda de la documentación proporcionada por Microstrategy para conocer cada uno de los elementos:

Estructura de Documentación de Microstrategy

De todo lo visto, podemos destacar:

  • Jerarquias de usuario: nos permite personalizar la estructura de los atributos definidos en el modelo. Nos permite darle nuestro enfoque al análisis, pasando por encima del modelo jerarquica general. Ademas, el hecho de poder definir filtros sobre ellas nos podrían permitir crear las jerarquias personalizadas según la persona que va a analizar la información (como por ejemplo, por ambito geográfico).
  • Indicadores: van mucho mas alla de simples calculos utilizando los valores que hemos generado en la tabla de hechos de nuestro modelo. El uso de las funciones de las que dispone microstrategy permite que podamos hacer casi de todo. Muy interesante el hecho de poder disponer de indicadores que calculan temas relacionados con los atributos (como contadores).
  • Filtros y selecciones dinámicas: nos dan dinamismo en los informes a todos los niveles, no solo a la hora de filtrar la información la información a mostrar discriminando por los valores de los atributos o de los indicadores, sino también permitiendonos seleccionar que elementos queremos que aparezcan en los informes de manera dinámica. El hecho de disponer de selecciones por los valores de los atributos de una dimensión, o de poder seleccionar entre los diferentes atributos de una jerarquia y de ahí, los valores, también nos da potencia de cara al filtrado.

Con lo visto, tenemos unas nociones básicas para empezar a trabajar con Microstrategy 9, definir los elementos básicos que luego utilizaremos (como son las jerarquías de usuario, los indicadores, filtros y selecciones dinámicas) y seguir profundizando en el resto de componentes de la herramienta.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14.2. Diseño de hechos, atributos y jerarquia de dimensiones en Microstrategy 9.

Publicado por respinosamilla en 24 Enero 2010

Una vez configurado el servidor y creado el proyecto (tal y como vimos en la entrada anterior del blog), vamos a proceder a implementar el modelo lógico de nuestro Data Warehouse dentro del esquema de metadatos de Microstrategy.

Esta tarea es fundamental para empezar a trabajar con nuestra herramienta de BI. Es el punto de partida para empezar a preparar los diferentes elementos que formaran nuestro sistema de Business Intelligence (informes, cuadros de mando, análisis, etc).

Del modelo lógico al metadata de Microstrategy

Las tareas que realizaremos en este paso será la definición de los atributos de las dimensiones, la relación entre ellos (organización jerarquica), asi como de los indicadores de negocio relevantes en nuestra organización. Aquí estableceremos la relación entre estos elementos lógicos y sus equivalentes a nivel físico (tablas y campos de la base de datos).

Os recomiendo visualizar el video elaborado por Microstrategy para ver un ejemplo real de la definición de estos elementos.

Haciendo memoria de la teoria del modelo dimensional que vimos anteriormente:

  • Hechos / indicadores: son los valores de negocio por los que querremos analizar nuestra organización (importe ventas, margen, rentabilidad).
  • Dimensiones: las perspectivas o diferentes ambitos por los que querremos analizar estos indicadores de negocio (son las que dan sentido al análisis de los indicadores de negocio, pues sin dimensiones no son mas que un valor mas).  Permite contestar preguntas sobre los hechos y darles un contexto de análisis. En nuestro modelo, las dimensiones seran el tiempo (siempre suele haber una dimensión temporal), cliente, producto, promoción y logística.

Asistente creación de proyectos

Para configurar esto dentro de Microstrategy, realizaremos tres tareas principales:

1) Selección de tablas del catalogo del Warehouse: de todas las tablas que tendremos en la base de datos del Data Warehouse, seleccionaremos con cuales de ellas vamos a trabajar. Las tablas seleccionadas y sus campos determinaran los elementos disponibles para el resto de pasos.

2) Creación de hechos: de las tablas seleccionadas en el paso anterior, indicaremos que campos son los que corresponden a los hechos. Estos campos nos serviran de base para la creación de las metricas, que seran las que utilizaremos en los informes, documentos y análisis. Estas métricas, partiendo de las base de los hechos, podran incluir operaciones, calculos de uno o mas campos, así como el uso de funciones complejas (Microstrategy incluye un gran número de funciones para realizar calculos complejos sobre los datos, incluyendo funciones estadísticas). Esto nos permitira disponer de valores que se calculan y que realmente no estan guardados en la base de datos.

3) Creación de atributos: en este paso, de la misma manera, seleccionaremos los campos que corresponden a los atributos y realizaremos la configuración básica de ellos, como descripciones, ordenación, asignación de descripciones a códigos (lookups), asi como la configuración de la estructura jerarquica de los diferentes componentes que forman una dimensión (a través de las relaciones padres e hijos).

Para realizar estas tareas, utilizaremos el Asistente para la creación de proyectos, que nos guiara de una forma ordenada, en todos los pasos a realizar para completar estas tareas. El asistente solo se utiliza cuando se crea el proyecto y los procesos de mantenimiento posteriores de las tablas, atributos y hechos los realizaremos desde la herramienta de desarrollo Microstrategy Architect o bien desde el Desktop.

Veamos un poco mas en profundidad cada uno de estos pasos:

Selección de tablas del catalogo del Warehouse

En este paso indicaremos la base de datos que corresponde al Data Warehouse, y del catalogo que indiquemos, nos apareceran todas las tablas definidas en el a nivel físico. De dichas tablas, seleccionaremos aquellas que sean relevantes para nuestro módelo (tal y como vemos en la imagen).

Selección de Tablas de DW

Microstrategy nos permite trabajar con la misma tabla varias veces a traves de los “alias” de tabla. Puede ser util cuando la misma dimensión fisica se utiliza de forma lógica en varios lugares(y no es necesario tener que tener una tabla física para cada una de las dimensiones). Igualmente, también nos permite trabajar con vistas.

Creación de Hechos

De los campos de las tablas indicadas en el punto anterior, en este paso seleccionaremos cuales de ellos son las que consideraremos Hechos. En principio, aunque se puede configurar, solo se toman para este cometido los campos que estan definidos como numéricos.

Selección de columnas de Hechos

Creación de Atributos

La creación de atributos es un poco mas compleja y lleva asociados varios pasos. En primer lugar, de todos los campos de las tablas, seleccionaremos cuales son los que corresponden a nuestros atributos. En el caso de que un atributo lleve asociado un campo identificador y un campo descripción, solo seleccionaremos el campo identificador (pues después se establecera la relación entre campos de código y campos de descripción o de lookup).

Creación de atributos

A continuación, para cada uno de los atributos, indicaremos su campo de lookup. Cuando un campo no dispone de este (como el campo Código Postal, que en si mismo se describe), indicaremos “Utilizar ID como descripción”.

Como ultimo paso en la creación de los atributos, para cada uno de ellos indicaremos que atributos son hijos de el (estan despues en la jerarquia de la dimension) o cuales son padre (estan arriba en el arbol). Este paso lo omiteremos, pues lo realizaremos a continuación con la herramienta gráfica Architect, que es mucho más agil para realizar esta definición.

Mantenimiento del módelo usando Microstrategy Architect

El Architect es, junto con el Desktop, la herramienta principal de desarrollo dentro de Microstrategy. Utilizando esta ultima herramienta podriamos igualmente haber realizado la definición de los hechos y atributos (el paso de selección de tablas habría que haberlo realizado igualmente como un paso previo).

El architect es una herramienta gráfica y con ella se realizan las tareas de mantenimiento dentro de MS. En nuestro caso, dejamos sin definir las jerarquías de atributos y las hemos completado utilizando esta herramienta. Esto es tan sencillo como seleccionar el atributo padre y arrastrar hacia el atributo hijo para que se cree la relación. Posteriormente, seleccionamos en el conector para modificar el tipo de relación entre los componentes ( 1 a n, 1 a 1, etc).

Definicion de jerarquias de atributos con Architect

En la imagen, podeis ver como hemos definido la estructura jerárquica dentro de la dimensión Cliente. Ademas, desde aquí podemos crear nuevos atributos, nuevos hechos o modificar las propiedades de estos (en la parte de la derecha tenemos la tabla de propiedades). Seleccionando el elemento, en esa sección nos aparece toda la información de como esta configurado.

Microstrategy Tutorial

Ademas del proyecto que hemos creado nosotros, al utilizar la herramienta Desktop observamos que hay creado un proyecto de ejemplo, llamado MicroStrategy Tutorial. Este proyecto trabaja con bases de datos de prueba en Access y contiene ejemplos de todos los elementos que podemos definir y utilizar en Microstrategy. Puede ser un punto de partida para aprender a trabajar con los diferentes componentes.

Igualmente, al realizar la instalación, se nos ha creado una carpeta de Documentación, donde disponemos de un lote de archivos en formato PDF con manuales completos de todas las herramientas de Microstrategy, como por ejemplo:

  • Microstrategy Evaluation Guide
  • Installation and Configuration Guide.
  • System Administration Guide.
  • Project Design Guide.
  • Basic Reporting Guide.
  • Advanced Reporting Guide.
  • Report Service Document Creation Guide.

Conclusiones

Despues de realizar estas tareas, el módelo lógico de nuestro proyecto esta implementado y configurado dentro de Microstrategy 9, y podemos comenzar a utilizar la herramienta.

Uno de los puntos fuertes que hemos observado en la herramienta es que todo esta centralizado en las mismas aplicaciones, y desde ellas realizaremos todas las tareas de desarrollo, desde la configuración del sistema, creación del modelo, asi como la creación de los componentes que utilizaran los usuarios. El producto parece ser compacto y consistente, esta es la primera impresión que transmite.

Igualmente, Microstrategy proporciona gran cantidad de documentación, ejemplos, video tutoriales, etc, para que sea más fácil empezar a trabajar con la herramienta y buscar información sobre los diferentes elementos que la conforman. Hasta se incluye en la instalación un curso Web de la herramienta con examenes de evaluación.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14.1. Instalación y configuración del servidor Microstrategy 9.

Publicado por respinosamilla en 23 Enero 2010

Despues de descargarnos la versión de evaluación gratuita de Microstrategy 9 de su Web, procederemos al registro del producto. Para esto, utilizaremos el código de promocion que nos proporcionan y a la vuelta,  nos enviarán el código de activación que sera el que nos permita utilizar la funcionalidad completa de la herramienta durante 30 dias (sino lo activamos solo se puede utilizar durante 7 dias).

Antes de instalar, vamos a tener en cuenta que requisitos de aplicaciones tiene la suite:

  1. Sistema Operativo: Windows 2003 SP2, Windows 2003 R2 SP2, Windows XP Professional Edition SP3 (on x86) or SP2 (on x64), Windows Vista Business Edition SP1, or Windows Vista Enterprise Edition SP1 (all Windows operating systems on x86 or x64). También se puede instalar la suite en Windows XP o Vista, pero solo para propositos de evaluación (como es nuestro caso).
  2. Servicios de Internet: Microsoft Internet Information Services (IIS) version 5.1, 6.0, or 7.0
  3. Explorador Web: Microsoft Internet Explorer version 6.0.2 or 7.0
  4. Lector Pdf: Adobe Reader version 7.0, 8.0, 8.1, or 9.0
  5. Adobe Flash Player version 9.0
  6. Para evaluar el MicroStrategy Office, cualquier de las versiones siguientes de Office:Microsoft Office 2002 (XP) SP3, Microsoft Office 2003 SP3 y Microsoft Office 2007 SP1.

A continuación lanzaremos el proceso de instalación, en el que se nos pedirá la ubicación de los ficheros y los elementos a instalar. Si alguna de las dependencias para instalar la suite no se cumple, se nos avisará de ello. Una vez concluido el proceso de instalación, continuaremos con la configuración. Como ayuda, os recomiendo el video Set Up and Configure the Server: Instalación y configuración del servidor. Una vez concluido el proceso, el sistema se reiniciara. Sería conveniente en este momento realizar el registro de las licencias utilizando el License Manager.

Bases de datos necesarias para utilizar Microstrategy 9

Para trabajar con Microstrategy, tendremos que tener disponibles varios esquemas de base de datos, cada uno con un cometido diferente:

  • Datawarehouse: una o varias bases de datos de donde la herramienta leera la información (según el módelo que construyamos), para elaborar los informes, consultas, cuadros de mando, cubos, etc. Es la base de datos que hemos modelado y construido en la fase de analísis de nuestro proyecto y llenado con los procesos ETL utilizando Talend.
  • Metadata: son las tablas internas de Microstrategy donde se guarda toda la información del modelo de datos que definamos y de todos los objetos que construyamos utilizando la herramienta (filtros, informes, indicadores, etc.). Es el corazon del sistema de BI.
  • Historial: historial de las modificaciones que realizemos con los objetos.
  • Estadisticas: tablas para mantener y controlar la actividad del sistema.

Microstrategy nos permite trabajar de forma directa con los principales motores de base de datos (DB2, Informix, MySql, Oracle, PostreSQL, Sybase o SQL Server). Igualmente, a través de ODBC podremos acceder a otras muchas bases de datos (comprobad las tablas de compatibilidad en la documentación).

Motores de bases de datos a utilizar con Microstrategy

En nuestro caso, utilizaremos ODBC, con el driver proporcionado por MySql. Y configuraremos las siguientes origenes de datos (podemos utilizar el Connectivity Configuration Wizard proporcionado por Microstrategy o el gestor de conexiones ODBC de Windows):

  • ENOBI_DW: base de datos donde se ubicara el Datawarehouse (corresponde a la base de datos con esquema ENOBI en MySql).
  • ENOBI_MD: base de datos donde se ubicara el Metadata de nuestro proyecto (corresponde a la base de datos con esquema METADATA en MySql).
  • ENOBI_HS: base de datos donde se ubicara el Historial (esquema HISTORIAL en MySql).
  • ENOBI_ES: base de datos donde estarán las estadísticas (esquema ESTADISTICAS en MySql).

Configuración Inicial del Sistema

Una vez definidos las conexiones ODBC e instalada correctamente la aplicación y su licencia, vamos a utilizar el asistente de configuración (Configuration Wizard) para dejar el sistema listo para empezar a trabajar con el.

El configuratión Wizard tiene 3 tareas a realizar, que son la siguientes:

Configuration Wizard

  • Tablas de repositorio: en este paso creamos en las bases de datos los catalogos de tablas necesarios para los diferentes componentes (como hemos visto METADATA, ESTADISTICAS e HISTORIAL). El proceso se conecta a las bases de datos y crea en ellas todas las tablas necesarias para gestionar el metadatos de microstrategy, llenando ademas el contenido de las tablas con los objetos predefinidos.

Creacion del repositorio de tablas del Metadata

  • Definiciones de MicroStrategy Intelligence Server: el Microstrategy Intelligence Server es el motor de procesamiento y gestion de los trabajos de las aplicaciones de informes, análisis y monitorización. Utiliza una arquitectura orientada al servicio (SOA), y estandariza en una única plataforma todas las necesidades de analisis y reporting, a traves de varios canales de acceso:Web browsers, Microsoft® Office, Desktop clients,y email. En este paso de la configuración le asociamos al Intelligence Server el esquema de base de datos del METADATA (que habremos dejado preparado en el paso anterior), e indicamos parametros adicionales de configuración (como el puerto TCP o si queremos registrarlo como un servicio). Tendremos un unico Intelligence Server en nuestro sistema.

Configuracion Intelligence Server

  • Orígenes de Proyecto: un origen de proyecto es la ubicación centralizada de los diferentes proyectos. Es un contenedor que luego nos permitira definir dentro de el los proyectos que tengamos en nuestra infraestructura de BI. Se pueden definir varios origenes de proyecto (no necesariamente solo uno). Al crear un origen de proyectos, le asociamos un tipo de origen y le indicamos el tipo de validación de usuarios que se va a realizar para el ( usuario de windows, usuario de Microstrategy, usuario LDAP, usuario de base de datos, etc). En nuestro caso creamos el origen de Proyecto ENOBI que va a incluir todos los elementos de nuestro proyecto.

Definición de Origenes de Proyecto - Tipo de validación de usuarios

Los tipos de Origen de proyecto son los siguiente, segun el  tipo de configuración:

  • Directo o 2 niveles: pensado para instalaciones de test, formación o prototipos. En este caso, no pasamos a través del Intelligence Server, sino que accedemos directamente al Metadata cuando creemos un proyecto (por eso hay que indicar que origen de datos contiene el Metadata).
  • Microstrategy Intelligence Server o 3 niveles: pensado para instalaciones en productivo. En este caso pasamos a través del Intelligence Server, y por tanto, utilizamos el origen de datos del Metadata que definimos anteriormente en él.

Esquema Arquitectura Microstrategy

En un origen de Proyectos podremos definir uno o varios proyectos utilizando el Project Builder o  el Microstrategy Desktop (y su asistente para la creación de proyectos).

Hemos concluido con estos paso la configuración básica de nuestro servidor de Microstrategy 9. Ha sido relativamente sencillo dejar el sistema preparado para comenzar a trabajar con las herramientas de Microstrategy.

Creación del proyecto ENOBI

Es el último paso para poder empezar a trabajar con las herramientas de Microstrategy. Un proyecto ha de estar siempre ubicado en un origen de Proyectos, como hemos visto. Para la creación del proyecto, tenemos dos herramientas:

  • Project Builder: es un asistente pensado para la creación de proyectos sencillos, demos y prototipos, por lo que tiene bastantes limitaciones. Para cualquier proyecto productivo, sera conveniente utilizar la herramienta Desktop. En la entrada 8 del blog, construimos un prototipo de nuestro proyecto utilizando esta herramienta (se explica allí de forma detallada todos los pasos seguidos).
  • Desktop – Asistente para la creación del proyectos: es la herramienta principal de desarrollo para trabajar con Microstrategy. En la herramienta Desktop vemos los diferentes origenes de proyecto que tenemos definidos en nuestro sistema, y seleccionaremos uno de ellos para crear en él el nuevo proyecto. A continuación lanzaremos el asistente, tal y como vemos en pantalla. Tiene una serie de pasos donde configuraremos los diferentes elementos que conformaran el modelo Dimensional del proyecto. Con la herramienta Architect se completa la configuración jerárquica de los atributos que forman las dimensiones.

Podeis ver el video de Microstrategy donde se detallan todos los pasos a seguir para la creación de un proyecto y sus componentes.

Asistente para la creación de Proyectos

Con la herramienta realizaremos una asociación entre las tablas de bases de datos del Data Warehouse (modelo físico), con los elementos lógicos de nuestro módelo (dimensiones y sus atributos; jerarquía entre los diferentes atributos que forman las dimensiones y finalmente, hechos e indicadores de negocio ). Detallaremos los pasos seguidos para realizar esto en la siguiente entrada del Blog.

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

14. Implementación del sistema BI utilizando Microstrategy.

Publicado por respinosamilla en 20 Enero 2010

Aunque ya utilizamos la Microstrategy Reporting Suite para la construcción del prototipo de nuestro proyecto (ver entrada del blog ), antes de realizar la implementación completa del proyecto vamos a hablar un poco de Microstrategy.

Microstrategy es una compañia norteamericana, fundada en Virginia en 1989. Esta especializada en ambitos de Inteligencia de Negocio. Después del ultimo baile de adquisiciones (Cognos por parte de IBM, Business Objects por parte de Sap, etc.), se ha quedado como uno de los pocos grandes fabricantes de software BI independientes.

Parte de la fuerza de Microstrategy radica en su especialización, y en que su producto es realmente una plataforma integrada de herramientas de Inteligencia de negocio, y no diferentes productos agregados para formar una suite (como es el caso de otros fabricantes, conseguido en ocasiones a base de adquisiciones). Aparece en el cuadrante superior de los informes Gartner (tal y como vemos en la imagen) y cuenta con unos de los mayores porcentajes de fidelidad por parte de los clientes.

Su producto principal es la suite Microstrategy 9, que incluye todos los elementos para crear la estructura de business intelligence en una empresa.

Arquitectura de Microstrategy Reporting Suite

Algunas de las características mas importantes de la versión 9 son la siguientes (podeis ampliar información en la entrada del blog BI Facil ):

Los elementos mas importantes que forman la herramienta de Microstrategy son los siguientes:

MicroStrategy metadata: repositorio que almacena las definción de los objetos de MicroStrategyy la información sobre el data warehouse.
MicroStrategy Intelligence Server: servidor analitico optimizado para el reporting empresarial y para el analisis Olap.
MicroStrategy Desktop: aplicación en entorno windows que proporciona un completo abanico de funciones analíticas  diseñadas para facilitar el desarrollo de informes.
MicroStrategy Web and Web Universal: interfaz de usuario altamente interactivo para la ejecución de informes y análisis.

Componentes de Microstrategy

•MicroStrategy project: lugar donde definimos y almacenamos todos los objetos del esquema y la información que necesitamos  para trabajar con nuestro sistema de reporting y analisis.
•MicroStrategy Architect,: herramienta para el diseño de los proyecots, que nos permite definir de forma gráfica todos los componentes requeridos para el proyecto desde una interfaz centralizada.

Los componentes de la plataforma de MicroStrategy trabajan de forma conjunta para proporcionar un entorno de analisis y reportig a la comunidad de usuarios de una organización, tal y como vemos en la imagen anterior:.

Como parte de su estrategia para captar clientes de medianas empresas, y también para plantar cara al gran desarrollo de las soluciones BI Open Source, Microstrategy ha liberado una parte de su producto en la Reporting Suite. Podemos ver en la imagen la parte que incluye la Reporting Suite, y la parte adicional de la que podriamos disponer si compramos la Suite Microstrategy 9. La MRS incluye licencia gratuita indefinida para 1 CPU y 25, 50 o 100 usuarios nominales y también 60 dias de soporte técnico via email. De la misma manera, tenemos acceso a su centro de recursos, donde se dispone de una amplia base de conocimiento, manuales completos de los productos, foros de discusión o recursos para desarrolladores (ver la guia rapida para empezar aquí ). Se supone que con este tipo de licencia, las empresas podrán cubrir una parte de sus necesidades en el ámbito del reporting y BI,  conocer la herramienta y ampliar con la parte de pago las funcionalidades, según vayan surgiendo nuevas necesidades.

Web del Centro de Recursos de Microstrategy

Para el proyecto ENOBI vamos a utilizar la versión de evaluación gratuita de Microstrategy 9,que podremos probar durante 30 dias. Para contruir nuestro sistema, nos valdrá todo lo que aprendimos montando el prototipo de evaluación inicial (pues la herramienta de modelado y desarrollo, el MicroStrategy Desktop y MicroStrategy Architect son comunes a ambas versiones, y nos valdrá todo lo que aprendimos en su momento).

Podriamos haber utilizado la Reporting Suite, pero tenemos el objetivo de comparar una versión Propietaria de software BI con una versión Open (que será Pentaho). Y para que ese análisis sea mas amplio, es preferible tener la versión completa. De esta forma podremos realizar un cuadro comparativo de la funcionalidad con cada herramienta ( y especificar de una forma clara las ventajas de una y otra, puntos fuerte y debiles, en que herramienta es mas facil hacer que tipo de cosas, para que cosas se necesita desarrollo adicional o conocimientos técnicos mas profundos, en que puntos cambiamos la facilidad de montaje por horas de consultoria pero menos precio de licencias, etc).

Esa comparativa entre Microstrategy y Pentaho será el pilar principal de nuestra investigación a partir de este momento, que nos va a permitir conseguir un amplio conocimiento de las herramientas, e igualmente llevar a la práctica y profundizar en mas conceptos de la teoria de la inteligencia de negocio (reporting, cuadros de mando, olap, data mining).

Igualmente, intentaremos comparar dos productos en el ámbito de las ETL Opensource, como son Talend Open Studio (del que ya hemos visto unas cuantas cosas ), y Pentaho Data Integration (Kettle), con el que intentaremos reproducir todos los procesos realizados hasta el momento para la carga del DW.

Y para que vayais entrando en calor, nada como unos videos tutoriales que se publican en la Web de Microstrategy para conocer el producto:

Comparativas Microstrategy – Otros productos BI

Finalmente, os dejo unas comparativas de Microstrategy con los principales productos del mercado ( Sap Business Objects, IBM Cognos, Oracle OBIEE Plus, Microsoft y Qliktech ), que os pueden servir en el caso de que esteis realizando una selección del producto a utilizar (ver comparativa).

Comparativas con otros productos BI

Son muy interesantes, pues comparan el producto de Microstrategy con sus competidores a un gran nivel de detalle, remarcando que cosas se pueden hacer con MS y no con los competidores, ademas de incluir whitepapers independientes. No disponen de una comparativa con productos Open (intentaremos realizar nosotros al final de nuestro proyecto la nuestra con Pentaho).

Publicado en Business Intelligence, Microstrategy | Deja un Comentario »

13.5. Exportación jobs en Talend.Planificacion procesos ETL.

Publicado por respinosamilla en 18 Enero 2010

Una vez concluido el desarrollo de los procesos para la carga del DW, la siguiente tarea sera la planificación de estos para su ejecución regular, de forma que vayan reflejando en el DW todos los cambios que se vayan produciendo en el sistema operacional ( modificaciones en los datos maestros y nuevos hechos relacionados con los procesos de negocio de ventas).

Los jobs que hemos definido usando Talend se podrían ejecutar a petición desde la herramienta, o bien a nivel de sistema operativo, utilizando la correspondiente herramienta (CRON en Unix/Linux, AT en Windows). Para ello es necesario generar los ficheros de scripts a nivel de sistema operativo.

Para hacer esto, hemos de exportar el Job, pulsando con el botón derecho sobre el. Nos aparecera el correspondiente menú contextual, donde podremos seleccionar la opción “Export Job Scripts“. Como ya comentamos, Talend puede trabajar a nivel de generación de código con los lenguajes Java y Perl. Cuando creamos un proyecto, seleccionamos con que lenguaje vamos a trabajar(en nuestro caso hemos seleccionado Java), lo que determina que internamente se trabaje a todos los niveles con Java, al igual que a la hora de definir expresiones en los diferentes procesos y transformacion. De la misma manera, cuando exportemos los correspondientes scripts de un Job, estos se generarán utilizando dicho lenguaje.

Al exportar el Job, nos aparece un cuadro de diálogo, como el que veis a la derecha, donde se nos pide un directorio para realizar la generación de todos los elementos necesarios, ademas de indicar una serie de opciones:

- Tipo de exportación: trabajo autonomo, Axis web service, JBoss ESB.

- Versión del job: podemos realizar una gestión de versiones de las modificaciones que vamos realizando sobre este y luego descargar una versión en concreto.

- Sistema operativo para generar el shell: indicamos para que tipo de sistema va a preparar los scripts para la posterior ejecución de los procesos.

- Incluir objetos dependientes: podemos hacer que en el directorio de exportación se incluyan todos los elementos necesarios para la ejecución independiente del trabajo (módulos talend, librerias java, rutinas del sistema).  Esto nos permitirá llevarnos el job y ejecutarlo en cualquier sitio sin necesitar nada mas (solo la correspondiente maquina virtual java).

- Source files: podemos generar también el código fuente de nuestros jobs (para analizarlo o modificarlo directamente). Recordemos que Talend realmente es un generador de código, que utiliza la plataforma Eclipse.

- Contexto a utilizar: de todos los contextos que tenga definido el job, podemos indicar con cual se van a generar los scripts de ejecución (aunque luego podremos modificar el script para ejecutar con otro contexto,  no es mas que un parametro de ejecución).

Una vez exportados los jobs, vemos que en la carpeta donde se ha exportado, aparecen los siguientes elementos:

  • Directorio “NombreJob”: aparecen los scripts para ejecutar el job ( NombreJob_run.bat y NombreJob_run.sh), y la libreria NombreJob_version.jar, que es la que se llama desde el script para arrancar la ejecución del proceso. Es la libreria Java que se ha construido con todos los elementos y componentes que hemos utilizado para la definición de nuestro Job. Dento de estar carpeta cuelga otra donde se guardan los ficheros con los valores de las variables de contexto (en ficheros del tipo properties).

Script de ejecución de un job para Windows

En el script, observamos como se le pasa como parametro el contexto con el que queremos que se ejecute el Script. Es sencillo cambiarlo y teniendo preparados los juegos de variables correspondientes en diferentes ficheros de contexto, podremos trabajar con los mismos jobs trabajando sobre diferentes entornos o ejecutar los jobs con valores personalizados.

  • Directorio “Lib”: aparecen todas las librerias java necesarias para la ejecución independiente del job. En nuestro caso, por ejemplo, que hemos utilizado controles para envio de mail (aparece la libreria mail.jar), conexión a mysql (aparece la libreria mysql-connector-java*.jar), conexión a oracle (libreria ojdbc14-9i.jar), rutinas de usuario (userRoutines.jar), etc.

Para realizar la planificación de los jobs, podriamos utilizar el CRON del sistema operativo Unix/Linux (preparando su correspondiente fichero crontab ), o bien a nivel de Windows utilizando AT o alguna herramienta similar como WinAT. Talend proporciona una herramienta para preparar los ficheros crontab. La herramienta es el OpenScheduler (tal y como vemos en la imagen).

Talend Open Scheduler

De una forma visual, podemos elegir los diferentes parametros de ejecución del job  (dia del mes, dia de la semana, mes, hora, minutos). A partir de las entradas grabadas en el OpenScheduler, podemos generar un fichero con los parametros necesarios para incorporar la programación de los jobs a las tablas crontab de nuestro sistema y asi planificar la ejecución de los procesos en los momento indicados.

Planificación de Jobs para el proyecto Enobi

Utilizando los scripts generados, planificaremos en nuestro sistema un lote de trabajos que ejecutará, en primer lugar, la carga de las dimensiones. Una vez concluida esta, se lanzara la carga de la tabla de hechos de venta (pues llevan incluidos datos que dependen de los existentes en las dimensiones).

La siguiente fase de nuestro proyecto será la explotación del DW utilizando la herramienta de Microstrategy 9. En primer lugar, teniendo en cuenta el diseño definitivo, configuraremos el modelo de datos dentro de el, para posteriormente abordar la explotación del sistema. Esta incluirá todos los ambitos del Business Intelligence. Veremos ejemplos de informes, cubos olap y navegación dimensional, cuadros de mando e indicadores kpi´s y también funciones de Data Mining.

Publicado en Business Intelligence, ETL, OpenSource, Talend | Deja un Comentario »

13.4.2. Tabla Hechos Venta. Ajuste diseño fisico y procesos carga ETL. Contextos en Talend.

Publicado por respinosamilla en 18 Enero 2010

Vamos a desarrollar los procesos de carga de la tabla de hechos de ventas de nuestro proyecto utilizando Talend. Antes de esto, vamos a hacer algunas consideraciones sobre la frecuencia  de los procesos de carga que nos van a permitir introducir el uso de un nuevo elemento de Talend, los contextos.

En principio, vamos a tener varios tipos de carga de datos:

- Carga inicial: será la primera que se realice para la puesta en marcha del proyecto, e incluira el volcado de los datos de venta desde una fecha inicial (a seleccionar en el proceso) hasta una fecha final.

- Cargas semanales: es el tipo de carga mas inmediato. Se realiza para cada semana pasada (por ejemplo, el martes de cada semana se realiza la carga de la semana anterior), para tener un primer avance de información de la semana anterior (que posteriormente se refrescara para consolidar los datos finales de ese periodo). La carga de una semana en concreto también se podrá realizar a petición (fuera de los procesos batch automáticos).

- Recargas mensuales: una vez se cierra un periodo mensual (lo que implica que ya no puede haber modificaciones sobre ese periodo), se refresca por completo el mes en el DW para consolidar la información y darle el status de definitiva para ese periodo. La ejecución es a petición y se indicara el periodo de tiempo que se quiere procesar.

Teniendo en cuenta esto, definiremos un unico proceso de traspaso al cual se pasaran los parametros que indicaran el tipo de carga a realizar. Para ello utilizaremos los contextos de Talend. Cada tipo de carga tendra un contexto personalizado que definira como se va a comportar el proceso.

Contextos en Talend

Los contextos de Talend son grupos de variables contextuales que luego podemos reutilizar en los diferentes jobs de nuestras transformaciones. Nos pueden ser utiles para muchas cosas, como para tener definidas variables con los valores de paths de ficheros, valores para conexión a bases de datos (servidor, usuario, contraseña, puerto, base de datos por defecto, etc), valores a pasar a los procesos (constantes o definidos por el usuario en tiempo de ejecución). Los valores de los contextos se inicializan con un valor que puede ser cambiado por el usuario mediante un prompt (petición de valor). Un mismo contexto puede tener diferentes “grupos de valores”. Es decir, en el contexto “conexion a base de datos”, podemos tener un grupo de valores llamado “test”, que incluira los valores para conectarnos al sistema de pruebas y un grupo llamado “productivo”, que incluira los valores para la conexión a la base de datos real (tal y como vemos en el ejemplo).

Definición de Contextos en Talend

Dentro del contexto, definiremos que grupo de valores es el que se utilizara por defecto. Esto nos va a permitir trabajar con los jobs y sus componentes olvidandonos de contra que sistema estamos trabajando. Tendremos, por ejemplo, el contexto de test activo, y es el que utilizaremos para las pruebas. Y podremos cambiar en cualquier momento, al ejecutar un job, para decirle que utilice el contexto “productivo”. Igualmente, podremos preparar un fichero o una tabla de base de datos con los valores de las variables de contexto, que serán pasadas al job para su utilización en la ejecución de un proceso (utilizando el componente tContextLoad).

Definición del proceso de carga

El diseño físico definitivo de la tabla de hechos será el siguiente:

Una vez hechas todas las consideraciones, veamos el esquema de como quedaria nuestro proceso de transformación.

Job completo en Talend para la carga de la tabla de Hechos

Vamos a ver en detalle cada uno de los pasos que hemos definido para realizar la lectura de datos del sistema origen y su transformación y traspaso al sistema destino (y teniendo en cuenta varios procesos auxiliares y la carga del contexto de ejecución).

1) Ejecución de un prejob que  lanzará un generara en el log un mensaje de inicio del proceso y un logCatcher (para recoger las excepciones Java o errores en el proceso).  Este generará el envio de un email de aviso en el caso de que se produzca algún problema en cualquier paso del job (al igual que hemos incluido en todos los jobs de carga del DW vistos hasta ahora).

  • Lanzador Prejob (componente tPrejob): sirve para realizar el lanzamiento de un pretrabajo, anterior al proceso principal.
  • Mensaje Log Inicio (componente tWarn): genera un mensaje de log indicando que se comienza la ejecución del job.
  • Control Errores (componente tLogCatcher): activamos el componente que “escuchara” durante toda la ejecución del job, esperando que se produzca algún tipo de error. En ese momento se activara para recuperar el error y pasarlo al componente siguiente para el envio de un email de notificación.
  • tFlowtoIterate: convertimos el flujo de registros de log a una iteración para poder realizar el envio del correo electrónico.
  • Envio Email Notif (componente tSendMail): generamos el envio de un email de notificación de errores, incluyendo el paso donde se paro el proceso, y el mesaje de error generado. Es una forma de avisar que ha fallado algo en el proceso.

2) Carga del contexto de ejecución: para que el proceso sepa que tipo de carga ha de  realizar y para que periodo de fechas, es necesario proporcionarle la información. Esto lo haremos utilizando los contextos. En este caso, tal y como vemos en la imagen, el contexto tendrá 3 variables, donde indicaremos el tipo de carga y la fecha inicio y fin del periodo a procesar.

Contexto para la ejecución del Job

Los valores para llenar el contexto los recuperaremos de un fichero de texto (también lo podiamos haber recuperado de los valores existentes en una tabla de la base de datos). El fichero contendrá lineas con la estructura “clave=valor”, donde clave sera el nombre de la variable y valor su contenido.

Para abrir el fichero, utilizaremos el paso LEE_FICHERO_PARAMETROS (componente tFileInputProperties), que nos permite leer ficheros de parametros. A continuación cargaremos los valores recuperados en el contexto utilizando el paso CARGA_CONTEXTO, del tipo tContextLoad. A partir de este momento ya tenemos cargado en memoria el contexto con los valores que nos interesan y podemos continuar con el resto de pasos.

Podriamos haber dejado preparados los valores de contexto en una tabla de base de datos y utilizar un procedimiento parecido para recuperarlos y con el componente tContextLoad  cargarlos en el job. Tened en cuenta que los ficheros que va a leer el job habrán sido previamente preparados utilizando alguna herramienta, donde se definira el tipo de carga a realizar y el periodo (y dichos valores se registraran en el fichero para su procesamiento).

3) Borrado previo a la recarga de los datos del periodo en la tabla de hechos (para hacer un traspaso desde cero): antes de cargar, vamos a hacer una limpieza en la tabla DWH_VENTAS para el periodo a tratar. De estar forma, evitamos inconsistencia en los datos, que podrían haber sido cargados con anterioridad y puede haber cambios para ellos. Con el borrado, nos aseguramos que se va a quedar la última foto completa de los datos. Para hacer esto, utilizamos el paso BORRAR_DATOS_PERIODO (del tipo tMySqlRow).

Observad como en el paso hemos incluido la ejecución de una sentencia sql de borrado (DELETE), y le hemos pasado como valores en las condiciones del where las fechas del periodo, utilizando las variables de contexto.

4) Lectura de datos desde los pedidos de venta (cabecera) y a partir de cada pedido, de las lineas (desde el ERP).

A continuación, procederemos a recuperar todos los pedidos de venta del periodo para obtener los datos con los que llenar la tabla de Hechos. Para ello, utilizamos el paso LEER_CABECERA_PEDIDO (del tipo tOracleInput), con el que accedemos a oracle y obtenemos la lista de pedidos que cumplen las condiciones (observar como también en la sentencia SQL ejecutada por este componente hemos utilizado las variables de contexto).

A continuación, para cada pedido, recuperamos todas las lineas que lo componen con el paso LEER_LINEAS_PEDIDO (también del tipo tOracleInput) y pasamos todos los datos al componente tMap para realizar las transformaciones, normalización y operaciones, antes de cargar en la base de datos.

5) Transformación de los campos, normalización, operaciones.

Los valores de los datos de cabeceras y lineas de pedido recuperados desde Sap los transformamos a continuación conforme a la especificaciones que hicimos en el correspondiente análisis (ver entrada blog). En este proceso realizamos conversión de tipos, llenado de campos vacios, cálculos, operaciones. Todo con el objetivo de dejar los datos preparados para la carga en la tabla de Hechos de la base de datos.

Transformaciones de los datos de pedidos antes de grabar en tabla Hechos

En este ejemplo,  hemos utilizado un elemento nuevo del control tMap, que son las variables (ver la parte central superior). Las variables nos permiten trabajar de forma mas agil con los procesos de transformación, filtrado, conversión y luego se pueden utilizar para asignar a los valores de salida (o ser utilizadas en expresiones que las contengan).

Por ejemplo, observar que hemos creado la variable UNIDADES, y en ella hemos hecho un calculo utilizando elementos del lenguaje Java:

row6.shkzg.equals("X")?-1 * Float.valueOf(row6.kwmeng):Float.valueOf(row6.kwmeng)

El campo SHKZG de los pedidos nos indica si un pedido es venta o abono. Por eso, si dicho campo tiene el valor X, hemos de convertir los importe a negativo. Observad también como luego utilizamos las variables definidas en la sección VAR en el mapeo de campos de salida.

Para los campos que son clave foranea de las correspondientes tablas de dimensiones (código de cliente, material, etc), hemos realizado las mismas transformaciones que realizamos cuando cargamos dichas tablas, para que todo quede de forma coherente y normalizada.

6) Inserción en la tabla de hechos y conclusión del proceso.

Como paso final, vamos realizando el insertado de los registros en la tabla DWH_VENTAS utilizando el componente tMysqlOutput (tal y como vemos en la imagen).

Una vez realizada toda la lectura de datos e inserción, concluiremos el proceso generando un mensaje de conclusión correcta del Job en la tabla de Logs con el paso MENSAJE_LOG_FIN (componente tipo tWarn).

Observad como hemos incluido, intercalados en los diferentes pasos del job, unos llamados VER_REGISTROS (del tipo tLogRow). Es un paso añadido para depuración y comprobación de los procesos (aparece en consola los valores de los registros que se van procesando). En el diseño definitivo del job estos pasos se podrían eliminar.

Para ver en detalle como hemos definido cada componente, podeís acceder a la documentación HTML completa generada por Talend aquí. Podeis descargaros el fichero zip que contiene dicha documentación aquí.

Conclusiones

Hemos terminado el desarrollo de todos los procesos de carga para llenar nuestro DW. Para cada una de las dimensiones y para la tabla de hechos, hemos construido un proceso con Talend para llenarlos. Como ultima actividad, nos quedaría combinar todos esos procesos para su ejecución conjunta y planificarlos para que la actualización del DW se produzca de forma regular y automatica.

Igualmente, veremos la forma de exportar los procesos en Talend para poder ejecutarlos independientemente de la herramienta gráfica (nos permitira llevar a cualquier sitio los procesos y ejecutarlos, pues al fin y al cabo es código java).

Todo esto lo veremos en la siguiente entrada del blog.

Publicado en Business Intelligence, ETL, OpenSource, Talend | Deja un Comentario »