43
Construir una Solución Bussines Intelligence ¿Cómo construirla?

Sesion 6 Como Contruir DWH(1)

Embed Size (px)

DESCRIPTION

dw

Citation preview

Construir una SoluciónBussines Intelligence

¿Cómo construirla?

Once pasos para construir un Datawarehouse con éxito

Fuente: Syntel

Qué aspectos debemos considerar para reducir el riesgo de fracasar en la construcción de un Datawarehouse

1) Reconocer que el trabajo será más duro de lo que se esperaba inicialmente.

• La mala calidad de los datos incide en la complejidad del trabajo.

• Cuando se utilizan números en lugar de nombres de ciudades para optimizar los procesos en sistemas operacionales.

• Aparición de nuevos productos o divisiones durante el proceso de implementación.

2) Conocer los datos en los sistemas origen.

• Análisis previo de los datos y sus interrelaciones entre todas las Bases de Datos disponibles.

• Al migrar esa información al DW se debe mantener esas relaciones, por lo que es muy importante hacerlo bien para evitar inconsistencias en el modelo de datos.

3) Saber reconocer entidades equivalentes

• Identificar como una misma entidad, elementos que aparecen con nombres y descripciones diferentes, pero que se refieren a lo mismo.

Por ejemplo, dos departamento diferentes (Comercial y Finanzas), pueden estar registrando en sus sistemas información sobre un mismo cliente, pero puede que este registrado con nombre diferentes (nº cliente, nº fiscal, razón social, etc…)

4) Usar metadatos como soporte a la calidad de los datos.

• El uso de metadatos (datos sobre los datos), es crucial para el éxito de un DW. Es muy importante empezar a recoger y almacenar metadatos desde las fases iniciales del proyecto e incluir todas las fases del mismo.

• Integrar todos los metadatos en un lugar común. Esto será especialmente interesante cuando se trabaja con diferentes herramientas, cada una de las cuales, genera sus propios metadatos.

5) Seleccionar las herramientas ETL adecuadas.

• Las herramientas ETL, se encargan de las extracción de datos de los sistema fuente, de su transformación y posterior carga en el DW o en algún sistema intermedio para posteriores transformaciones.

• A la hora de seleccionar una herramienta ETL, será muy útil que tenga un manejo sencillo y represente de forma visual todas las transformaciones.

• Así mismo, será muy útil que pueda ir generando metadatos, conforme se vaya realizando el proceso ETL.

6) Tomar ventaja de las fuentes externas

• La integración de fuentes externas a los sistemas operacionales, como puede ser la infomación de encuestas de satisfacción de los clientes o los estudios de mercado de terceros, o información sobre competidores, puede aportar un valor añadido muy importante al DW.

• Esta información nos permitirá sacar conclusiones mucho más avanzadas sobre el negocio, que las meramente internas como ventas, costes, etc…

7) Utilizar nuevos métodos de distribución de la información.

• Utilizar informes parametrizables, envíos vía e-mail, alertas, etc… de modo que son los usuarios finales los que acceden directamente a la información que necesitan y pueden configurarse sus propias consultas.

8.- Centrarse en aplicaciones para uso en Marketing

• Un DW ofrece una de sus mayores ventajas a los departamentos de Marketing, donde se tienen que manejar grandes cantidades de información. Empresas del sector de distribución, banca y seguros pueden realizar complejos análisis de ventas cruzadas y generar ofertas en base a un portfolio de productos que se pueda ajustar a las necesidades de los clientes.

9) Enfatizar los primeros resultados positivos para ganar apoyo de la organización

• La reducción de la complejidad de estos sistemas y el enfoque incremental utilizado en su creación, hacen que se pueda empezar a ver algunos frutos en un corto plazo de tiempo.

• Esto tiene que ser aprovechado para que la organización valide lo realizado y apoye con sugerencias y compromiso los nuevos desarrollos que aún están pendientes.

10) No hay que infravalorar los requerimientos de Hardware

• Valorar los requerimientos de hardware.

• Se debe pensar en el crecimiento constante del DWH, considerando recursos de hardware que soporten eficientemente una estructura del DWH

• Incluya sistemas de copia seguros, procesamiento ágil de los cálculos utilizados, capacidad de almacenamiento disponible de disco y de memoria interna.

11) Considerar el Outsourcing para el desarrollo y mantenimiento del DW

• Utilizar el outsourcing como medio de garantizar el complejo, largo y costoso proceso de poner en funcionamiento un DW y evitan la dificultad de encontrar y retener profesional IT capacitados.

• El outsourcing puede llegar a generar nuevas ideas y desarrollos en base a su conocimiento profundo del DW y de su arquitectura, además no tiene los problemas de falta de personal capacitado de muchas empresas.

