1. Implementar un data warehouse de manera incremental y paulatina por producto o proceso de negocio.
2. Usar un modelo dimensional con esquema estrella que permita crecer fácilmente en dimensiones.
3. No resumir los datos en el data warehouse por ninguna dimensión para mayor flexibilidad.
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
066 como implementar un data warehouse de manera paulatina
1. #GX2508 Como Implementar un Data Warehouse de manera paulatina Enrique Iglesias enrique@credimas.com.ar
2. ¿Situaciones comunes? “Tenemos muchísimos Datos en los sistemas, pero nos falta Información para decidir” ¿Qué hacemos? “La implementación del Data Warehouse parece muy compleja hay muchas opciones, pero no tenemos tiempo para aprender y necesitamos resultados rápidos” ¿Cómo lo hacemos? “Lo logramos!!! tenemos el Data Warehouse funcionando, pero ahora no es suficiente los usuarios quieren más” ¿Cómo seguimos?
4. ¿Qué es un Data Warehouse? “Es un Repositorio de Datos organizado de manera de facilitar el análisis de los mismos para obtener Información” Los datos están organizados en: “Indicadores”: son valores numéricos que permiten medir la performance del Negocio “Dimensiones”: son perspectivas o filtros sobre los cuales puede analizarse los indicadores
5. ¿Qué es un Data Warehouse? Para representar los Datos se utiliza un “Modelo Dimensional”, dicho modelo puede tener esquema: “Copo de Nieve (Snowflake)” “Estrella (Star)” Los datos pueden o no estar resumidos en el Data Warehouse
6. ¿Qué Problemas se presentan? El “Modelo Dimensional” es diferente al “Modelo Relacional” al que estamos acostumbrados por lo cual hay que aprender algo nuevo. La conversión de un modelo a otro requiere un programa de conversión (ETL) que puede ser difícil de desarrollar.
7. ¿Qué Problemas se presentan? Se requiere tiempo para aprender y desarrollar pero también es necesario mostrar resultados. A medida que comienza a utilizarse el Data Warehouse surgen nuevas necesidades que implican incorporar Dimensiones e Indicadores, por lo cual el diseño debe permitir adaptación constante.
8. ¿Cómo Implementarlo con Éxito? Utilizar una metodología Incremental atacando paulatinamente un Producto o Proceso de Negocio por vez:
9.
10.
11. Esquema Copo de Nieve (Snowflake) para las Dimensiones de Fecha:Año [dwAnio.AnioDsc] Mes Letras [dwMes.MesDsc] Fecha(DD/MM/AAAA) [dwDia.AnioMesDia] Día de la Semana [dwDiaSem.DiaSemDsc]
12. ¿Cómo Implementarlo con Éxito? EquemaEstrella (Star) para las Dimensiones de Fecha: Año [dwDate.DateYear] Mes Letras [dwDate.DateCMonth] Fecha (DD/MM/AAAA) [dwDate.DateDes] Día de la Semana [dwDate.DateCDow] Mes Número [dwDate.DateMonth] Día Número [dwDate.DateDay] Año/Mes (AAAA/MM)[dwDate.DateYYMM] Mes Abreviado (mmm-AA)[dwDate.DateCMes] Año Contable [dwDate.DateYCont]
13. ¿Cómo Implementarlo con Éxito? No Resumir los datos en el Data Warehouse por ninguna dimensión,de esta manera el diseño es mas flexible para la incorporación de nuevas dimensiones.
24. Resumiendo … 1 Paulatinamente por Producto o Proceso 2 Modelo Dimensional Esquema Estrella 3 No Resumir por ninguna Dimensión
25. Para profundizar los conceptos Artículos Interesantes: www.kimballgroup.com Libros:
26. Conferencias relacionadas BI AGIL + SaaS + Cloud = TDA, Sala 2A Martes 12:15 Sacándole el jugo al Objeto Query, Sala 2A Martes 10:30 Una nueva forma de hacer consultas con GXplorer 7.0, Sala 2A Martes 11:00 Enrique Iglesias, Gerente de Sistemas, Credimas S.A. enrique@credimas.com.ar
Me gustaría comenzar planteando situaciones que se nos fueron presentando en diferentes momentos:Inicialmente se nos presentó que nosotros como desarrolladores, sabíamos que teníamos muchos datos, pero los usuarios no lo sabían, por eso nos planteaban que les faltaba información para decidir. Nos surgió la pregunta de ¿Qué Hacemos?, es fácil implementar un Data Warehouse.Cuando comenzamos a encarar el proyecto de Data Warehouse nos dimos cuenta que parecía ser bastante mas complicado de lo que pensábamos y no disponíamos de tiempo, entonces se nos planteo “¿Como lo hacemos?”esto es lo que tratare de explicarles.Luego de implementar algunas etapas del proyecto llegamos a otra situación de éxito o de problemas? “Lo logramos!!!, pero los usuarios quieren mas. Entonces se nos planteo “¿Cómo seguimos? También encaramos esto en nuestra estrategia.
Para poder exponer como lo hicimos voy a responder a estas 4 preguntas que nos planteamos en nuestra implementación.¿Que es un Data Warehouse?¿Que problemas se presentan?¿Cómo implementarlo con exíto?¿Cómo hacer en GeneXus?
Básicamente un Data Warehousees un repositorio de Datos pero que esta organizado de una manera particular.Esta organización desde el punto de los usuarios es en Indicadores y Dimensiones de análisis.Los indicadores pueden ser por ejemplo la cantidad de productos u operaciones, importes vendidos o comprados, etc. Mientras que las dimensiones pueden ser las sucursales o provincias donde opera la empresa, el tipo de producto que comercializa, etc.
Desde el punto de vista del desarrollador, el repositoriotambién tiene una estructura particular. El mismo esta organizado en lo que se conoce como Modelo Dimensional. Es un modelo adaptado para el análisis Multidimensional. El modelo Relacional que utilizamos normalmente esta optimizado para la actualización de datos, mientras que el modelo Dimensional esta optimizado para la consulta de datos.Dentro del Modelo dimensional existen dos variantes que se llaman esquema Copo de nieve (Snowflake) y estrella (Star), el nombre se origina en la estructura visual que presentan las tablas al dibujar los diagramas de entidades.A su vez, dentro del Modelo Dimensional es posible que por razones de performance, los datos se encuentren resumidos por diferentes dimensiones.
Al iniciar nuestro proyecto de Data Warehouse nos surgieron los siguientes problemas.Como vimos ante los datos se organizan en un modelo Dimensional, el cual presenta características y reglas diferentes al modelo Relacional por lo cual hay mucho que aprender y practicar.Como los datos que queremos analizar están en un Modelo Relacional, debemos pasarlos al modelo dimensional. Esto se realiza mediante un programa llamado ETL. Por lo que comentaba antes este programa es inicialmente difícil de entender y desarrollar hasta que se adquieren los conocimientos necesarios.
Lamentablemente como siempre sucede no podemos dedicarnos a estudiar y desarrollar durante el tiempo suficiente para aprender para recién mostrar resultados a la empresa.Cuando logramos implementar nuestra solución, los usuarios descubren nuevas dimensiones e indicadores por lo cual debemos volver a empezar.
Para solucionar los problemas enunciados, planteamos una serie de estrategias que nos facilitaron el camino.La primera fue hacerlo de manera incremental, implementando pequeños Data Mart o unidades de análisis circunscriptas a una pequeña parte de la empresa.En nuestro caso propusimos estas etapas.
A su vez cada etapa poseía diferentes iteraciones a medida que los usuarios iban aprendiendo el uso del sistema por lo cual el proyecto siguió un avance como este.
Al estudiar los diferentes esquemas del modelo relacional, descubrimos que el esquema copo de nieve requería mas tablas para implementar las dimensiones de análisis. Notamos que por cada dimensión era necesario una o mas tablas para implementarlo.Además si luego queríamos aumentar dimensiones, implicaba modificar y agregar varias tablas.Les muestro como sería el caso de implementar algunos elementos de la Dimensión Fecha.
Por eso estudiamos el esquema estrella, descubriendo que requería muchas menos tablas para representar múltiples dimensiones.Además al agregar dimensiones era casi siempre solo cuestión de agregar atributos a una tabla.
También descubrimos que recomendaciones tradicionales de resumir los datos por las dimensiones, implicaba que al aumentar dimensiones, los datos ya cargados en el Data Warehouse no tenia valor y debíamos volver a cargarlos. Por tal motivo optamos por no resumir o agrupar los datos en el modelo, de esta manera al agregar una dimensión la misma podía incorporarse sin inconvenientes y en el peor de los casos solo se podía utilizar la dimensión de análisis para los datos cargados a posterior, pero los datos anteriores no perdían validez. En caso de presentarse problemas de performance, atacamos los mismos mediante índices de diferente tipo en la base de datos y utilizando la funcionalidad de partición de las tablas.
Con estas premisas armamos uno de los primeros modelos con una estructura similar a la siguiente.Como se observa existen múltiples dimensiones que a su vez las hemos agrupado en dimensiones similares.Esta esquema que sería una representación del modelo lógico y comprensible por los usuarios, es muy similar a la implementación del modelo físico.
Al llegar a la etapa de las transacciones/operaciones, podemos ver que todas las dimensiones expuestas anteriormente se convierten en dimensiones de análisis de los indicadores de las operaciones ampliando aún mas la posibilidades. Brindando además una integración de los componentes ya desarrollados.
Cuando comenzamos a implementar en GeneXus, descubrimos que el paradigma propuesto de GXplorer para el análisis dimensional era el esquema copo de nieve que expusimos anteriormente, por lo cual decidimos utilizar las funcionalidades de reporting mediante el paradigma de atributos.También pudimos implementarlo en la herramienta GXquery que utilizamos para reporting.Por ultimo también pudimos utilizar nuestra estrategia desde EV1 utilizando el Objeto Query.
En el caso de GXplorer y GXqueryveremos como se utilizan las dimensiones e indicadores.Podemos ver como se realiza la selección de la Dimensión Provincia dentro del grupo de Dimensiones Geográficas dentro de la Dimensión Clientes.Por otra parte vemos como se selección el indicador cantidad de clientes.
Ahora vemos como se implementa la misma consulta mediante el Objeto Query observando que GeneXus genera correctamente la selección de las tablas requeridas.
Para continuar aprendiendo, les recomiendo los siguientes libros sobre Modelado Dimensional y diseño de Data Warehouse.Además en la pagina del Dr. Kimball pueden encontrar muchos artículos muy interesantes sobre el tema.