Como comentamos en la anterior entrada sobre Data Governance, el Data Warehouse es el proceso más laborioso y el más importante para asegurar la calidad de los datos, ya que engloba todo el proceso desde la extracción de los datos de los orígenes hasta su conexión con una herramienta de reporting.
Definición de Data Warehouse
Un Data Warehouse es un repositorio alojado en un servidor que recibe información de diferentes orígenes, los más comunes son:
- Softwares de gestión empresarial como pueden ser ERP o CRM
- Bases de datos relacionales
- Ficheros como pueden ser PDF, Excel o texto
- Servicios web como Google Analytics y Google Ads o redes sociales
Una vez en el almacén de datos, estos son tratados y limpiados para facilitar su posterior análisis por parte de los encargados de tomar decisiones.
Dentro del Data Warehouse también se definen las normas y los esquemas por los que se rige la información, así como los permisos que tienen los usuarios.
Todos los datos estarán definidos y organizados de tal modo que los programas de Business Intelligence podrán acceder más rápidamente a la información y de manera más precisa.
Respecto a una base de datos tradicional, el Data Warehouse significa una ventaja competitiva ya que aporta datos fiables y de calidad, lo que se traducirá en mejores decisiones por parte de la empresa. También unifica todas las bases de datos en un mismo lugar y crea unos estándares para análisis posteriores.
Arquitectura de un Data Warehouse
La arquitectura del Data Warehouse consta de tres capas, definidas como Data Modeling & Design, más una de capa destinada al acceso de datos.
Staging
Consiste en una copia directa de los datos en bruto de los sistema fuentes (Source Systems) En esta capa no se aplica ningún tipo de transformación de datos ni reglas de negocio. Cada sistema fuente se almacena en un esquema diferente dentro de la capa de Staging.
Adicionalmente, en esta capa también se encuentran almacenados los datos maestros (Masterdata). Esta capa puede contener datos de procesos destinados a la calidad de dato que posteriormente pueden ser exportados en la herramienta de Business Intelligence para aplicar correcciones.
Core
En esta capa se realiza la integración de datos. Aquí es donde se definen los conceptos de negocio. Los datos no son volátiles y cada cambio en el sistema fuente se ve reflejado en la capa Core manteniendo el histórico de los mismos.
En esta capa se deben definir cuáles serán las Claves únicas de negocio para su posterior relación entre conceptos (por ejemplo, identificador único de cliente o de producto, transversal a toda la compañía). No se aplica ninguna regla de negocio, únicamente se limpian, transforman e integran los datos para enriquecer a la siguiente capa de áreas temáticas.
Data Mart
En esta capa se almacenan todos los cubos y dimensiones de las diferentes áreas temáticas. Estos datos serán explotados posteriormente por el sistema de reporting. Aquí es donde se aplican las reglas de negocio, ya que en función del área temática éstas pueden variar.
La granularidad de los datos puede cambiar, ya que en esta capa se suelen realizar los cálculos y agregaciones para que el sistema de reporting sea capaz de presentar los datos de forma eficaz.
Access
Esta capa actúa como interfaz entre el Data Warehouse y el sistema de reporting u otras aplicaciones externas de visualización y análisis de datos. Cada unidad de negocio tendrá asociado un esquema que tendrá permisos para ver los datos asociados de la unidad de negocio.
Para que todo esto sistema funcione correctamente, es fundamental tener implementados mecanismos para los despliegues entre entornos y administración de procesos de carga (Data Storage & Operation). Esta parte nos permite promocionar los cambios en el código a los diferentes entornos minimizando errores.
Los procesos de carga deben ser monitorizados para asegurar que los datos han sido actualizados correctamente. Los metadatos nos ayudarán a realizar estas tareas de auditoria entre otras como detección de malos rendimientos en las cargas, calidad del desarrollo, etc.