¿Quiénes Ofrecen Herramientasde Bussiness Intelligence?

Principales empresas del sector Business Intelligence

Lista recopilada por Stratebi (especialistas en Business Intelligence)

Open Source- Pentaho. - MySQL. - PostgreSQL. - Talend. - Jasper. - Jedox. - SQL Power. - BIRT. - Vanilla. - SpagoBI. - Ingres.

Otros Vendedores

• BOARD MIT: Balanced Scorecards

• Tableau• Kalido• Teradata• Kognitio• Infor

• Ab Initio• Targit • Netezza (IBM) • Arcplan • WebTrends• Bitam

Cómo construir un datawarehousebasado en evitar errores

• 1: Datawarehouse• 2:Dimensiones• 3:Jerarquías• 4:Dimensiones lentamente cambiantes• 5: Claves subrogadas• 6:Tablas de hecho• 7: DWH organizado por temas• 8:Tablas agregadas• 9: Máximo nivel de detalle• 10: Rendimiento• 11:Unificar los hechos• 12: Unificar las dimensiones

Fuente: Crono on 2 April, 2010

Ralph Kimball

Los doce errores más comunes en la construcción de un datawarehouse

• Error 12: Incluir atributos de texto en una tabla de hechos, si se hace con la intención de filtrar o agrupar.

• Error 11: Abreviar las descripciones en las tablas de dimensión con la intención de reducir el espacio requerido.

• Error 10: Dividir las jerarquías y los niveles de las jerarquías en múltiples dimensiones.• Error 9: No afrontar el tratamiento de las dimensiones lentamente cambiantes.• Error 8: Crear “smart keys” para relacionar una tabla de dimension con una tabla de

hechos.• Error 7: Añadir dimensiones en una tabla de hechos antes de definir su granularidad.• Error 6: Crear un modelo dimensional para resolver un informe en particular.• Error 5: Mezclar hechos de diferente granularidad en una misma tabla de hechos.• Error 4: Olvidarse del máximo nivel de detalle en el modelo entidad-relación.• Error 3: Omitir las tablas agregadas y comprimir las tablas de dimension para afrontar

los problemas de rendimiento.• Error 2: No unificar los hechos entre distintas tablas de hechos• Error 1: No compartir dimensiones entre diferentes tablas de hechos.

Ralph Kimball

Error 12: Incluir atributos de texto en una tabla de hechos, si se hace con la intención de filtrar o agrupar.

• En un modelo dimensional se deben diferenciar claramente las tablas de hecho de las tablas de dimensiones.

• Las tablas de hecho contienen los indicadores numéricos provenientes de los orígenes transaccionales.

• Las tablas de dimensión contienen los atributos (normalmente textuales) que nos permiten filtrar y agrupar los indicadores.

• En ocasiones no es evidente si un dato es dimensional o si se trata de un indicador. Por ejemplo, la hora de la venta (hh:mm:ss) puede considerarse un dato mas del hecho de venta (como el precio, o las unidades vendidas), o una dimensión temporal muy detallada. O la matrícula del camión que subcontratamos para realizar los transportes. Si no tenemos un maestro de los miles de camiones que utilizan nuestros transpostistas, ni queremos analizarlo por las características del camión, podríamos considerar la matrícula como una especie de indicador e incluirlo en la tabla de hechos.

• En caso de duda:• Evita colocar texto largos (como comentarios, o nombres de ciudades o personas) en las tablas de

hecho. Estos campos ocuparían un espacio precioso de nuestras tablas de hechos, que pueden tener cientos de millones de registros, y que por lo tanto ocuparían mucho espacio en disco y las consultas serían lentas por el IO generado. Hoy en día, los gigas son baratos, pero el tiempo para leerlos, no.

• Si el “dato” es compartido entre varias tablas de hecho, ponlo siempre como una dimensión. Por ejemplo, un mismo cliente puede tener pedidos, ventas, devoluciones, quejas, …

Error 11: Abreviar las descripciones en las tablas de dimensión con la intención de reducir el espacio requerido.

• El espacio requerido por las tablas de dimensión es despreciable frente a lo que ocupan los hechos. Por ejemplo, una cadena como Zara puede tener unas 5000 tiendas, y debe generar unos 3 o 4 millones de registros de venta diarios. En este y otros ejemplos que podríamos citar, también las dimensiones de cliente o producto son despreciable frente a las ventas, los envíos o la producción diaria.

• Por lo tanto, no debemos considerar el espacio como un aspecto determinante para modelizar las dimensiones. En particular, cada código debe tener su descripción. Las dimensiones son la interfaz que tendrán los usuarios para navegar por la información, por lo que conviene que sean lo más explícitas y claras posible.

