El modelado dimensional forma parte de la metodología del ciclo de vida dimensional empresarial desarrollada por Ralph Kimball, que incluye un conjunto de métodos, técnicas y conceptos para su uso en el diseño de almacenes de datos . [ 1 ] : 1258–1260 [ 2 ] El enfoque se centra en identificar los procesos empresariales clave dentro de una empresa y modelarlos e implementarlos primero antes de añadir procesos empresariales adicionales, como un enfoque ascendente . [ 1 ] : 1258–1260 Un enfoque alternativo de Inmon aboga por un diseño descendente del modelo de todos los datos empresariales utilizando herramientas como el modelado entidad-relación (ER). [ 1 ] : 1258–1260
Descripción
El modelado dimensional siempre utiliza los conceptos de hechos (medidas) y dimensiones (contexto). Los hechos suelen ser (aunque no siempre) valores numéricos que se pueden agregar, y las dimensiones son grupos de jerarquías y descriptores que definen los hechos. Por ejemplo, el importe de las ventas es un hecho; la marca de tiempo, el producto, el número de caja, el número de tienda, etc., son elementos de las dimensiones. Los modelos dimensionales se construyen por área de proceso de negocio, por ejemplo, ventas de tienda, inventario, reclamaciones, etc. Dado que las diferentes áreas de proceso de negocio comparten algunas, pero no todas, las dimensiones, la eficiencia en el diseño, la operación y la coherencia se logran mediante el uso de dimensiones conformadas , es decir, utilizando una sola copia de la dimensión compartida en todas las áreas temáticas.
El modelado dimensional no implica necesariamente una base de datos relacional. El mismo enfoque de modelado, a nivel lógico, puede utilizarse para cualquier formato físico, como bases de datos multidimensionales o incluso archivos planos. Su enfoque prioriza la comprensibilidad y el rendimiento.
Método de diseño
Diseñando el modelo
El modelo dimensional se construye sobre un esquema en forma de estrella o de copo de nieve , con dimensiones que rodean la tabla de hechos. [ 3 ] [ 4 ] Para construir el esquema, se utiliza el siguiente modelo de diseño:
- Elija el proceso de negocio
- Declarar el grano
- Identificar las dimensiones
- Identifica el hecho
- Elija el proceso de negocio
El proceso de modelado dimensional se basa en un método de diseño de cuatro pasos que garantiza la usabilidad del modelo dimensional y del almacén de datos . Los fundamentos del diseño se basan en el proceso de negocio real que debe abarcar el almacén de datos . Por lo tanto, el primer paso del modelo consiste en describir dicho proceso. Por ejemplo, podría tratarse de una situación de venta en una tienda minorista. Para describir el proceso de negocio, se puede optar por utilizar texto plano o bien la notación BPMN ( Business Process Model and Notation ) u otras guías de diseño como el lenguaje UML (Unified Modeling Language ).
- Declarar el grano
Tras describir el proceso de negocio, el siguiente paso en el diseño es definir la granularidad del modelo. La granularidad del modelo es la descripción precisa de aquello en lo que debe centrarse el modelo dimensional. Por ejemplo, podría ser «Un artículo individual en un recibo de compra de una tienda minorista». Para aclarar el significado de la granularidad, debe seleccionar el proceso central y describirlo en una sola frase. Además, la granularidad (frase) será la base para la construcción de las dimensiones y la tabla de hechos. Es posible que deba volver a este paso para modificar la granularidad en función de la nueva información obtenida sobre las funcionalidades que debe ofrecer el modelo.
- Identificar las dimensiones
El tercer paso del proceso de diseño consiste en definir las dimensiones del modelo. Estas dimensiones deben definirse dentro del nivel de detalle establecido en el segundo paso del proceso de cuatro pasos. Las dimensiones constituyen la base de la tabla de hechos y es donde se recopilan los datos para dicha tabla. Generalmente, las dimensiones son sustantivos como fecha, tienda, inventario, etc. En estas dimensiones se almacenan todos los datos. Por ejemplo, la dimensión de fecha podría contener datos como el año, el mes y el día de la semana.
- Identifica los hechos
Tras definir las dimensiones, el siguiente paso consiste en crear las claves para la tabla de hechos. Este paso identifica los datos numéricos que conformarán cada fila de la tabla. Este paso es fundamental para los usuarios del sistema, ya que es aquí donde acceden a los datos almacenados en el almacén de datos . Por lo tanto, la mayoría de las filas de la tabla de hechos contienen cifras numéricas y aditivas, como la cantidad o el coste unitario, entre otras.
Normalización de dimensiones
La normalización dimensional o el método de copo de nieve eliminan los atributos redundantes, que se conocen en las dimensiones desnormalizadas aplanadas normalmente. Las dimensiones se unen estrictamente en subdimensiones.
El método Snowflaking influye en la estructura de datos de una manera que difiere de muchas filosofías de almacenes de datos. [ 4 ] Una única tabla de datos (hechos) rodeada de múltiples tablas descriptivas (dimensiones).
Los desarrolladores a menudo no normalizan las dimensiones debido a varias razones: [ 5 ]
- La normalización hace que la estructura de datos sea más compleja.
- El rendimiento puede ser más lento debido a las numerosas uniones entre tablas.
- El ahorro de espacio es mínimo.
- No se pueden usar índices de mapa de bits
- Rendimiento de las consultas. Las bases de datos en tercera forma normal (3NF) presentan problemas de rendimiento al agregar o recuperar valores multidimensionales que requieren análisis. Si solo se van a generar informes operativos, es posible que la 3NF sea suficiente, ya que el usuario operativo buscará datos con un nivel de detalle muy preciso.
Existen varios argumentos sobre por qué la normalización puede ser útil. [ 4 ] Puede resultar ventajosa cuando parte de la jerarquía es común a más de una dimensión. Por ejemplo, una dimensión geográfica puede ser reutilizable porque tanto la dimensión de clientes como la de proveedores la utilizan.
Beneficios del modelado dimensional
Entre los beneficios del modelo dimensional se incluyen: [ 6 ]
- Comprensibilidad. En comparación con el modelo normalizado, el modelo dimensional es más fácil de entender e intuitivo. En los modelos dimensionales, la información se agrupa en categorías o dimensiones de negocio coherentes, lo que facilita su lectura e interpretación. La simplicidad también permite que el software navegue por las bases de datos de manera eficiente. En los modelos normalizados, los datos se dividen en numerosas entidades discretas, e incluso un proceso de negocio sencillo puede generar docenas de tablas unidas de forma compleja.
- Rendimiento de las consultas. Los modelos dimensionales están más desnormalizados y optimizados para la consulta de datos, mientras que los modelos normalizados buscan eliminar la redundancia de datos y están optimizados para la carga y actualización de transacciones. La estructura predecible de un modelo dimensional permite que la base de datos haga suposiciones sólidas sobre los datos, lo que puede tener un impacto positivo en el rendimiento. Cada dimensión es un punto de entrada equivalente a la tabla de hechos, y esta estructura simétrica permite un manejo eficaz de consultas complejas. La optimización de consultas para bases de datos con unión en estrella es simple, predecible y controlable.
- Extensibilidad. Los modelos dimensionales son escalables y se adaptan fácilmente a nuevos datos inesperados. Las tablas existentes se pueden modificar directamente, ya sea añadiendo nuevas filas o ejecutando comandos SQL de modificación de tabla. No es necesario reprogramar las consultas ni las aplicaciones que se ejecutan sobre el almacén de datos para adaptarse a los cambios. Las consultas y aplicaciones antiguas siguen funcionando sin generar resultados diferentes. Sin embargo, en los modelos normalizados, cada modificación debe considerarse cuidadosamente debido a las complejas dependencias entre las tablas de la base de datos.
Modelos dimensionales, Hadoop y big data
Aún podemos disfrutar de las ventajas de los modelos dimensionales en Hadoop y plataformas de big data similares . Sin embargo, algunas características de Hadoop requieren que adaptemos ligeramente el enfoque estándar para el modelado dimensional.
- El sistema de archivos de Hadoop es inmutable . Solo podemos agregar datos, pero no actualizarlos. Por lo tanto, solo podemos agregar registros a las tablas de dimensiones. Las dimensiones de cambio lento en Hadoop se convierten en el comportamiento predeterminado. Para obtener el registro más reciente y actualizado en una tabla de dimensiones, tenemos tres opciones. Primero, podemos crear una vista que recupere el último registro usando funciones de ventana . Segundo, podemos tener un servicio de compactación ejecutándose en segundo plano que recree el estado más reciente. Tercero, podemos almacenar nuestras tablas de dimensiones en un almacenamiento mutable, por ejemplo HBase, y federar consultas entre los dos tipos de almacenamiento.
- La forma en que se distribuyen los datos en HDFS hace que unirlos sea costoso. En una base de datos relacional distribuida ( MPP ), podemos ubicar registros con las mismas claves primarias y foráneas en el mismo nodo de un clúster. Esto hace que unir tablas muy grandes sea relativamente económico. No es necesario que los datos viajen a través de la red para realizar la unión. Esto es muy diferente en Hadoop y HDFS. En HDFS, las tablas se dividen en grandes bloques y se distribuyen entre los nodos de nuestro clúster. No tenemos ningún control sobre cómo se distribuyen los registros individuales y sus claves en el clúster. Como resultado, las uniones en Hadoop para dos tablas muy grandes son bastante costosas, ya que los datos tienen que viajar a través de la red. Deberíamos evitar las uniones siempre que sea posible. Para una tabla de hechos y dimensiones grande, podemos desnormalizar la tabla de dimensiones directamente en la tabla de hechos. Para dos tablas de transacciones muy grandes, podemos anidar los registros de la tabla hija dentro de la tabla padre y aplanar los datos en tiempo de ejecución.
Literatura
- Kimball, Ralph ; Margy Ross (2013). The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3.ª ed.). Wiley. ISBN 978-1-118-53080-1.
- Ralph Kimball (1997). "Un manifiesto de modelado dimensional" . Sistemas de gestión de bases de datos e Internet . 10 (9).
- Margy Ross (Kimball Group) (2005). "Identificación de procesos de negocio" . Kimball Group, Consejos de diseño (69). Archivado del original el 12 de junio de 2013.
Referencias
- 1 2 3 Connolly, Thomas; Begg, Carolyn (26 de septiembre de 2014). Sistemas de bases de datos: un enfoque práctico para el diseño, la implementación y la gestión (6.ª ed.). Pearson. Parte 9 Inteligencia empresarial. ISBN 978-1-292-06118-4.
- ↑ Moody, Daniel L.; Kortink, Mark AR "De los modelos empresariales a los modelos dimensionales: una metodología para el diseño de almacenes de datos y data marts" (PDF) . Modelado dimensional. Archivado (PDF) del original el 17 de mayo de 2017. Recuperado el 3 de julio de 2018 .
- ↑ Ralph Kimball; Margy Ross; Warren Thornthwaite; Joy Mundy (10 de enero de 2008). The Data Warehouse Lifecycle Toolkit: Expert Methods for Designing, Developing, and Deploying Data Warehouses (Segunda edición). Wiley. ISBN 978-0-470-14977-5.
- 1 2 3 Matteo Golfarelli; Stefano Rizzi (26 de mayo de 2009). Diseño de almacenes de datos: principios y metodologías modernas . McGraw-Hill Osborne Media. ISBN 978-0-07-161039-1.
- ↑ Ralph Kimball; Margy Ross (26 de abril de 2002). The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Segunda edición). Wiley. ISBN 0-471-20024-7.
- ↑ Ralph Kimball; Margy Ross; Warren Thornthwaite; Joy Mundy; Bob Becker (enero de 2008). The Data Warehouse Lifecycle Toolkit (Segunda edición). Wiley. ISBN 978-0-470-14977-5.
- Almacenamiento de datos
- Modelado de datos