• Incluso debemos plantearnos la necesidad real de introducir los códigos en la capa de presentación a los usuarios. Aunque algunos trabajadores pueden estar acostumbrados a trabajar con los códigos de familia, las referencias o los códigos de proveedor, nadie los conoce todos, y especialmente los nuevos empleados pueden tener dificultades para reconocerlos. Siempre son preferibles las descripciones.

Dimensiones• Denominamos dimensiones a aquellos datos que nos permiten filtrar, agrupar

o seccionar la información. El término "dimensión" sigue teniendo un cierta connotación técnica, por lo que muchas personas lo siguen denominando "atributo", "característica", "propiedad", "campo“.

• Algunas aplicaciones Business Intelligence utilizan el término "dimensión" como equivalente a "jerarquía" (especialmente en bases de datos multidimensionales). De esta manera, se habla de la dimensión geográfica que agrupa los diferentes niveles de continentes, países, regiones, provincias y localidades.

Jerarquías• Las dimensiones se agrupan en jerarquías mediante relaciones uno-a-

muchos. Una población agrupa a muchos clientes. Una provincia agrupa a muchas poblaciones. Una región está formada por varias provincias. Etcétera. Las jerarquías típicas, que aparecen en cualquier sistema Business Intelligence, son:– Jerarquía geográfica o de clientes (país del cliente/región/ciudad/cliente)

– Jerarquía de producto (marca/familia/producto/presentación)

– Jerarquía comercial (país/zona/punto de venta)

– Jerarquía temporal (año/trimestre/mes/día)

• Evidentemente, pueden existir jerarquías adicionales, o incluso puede haber diferentes maneras de jerarquizar una misma información.

• Esta manera de visualizar jerárquicamente la información resulta muy natural y cómoda para los usuarios de negocio.

Error 10: Dividir las jerarquías y los niveles de las jerarquías en múltiples dimensiones

Existen dos maneras principales de modelizar las jerarquías:• Modelo en estrella: Donde una única tabla contiene toda la información de la jerarquía.• Modelo copo de nieve: Donde se crea una tabla para cada nivel de la jerarquía• En la base de datos de presentación (también llamado modelo dimensional) del DWH debe

preferirse siempre el modelo en estrella. Es decir, debe crearse una única tabla para cada jerarquía. La misma tabla de PRODUCTOS debe tener toda la información relativa a los productos (presentación, producto, familia, marca).

• El modelo dimensional es el que ataca nuestra herramienta de Business Intelligence, por lo que interesa que las consultas generadas sean sencillas (con pocas tablas y pocas relaciones). El modelo en estrella es perfecto para conseguir este objetivo. Además, desaparece el problema que generan las diferentes jerarquías en que se pueden agrupar los productos.

• Sin embargo, por desgracia, no siempre es posible tener un modelo en estrella perfecto. La herramienta de explotación puede requerir normalizar parte de una jerarquía en una tabla independiente. Esta limitación aparece cuando diferentes "hechos" están definidos con diferente granularidad. Por ejemplo, las ventas están a nivel de "producto", pero los objetivos de venta se marcan a nivel de "familia". En este caso, muchas herramientas BI exigirán la existencia de una tabla de FAMILIAS.

• Finalmente, es importante destacar que además del "modelo dimensional" el DWH debe mantener un modelo normalizado de la información (llamado "modelo relacional"). En este otro modelo, la información sí que debe estar normalizada, unificada y limpia.

Error 9: Dimensiones lentamente cambiantes• La información de las dimensiones no es estática, ya que puede modificarse en el operacional por

diferentes motivos. Por ejemplo, puede corregirse la fecha de nacimiento de un cliente, o éste puede cambiar de ciudad, o una delegación puede asignarse a un delegado diferente, etc. ¿Cómo debe gestionarse esta información?

• En primer lugar, debe tenerse en cuenta que el tratamiento que se realizará dependerá de cada dimensión y de las necesidades del negocio. Por ejemplo, si se actualiza la fecha de nacimiento de un cliente se puede asumir que ese cambio aplica a toda la historia de ese cliente. Sin embargo, existen casos donde la información dimensional histórica es importante. Considera estas dos situaciones:

• Previsión de ventas: Para realizar una previsión de ventas para el próximo año, deberemos considerar las ventas históricas de las tiendas que actualmente tiene asignado cada delegado.

• Análisis de márgenes: Si queremos analizar los descuentos que aplica cada delegado, deberemos considerar las ventas de aquellas tiendas que han tenido asignadas a lo largo del tiempo.

• Por lo tanto, en este ejemplo, deberemos modelizar la información de tal modo que seamos capaces de conocer el "delegado actual" y el "delegado/s histórico/s".

• Para conseguir este objetivo se introducen las "claves subrogadas", que son identificadores sin ningún significado específico para el negocio. Aunque existen diferentes maneras de modelizar estos datos, lo habitual es trabajar con las "fechas de vigencia". Por ejemplo, esta sería la estructura de la tabla de DELEGACIONES en el modelo relacional:

• Dimensiones lentamente cambiantes en el modelo relacional de un sistema Business Intelligence.

Error 9: Dimensiones lentamente cambiantes• Analizando cuidadosamente los valores de esta tabla, puede observarse que Pedro era el responsable de las delegaciones de

Madrid y Barcelona, y que sus funciones fueron asumidas posteriormente por Juan y María. En el modelo dimensional, la tabla podría modelizarse de este modo:

• Dimensiones lentamente cambiantes en el modelo relacional de un sistema Business Intelligence

• El sistema funcionaría de manera similar con cualquier otra dimensión que pudiese tener la jerarquía de delegaciones, o cualquier otra jerarquía. Evidentemente, se trata de un tema complejo y que debe considerarse, o caeríamos de lleno en el error número 9:

• Error 9: No afrontar el tratamiento de las dimensiones lentamente cambiantes• En cualquier definición del término datawarehouse se menciona que es un repositorio de información histórica, y con ello se

pretende enfatizar que contiene:• Historia de los hechos: En el operacional existe registro de los "hechos" del negocio de los últimos meses o de unos pocos años.

Sin embargo, en el DWH se intenta que exista un histórico mucho mayor.• Historia de las dimensiones: El operacional sólo suele guardar la situación actual de las dimensiones. En el DWH, sin embargo,

debe mantenerse toda la evolución de los cambios dimensionales.• Pues bien, este segundo punto se suele olvidar (o ignorar) en algunas implantaciones de DWH por las siguientes razones:• La "visión actual" parece suficiente. Al fin y al cabo, es lo que siempre se ha hecho en el sistema operacional.• El usuario no siempre entiende la diferencia entre la "visión actual" y la "visión histórica". Y por lo tanto no sabe concretar sus

necesidades reales.• La gestión de cambios en las dimensiones nunca aparece en los requerimientos que motivaron el proyecto. De entrada, no

parece importante (pero lo es).

Error 9: Dimensiones lentamente cambiantes

Claves subrogadas

• En tu sistema Busuness Intelligence, crea claves subrogadad incluso para los códigos de barras • Una clave subrogada es un identificador único que se asigna a cada registro de una tabla de dimensión.

Esta clave, generalmente, no tiene ningún sentido específico de negocio. Son siempre de tipo numérico. Preferiblemente, un entero autoincremental.

• Habitualmente, el sistema operacional ya utiliza sus propias claves, aunque suelen ser de tipo carácter y tienen un sentido específico para los empleados de la compañía. Por ejemplo, el código BCN puede utilizarse para referirse a Barcelona, o el DNI de cada empleado puede ser la clave única de la tabla de empleados. O el código de barras para referirse a un producto. ¿Por qué necesitamos, entonces, crear unos nuevos identificadores en el sistema Business Intelligence? Por varios motivos:

• Fuentes heterogéneas. El DWH suele alimentarse de diferentes fuentes, cada una de ellas con sus propias claves, por lo que es arriesgado asumir un código de alguna aplicación en particular. ¿Qué ocurriría si en el futuro se añade información de una aplicación que tiene su propio maestro de ciudades? Seguro que nos generará un problema, aparecerán ciudades que no existían en nuestro maestro…¿Cómo lo gestionaríamos? No sé. Lo mejor es crear nuestras propias claves subrogadas desde el inicio del proyecto.

• Cambios en las aplicaciones origen. Puede ocurrir que cambie la lógica operacional de alguna clave que hubiésemos supuesto única, o que siempre debería estar informada. ¿Qué pasará cuando llegue un empleado sin DNI? ¿Qué pasará cuando se de de alta una ciudad extranjera con el código BCN? Prefiero no saberlo. Lo mejor es crear nuestras propias claves subrogadas desde el inicio del proyecto.

• Rendimiento. En la base de datos, ocupa menos espacio un entero que una cadena. Identificar una ciudad con 5 bytes, o una persona con 9 bytes es un desperdicio considerable de espacio. De hecho, no debe preocuparnos el espacio que ocupa, sino el tiempo que se pierde en leerlo… Recordar que las claves subrogadas las llevaremos a las tablas de hechos, por lo que cada código es susceptible de repetirse cientos de millones de veces. Conviene optimizarlo al máximo. Lo mejor es crear nuestras propias claves subrogadas desde el inicio del proyecto.

Error 8: Crear “smart keys” para relacionar una tabla de dimensión con una tabla de hechos.

• En ocasiones, nos puede parecer útil aprovechar la lógica que subyace a los elementos para generar nuestras propias claves. Por ejemplo, si queremos crear una jerarquía de ciudades, nunca debemos caer en la tentación de crear una simple concatenación (y generar el código ESP-CAT-BCN para referirnos a Barcelona)… También es un error crear una clave compuesta de varios campos. Aunque en el operacional la terna país-CCAA-ciudad sea única, en el DWH debemos crear una clave subrogada formada por un solo campo entero autoincremental.

• Recuerda: Sustituye cualquier clave física por una clave entera numerada secuencialmente desde 1 hasta N.

Tablas de hecho• Denominamos “hechos” a los indicadores de negocio. Por ejemplo, son “hechos” las

ventas, los pedidos, los envíos, las reclamaciones, las compras, etc. Es decir, son todas aquellas medidas numéricas que incluiremos en nuestro sistema Business Intelligence.

• Técnicamente, una tabla de hecho es la tabla central de un modelo en estrella. En el siguiente diagrama, la tabla de ventas es la tabla de hechos

Una característica importante de las tablas de hecho es el “nivel de detalle” de la información que se almacena. En ejemplo, las ventas están guardadas a nivel de cliente, producto, almacén, promoción y fecha.La tabla de hechos contiene las claves subrogadas de aquellas dimensiones que definen su nivel de detalle, y los indicadores. Nada más.

Error 7: Añadir dimensiones en una tabla de hechos antes de definir su granularidad

• De hecho, la creación de una tabla de hechos es una tarea con poco margen a la imaginación. Antes que nada, debe localizarse el origen de la información que se quiere cargar, debe entenderse perfectamente el significado de estos indicadores, y debe determinarse el nivel de detalle de estos datos. Una vez hecho esto, la creación de la estructura de la tabla es inmediata. Tal y como comentaba anteriormente:La tabla de hechos contiene las claves subrogadas de aquellas dimensiones que definen su nivel de detalle, y los indicadores.

• En particular, es un error desnormalizar cualquier dimensión en la tabla de hechos. Por ejemplo, si la información está a nivel de cliente, no necesitamos poner la población o el país en la tabla de hechos. Resultaría redundante e impactaría directamente en el tamaño de la tabla (y en los tiempos de respuesta).

DWH organizado por temas• Otra de las características importantes que debe tener un DWH es estar "organizado por

temas" (subject-oriented). Bill Inmon es considerado uno de los padres del concepto DWH, y fue el quien introdujo esta característica en su definición:

• "A warehouse is a subject-oriented, integrated, time-variant and non-volatile collection of data in support of managements decision making process" (Bill Inmon, 1990)

• Las diferencias temáticas incluídas en el sistema Business Intelligence deben estar como

un puzzle La organización temática de la información se refiere a que los datos que están cargados incluyen los indicadores relevantes de diferentes áreas de información de la compañía. Además, deben poder cruzarse los indicadores relativos al mismo objeto o evento del mundo real.

• Esta organización temática de la información facilita posteriormente la construcción de informes ad-hoc, ya que permite obtener y cruzar información que se generó en procesos de negocio muy diferentes (aunque de una misma temática). esta manera de organizar la información es muy distinta de la existente en un sistema OLTP tradicional, donde la información está organizada por transacciones y procesos.

• Modelizar adecuadamente la estructura del sistema Business Intelligence es fundamental para que posteriormente el usuario puede generarse cualquier informe que necesite.

Error 6: Crear un modelo dimensional para resolver un informe en particular.

• Efectivamente, el modelo dimensional debe ser independiente de cualquier informe en particular. Una de las razones que habitualmente justifica la creación de un sistema Business Intelligence es la necesidad de otorgar a los usuarios la capacidad de realizar informes ad-hoc. No tendría sentido, por lo tanto, que el equipo de IT tuviese que adaptar el datawarehouse para cada informe necesario.

• En particular, si se trabaja con consultores externos, conviene evitar que la aceptación del proyecto esté vinculada a la realización de unos informes en particular. Si esos son los términos de tu contrato, existe el riesgo de que los esfuerzos se focalicen en la construcción de esos informes, cuando lo correcto sería modelizar el DWH de tal forma que fuese viable construir cualquier informe.

Tablas agregadas• El datawarehouse tiene, y debe tener, todo el detalle de información en su nivel atómico. Así,

las ventas estarán detalladas por fecha, cliente, producto y punto de venta. Rápidamente nos daremos cuenta que estaremos trabajando con un volumen muy importante de información. Por poner algún ejemplo, en los sectores de distribución retail, telecomunicaciones o banca es habitual encontrarse con datawarehouses con miles de millones de registros.

• Sin embargo, la mayoría de consultas no necesitan acceder a tanto detalle. Un "product manager" puede estar interesado en los totales de venta de sus productos mes a mes, mientras que el "area manager" consulta habitualmente la evolución de ventas de sus zonas. te en el tiempo de respuesta

• Incluso con el uso de índices, la compresión de las tablas, o con una inversión millonaria en hardware, estas consultas habituales deberían leer, agrupar y sumar decenas de millones de registros, lo que repercutiría directamete en el descontento de los usuarios.

• La solución ante estas situaciones pasa siempre para la preparación de tablas agregadas. Las tablas agregadas sumarizan los indicadores de las tablas de detalle a un nivel superior. Por ejemplo, las ventas podrían precalcularse a nivel mensual, o por cliente, o por producto. De esta manera, las consultas típicas del "product manager" o del "area manager" podrían ejecutarse en pocos segundos, sin necesidad de acceder a la tabla de ventas detalladas.

• La existencia de estas tablas agregadas debe ser completamente transparente para el usuario de negocio. Es decir, tanto el "area manager" como el "producto manager" trabajarán con el indicador "Ventas", y la herramienta Business Intelligence hará el resto.

Error 5: Mezclar hechos de diferente granularidad en una misma tabla de hechos.

• Calcular los agregados en la misma tabla de ventas es un error muy grave e injustificable. Aunque puede parece adecuado en algunas situaciones, será sin duda una fuente de problemas e incoherencias futuras. Este tipo de construcciones erróneas suelen aparecer ante la falta de funcionalidad de las herramientas BI, lo que obliga al técnico a crear modelos extraños.

• Este tipo de tablas (que mezclan información a diferente nivel de detalle) en sistemas operacionales, donde resulta prohibitivo calcular los totales en el momento de generación del informe. De esta manera, el operacional apunta el detalle y los totales en el mismo momento, y de esta manera los listados predefinidos del host se ejecutan de manera rápida y sencilla. En un entorno datawarehouse, evidentemente, todo esto es innecesario y contraproducente.

• Cada "granularidad" requiere su propia tabla de hechos.

Máximo nivel de detalle• El máximo nivel de detalle debe estar contemplado en un sistema Business IntelligenceAunque existen

varias opiniones al respecto, yo soy de los que cree firmemente que en el DWH debe estar disponible el máximo nivel de detalle de la información. Se debe guardar cada ticket, cada venta, cada transacción.

• Si se dispone la información detallada, cualquier consulta posterior podrá resolverse en cualquier de las agrupaciones disponibles. Tal vez, de entrada, puede parecer suficiente ver las ventas diarias de cada familia, sí, ¿Pero y si luego quiero verlo por grupo social? ¿O por hora de venta? ¿O si lo quiero segmentar por precio de venta? ¿O por tipo de subfamilia? Sólo si inicialmente se diseñó y cargó el datawarehouse con la información detallada podrán contestarse estas preguntas.

En general, dentro del DWH se distinguen tres áreas principales:• Área de staging: Que contiene las información bruta extraída de los sistemas operacionales. Es un área

temporal donde los datos se preparan y normalizan antes de cargarse definitivamente en el DWH.• Modelo relacional: Es una base de datos donde la información se encuentra normalizada. Contiene todo

el detalle de información. Y toda la historia posible. No hay tablas agregadas. En este punto la información ya está limpia e integrada, y ya se han creado las claves subrogadas. Es preferible un modelo en "copo de nieve" o incluso normalizado totalmente.

• Modelo dimensional: Es la base de datos que utilizan las herramientas de Business Intelligence para obtener la información y hacer los informes o análisis. El modelo dimensional está optimizado para conseguir un buen rendimiento. Existen tablas agregadas. Se prefiere el modelo en estrella., también debe tener todo o casi todo el detalle de información.

• El máximo nivel de detalle implica cargar muchos datos, y hacerlo por triplicado, lo que requiere tiempo de carga y espacio en disco. Se conocen las desventajas y se deben asumir si se desea un datawarehouse que sea útil para las necesidades actuales y para las necesidades futuras.

Error 4: Olvidarse del máximo nivel de detalle en el modelo entidad-relación.

• Efectivamente, el máximo detalle no lo debemos dejar ni en el operacional, ni en la staging, ni en el modelo relacional. Todo el detalle debe propagarse hasta el modelo dimensional. Sólo de esta manera el sistema Business Intelligence superará el ataque de las consultas ad-hoc.

• Habitualmente, esta manera de trabajar sólo la cuestionan los consultores que han intervenido en excesivos proyectos de cuadro de mando. Es habitual que las empresas soliciten un cuadro de mando sin tener antes un datawarehouse ni un sistema de reporting aceptable. En estos casos, cargar todo el detalle puede parecer difícil de justificar. ¿Cómo voy a proponer un DWH de 500Gb si el gerente sólo quiere 4 pantallitas para hacer el seguimiento mensual de un puñado de indicadores? En mi opinión, hay que proponerlo. Sólo disponiendo de un buen DWH podrá asegurarse la continuidad del proyecto BI.

• Recuerda: Por lo menos carga el máximo nivel de detalle en el modelo relacional, y podrás mostrarlo cuando te des cuenta de que también lo necesitas en el modelo dimensional.

Rendimiento

• El tiempo se alarga hasta el infinito mientras esperas la respuesta de tu herramienta de Bussiness Intelligence

• En primer lugar, reconozcamos que tenemos un problema de rendimiento. Todos los datawarehouse tienen un problema de rendimiento. Ninguno va excesivamente rápido. Siempre se puede mejorar. Es más, la falta de problemas de rendimiento suele esconder un problema mucho mayor y de más difícil solución… la falta de uso del sistema.

• La mejor estrategia para afrontar los problemas de lentitud pasa por monitorizar continuamente el sistema. Debemos conocer cuantas consultas se están ejecutando diariamente, y cuanto tiempo requiere cada consulta. Si hacemos esto, sabremos como de mal va el sistema, y podremos fijarnos objetivos. En el último proyecto datawarehouse que he participado, hubo un momento en el que 85 % de las consultas tardaban menos de 1 minuto, y sin embargo muchos usuarios se quejaban de la lentitud del sistema. El 5% de las consultas tardaban más de 30 minutos. Para mejorar la situación, analizamos diariamente estas consultas… en ocasiones eran problemas en la manera de hacer las consultas por parte de los usuarios, y otras veces era un problemas de modelización. Educando a los usuarios, y con pequeños cambios en el modelo dimensional pudimos ofrecer una mejora significativa a los usuarios. Menos del 1 % de las consultas seguían tardando más de 30 minutos. Afortunadamente, seguíamos teniendo problemas de rendimiento, porque lo contrario sería señal de que dejaron de utilizar el sistema :-)

• Los problemas siempre son del software, del hardware, o del informático. El usuario nunca se equivoca. Se distinguen 3 causas de problemas de rendimiento:

1. Dificultad de uso de la herramienta Business Intelligence, lo que provoca consultas incorrectas o sin sentido por parte de los usuarios

2. Modelización deficiente (falta de agregados, falta de índices, etc.)3. Hardware insuficiente (el sistema debe dimensionarse en función del volumen a información a gestionar y

el número de usuarios activos)

Error 3: Omitir las tablas agregadas y comprimir las tablas de dimension para afrontar los problemas de

rendimiento.• Efectivamente, las tablas agregadas proporcionan una mejora inmediata

(y en muchas ocasiones espectacular) en el rendimiento (siempre y cuando la herramienta de BI sea capaz de aprovecharse de estos agregados, que debe serlo). En primer lugar, deben considerarse mejoras en la modelización y descartar nuevas y caras inversiones en hardware.

• Si el sistema no está bien modelizado, seguirá funcionando mal después de una ampliación de discos, de RAM o de CPU. La ampliación de hardware sólo puede justificarse ante un aumento del volumen de información a gestionar y/o en el número de usuarios del sistema.

• También debo decir que el uso de tablas agregadas tiene un coste. Las tablas agregadas añaden complejidad al sistema, ya que son nuevos elementos que deberán mantenerse y actualizarse indefinidamente. Las tablas agregadas sólo son útiles si efectivamente se usan, y reducen considerablemente el número de registros de la tabla detallada.

Unificar los hechos• En la definición de datawarehouse de Bill Inmon se señala que un DWH es un repositorio donde la

información corporativa se encuentra "integrada".• A warehouse is a subject-oriented, integrated, time-variant and non-volatile collection of data in support

of managements decision making process (Bill Inmon, 1990)• La cuadratura del círculo. Fundamental en el Business Intelligence• Efectivamente, cualquier empresa tiene múltiples sistemas operacionales, cada uno de ellos con sus

propios maestros y su propia información. Uno de los objetivos del DWH es unificar toda esa información dispersa en un único repositorio. Sin embargo, no se trata sólo de juntar todos estos datos, el objetivo es unificarlos, integrarlos y conformarlos, es decir, dar la misma forma y el mismo significado a dimensiones y hechos aparentemente distintos (en inglés dicen "conform information").

• Por ejemplo, una empresa de distribución puede tener dos canales de ventas a través de los cuales vende los mismos productos (venta al mayor y venta retail). Habitualmente, la gestión de estos dos negocios la realizarán personas diferentes de diferentes departamentos, y cada uno de ellos tendrá sus sistemas informáticos con diferencias significativas entre ellos. Es muy diferente el negocio minorista del negocio mayorista.

• Pues bien, en este ejemplo, uno de los retos de la creación del DWH sería la unificación de estos dos negocios, porque sin duda existirán usuarios que querrán conocer la "facturación", y la facturación evidentemente incluye las ventas al mayor y al ventas retail. Para realizar esta unificación, las dos tablas de hechos deberán compartir las mismas dimensiones, y deberán definirse con precisión los términos de cada negocio para que resulten agregables entre sí… Incluso, podría ser recomendable unificar los dos hechos en una misma tabla de hechos, donde la dimensión "tipo de venta" permitiese diferenciar las ventas al mayor de las ventas retail.

Error 2: No unificar los hechos entre distintas tablas de hechos

• Tal como comentaba, independientemente de que los hechos se modelicen en una o varias tablas de hechos, estos deben tener la misma forma. Deben tener dimensiones compartidas que permitan la comparación y/o agregación entre sí. Si se quiere sumar o dividir la información de distintos hechos, estos deben tener la misma forma y deben haberse cargado aplicando los mismos criterios.

• Otro ejemplo de "conformar" adecuadamente los hechos sería aplicar los mismos criterios al cargar las compras y las ventas. Si se quiere calcular el cociente de ventas sobre compras, deberemos asegurarnos que en los dos indicadores se están considerando los mismos productos. No debemos, por ejemplo, olvidarnos de aquellos productos que sólo se venden por Internet o que forman parte de un negocio secundario de la compañía. Si estos productos se incluyen en las ventas, deben incluirse también en las compras (aunque provengan de fuentes distintas).

Unificar las dimensiones

• Las dimensiones de un sistema Business Intelligence deben estar unificadasEn la anterior entrada de esta serie sobre cómo no construir un datawarehouse se describía la importancia de unificar los hechos. Ahora hablaremos de unificar las dimensiones. No es más importante una cosa que la otra. Las dos son imprescindibles.

• Sabemos que es normal que dentro de una compañía convivan muchas aplicaciones informáticas, cada una de ellas con sus propios maestros. Una función importante del DWH es la unificación de estas aplicaciones en unos maestros únicos.

• Por ejemplo, la aplicación de recursos humanos puede utilizar los códigos "M" y "F" para indicar el sexo de los empleados, mientras que la aplicación de CRM puede estar utilizando los códigos "H" y "M". Es sólo un ejemplo tonto, pero es la realidad de todas las empresas. Incluso puede haber diferencias entre los códigos de las tiendas y productos que utilizan las distintas aplicaciones o módulos del ERP.

• En el DWH, evidentemente, debe existir un solo maestro de género. Y un solo maestro de tiendas. Y un solo maestro de productos. Y un solo maestro de cualquier cosa. En el proceso de carga del datawarehouse, deben identificarse los códigos equivalentes, y asignarles una única clave subrogada.

• Un caso especial, y muy problemático, es el maestro de clientes. Se puede captar información de los clientes a partir de un formulario en la página web, o un carnet de afiliación que solicita el cliente en la tienda, o una llamada al departamento de reclamaciones… Es importante identificar las personas entre distintos aplicativos. Ni el nombre y los apellidos del cliente, ni el email, ni la dirección, ni siquiera el DNI son métodos fiables para detectar una misma persona en diferentes aplicaciones. Para identificar adecuadamente un cliente debe utilizarse una combinación de todos los anteriores e incluso puede ser necesaria la intervención manual. Existen herramientas y compañías especializadas en esta tarea, y no suele considerarse una responsabilidad del modelizador del DWH. Normalmente, para realizar una identificación fiable resulta necesario modificar las aplicaciones orígen, para realizar el "matching" cuanto antes.

• En todos los demás casos, el equipo del DWH debe estar obsesionado por entender y unificar todos los maestros de la compañía.

Error 1: No compartir dimensiones entre diferentes tablas de hechos.

• Efectivamente, por falta de tiempo y recursos, se pueden cargar los diferentes maestros tal cual llegan de los distintos operacionales. Es un error muy grave. Las dimensiones compartidas entre diferentes hechos permiten navegar por la información, o cruzar información de distintos orígenes.

• Si se realiza correctamente, daremos mucha potencia y funcionalidad a los usuarios de negocio, el mantenimiento del sistema será más sencillo, y podrá añadirse nueva información al sistema Business Intelligence de manera paulatina y armoniosa.

• Si no se realiza correctamente, el datawarehouse perderá mucha de su utilidad y sentido.