30 enero 2015

Consideraciones para una Solución Data Warehouse

Antes de iniciar un proyecto data warehousing, hay varias consideraciones de las que debe estar consciente. La comprensión de estas consideraciones le ayudará a crear una solución data warehousing que direccione sus necesidades y restricciones específicas.

Base de Datos y Almacenamiento Data Warehouse

Un data warehouse es una base de datos relacional que está optimizada para la lectura de datos para el análisis y los reportes. Cuando está planeando un data warehouse, debe tomar en cuenta las siguientes consideraciones.
Esquema de Base de Datos
El esquema lógico de un data warehouse está típicamente diseñado para desnormalizar los datos en una estructura que minimice el número de operaciones JOIN que son requeridas en las consultas utilizadas para recuperar y agregar datos. Un enfoque común es diseñar un esquema estrella en la cual las medidas numéricas son almacenadas en tablas de hechos que tienen llaves foráneas a múltiples tablas de dimensión que contienen las entidades del negocio por la cual las medidas pueden ser agregadas. Antes de diseñar su data warehouse, debe conocer qué dimensiones necesitan utilizar sus usuarios del negocio cuando agregan datos, qué medidas necesitan ser analizadas y en qué granularidad, y cuales hechos incluyen tales medidas. También debe planificar las llaves que serán utilizadas para vincular hechos a dimensiones cuidadosamente, y considerar si su data warehouse debe soportar el uso de dimensiones que cambian con el tiempo (por ejemplo, el manejo de registros de dimensión para clientes que cambian su dirección).
También debe considerar la implementación física de la base de datos, ya que esto afectará el rendimiento y la manejabilidad del data warehouse. Es común utilizar el particionado de tablas para distribuir datos de hechos grandes a través de varios filegroups, cada uno en un disco físico diferente. Esto puede incrementar el rendimiento de la consulta y le permite implementar una estrategia de backup basado en filegroup que puede ayudar a reducir el tiempo de inactividad en caso de una falla de disco único. También debe considerar la estrategia de indexación apropiada para sus datos, y si debe utilizar la compresión de datos cuando almacena los datos.
Hardware
La elección del hardware para su solución data warehouse puede hacer una diferencia significativa en el rendimiento, manejabilidad, y el costo de su data warehouse. Las consideraciones del hardware para una data warehouse incluyen:
  • Los requisitos del procesamiento de consultas, incluyendo la memoria pico previsto y la utilización del CPU.
  • El volumen de almacenamiento y requisitos de entrada/salida de disco.
  • La conectividad de red y ancho de banda.
  • La redundancia de componentes para alta disponibilidad.
Puede optar por construir su propia solución data warehouse por la compra y el montaje de componentes individuales, usando una arquitectura de referencia probada, o comprar un dispositivo de hardware que incluya componentes preconfigurados en un paquete listo para su uso. Los factores que influyen en su elección del hardware incluyen:
  • Presupuesto.
  • Acuerdos de empresa existente con los vendors de hardware.
  • Tiempo de la solución.
  • Experiencia en el ensamblaje de hardware y en la configuración.
Alta Disponibilidad y Recuperación de Desastres
Un data warehouse puede muy rápidamente llegar a ser una parte crítica para el negocio de su infraestructura de aplicación general, por lo que es esencial considerar cómo garantizará su disponibilidad. SQL Server incluye soporte para varias técnicas de alta disponibilidad, incluyendo el reflejado de base de datos y el clustering de servidores. Debe evaluar estas tecnologías y escoger la mejor opción para su solución individual en base a:
  • Los requisitos de tiempo de conmutación por error.
  • Requisitos de hardware y de costos.
  • Complejidad de configuración y de gestión.
Además de una solución de alta disponibilidad a nivel de servidor, también debe considerar la redundancia a nivel de componente individual para las interfaces de red y arreglos de almacenamiento.
La solución de alta disponibilidad más robusta no puede proteger su data warehouse de todas las eventualidades, así que también debe planificar una solución de recuperación a desastres adecuado, que incluye una estrategia de backup completa. Su estrategia backup debe tener en cuenta:
  • El volumen de datos en el data warehouse.
  • La frecuencia de los cambios a los datos en el data warehouse.
  • El efecto del proceso backup en el desempeño del data warehouse.
  • El tiempo de recuperación de la base de datos en el caso de un fallo.
Seguridad
Su data warehouse contiene un gran volumen de datos que es típicamente sensible comercialmente. Además, es posible que desee proporcionar acceso a algunos datos a todos los usuarios, pero restringir el acceso a algunos datos para un subconjunto de usuarios.
Las consideraciones para asegurar su data warehouse incluyen:
  • Los mecanismos de autenticación que debe soportar para proporcionar el acceso al data warehouse.
  • Los permisos que requerirán los distintos usuarios que acceden al data warehouse.
  • Las conexiones sobre las cuales los datos son accedidos.
  • La seguridad física de la base de datos y de los medios de backup.
Orígenes de Datos
Debe identificar los orígenes de datos que proporcionan los datos para su data warehouse, y considerar los siguientes factores a la hora de planificar su solución.
Tipos de Conexión de Orígenes de Datos
Su data warehouse puede requerir datos de una variedad de orígenes de datos. Para cada origen, debe considerar cómo su proceso ETL puede conectar y extraer los datos requeridos. En muchos casos, sus orígenes de datos serán las bases de datos relacionales para las cuales puede utilizar un proveedor OLE DB u Open Database Connectivity (ODBC). Sin embargo, algunos orígenes de datos pueden utilizar un almacenamiento propietario que requiere un proveedor hecho a la medida o para el cual no existe proveedor. En este caso, se debe desarrollar un proveedor personalizado o determinar si es posible exportar los datos del origen de datos en un formato que el proceso ETL puede consumir fácilmente (como XML o texto delimitado por comas).
Credenciales y Permisos
La mayoría de los orígenes de datos requieren un acceso seguro en la forma de autenticación de usuarios y permisos individuales sobre los datos. Debe trabajar con los propietarios de los orígenes de datos que utiliza en su solución data warehousing para establecer:
  • Credenciales que su proceso ETL puede utilizar para acceder al origen de datos.
  • Los permisos requeridos para acceder a los datos que utiliza el data warehouse.
Formatos de Datos
Un origen de datos puede almacenar los datos en un formato diferente. Su solución debe tener en cuenta los problemas derivadas de esto, incluyendo:
  • La conversión de datos de un tipo de datos a otro, por ejemplo, la extracción de valores numéricos desde un archivo de texto.
  • El truncamiento de datos cuando copia datos a un destino, que tiene una longitud de datos limitados.
  • Los formatos de fecha y de tiempo que son utilizados en los orígenes de datos.
  • Los formatos numéricos, escalas y precisiones.
  • Soporte para caracteres Unicode.
Ventanas de Adquisición de Datos
Dependiendo de los patrones de carga de trabajo de la empresa, cada origen de datos puede tener períodos de tiempo donde el origen de datos no está disponible o el nivel de uso es tal que la sobrecarga adicional de una extracción de datos no es deseable. Cuando planea una solución data warehousing, debe trabajar con cada propietario de los orígenes de datos para determinar la ventana de adquisición de datos adecuada basada en:
  • El patrón de la carga de trabajo del origen de datos, y sus niveles de capacidad y utilización de los recursos.
  • El volumen de datos a ser extraídos, y el tiempo que toma extraerlo.
  • La frecuencia con la cual necesita actualizar el data warehouse con nuevos datos.
  • Si es aplicable, las zonas de tiempo en el cual los usuarios del negocio están accediendo a los datos.
Procesos de Extracción, Transformación y Carga
Una parte importante de los esfuerzos en la creación de una solución data warehouse es la implementación de un proceso ETL. Cuando se diseña un proceso ETL para una solución data warehousing, debe tener en cuenta los siguientes factores.
Staging
En algunas soluciones data warehousing, puede transferir datos directamente de los orígenes de datos para al data warehouse sin ningún staging intermedio. Sin embargo, en muchos casos, debe considerar el staging de datos para:
  • Sincronizar una actualización del data warehouse que incluye los datos de origen que han sido extraídos durante varias ventanas de adquisición de datos.
  • Realizar la validación de datos, la limpieza, y las operaciones de deduplicación de los datos antes de que sean cargados al data warehouse.
  • Realizar transformaciones en los datos que no pueden ser realizados durante los procesos de extracción de datos o del flujo de datos.
Si un área staging es requerido en su solución, debe decidir en un formato para los datos staged. Los formatos posibles son:
  • Una base de datos relacional.
  • Archivos de texto o de XML.
  • Archivos RAW (archivos binarios en un formato propietario de la plataforma ETL que está siendo utilizada).
La decisión sobre el formato se basa en varios factores, incluyendo:
  • La necesidad de acceder y modificar los datos staged.
  • El tiempo que es tomado para almacenar y leer los datos staging.
Por último, si una base de datos relacional es utilizada como el área staging, debe decidir dónde residirá esta base de datos. Las opciones posibles son:
  • Un servidor staging dedicado.
  • Una instancia de SQL Server dedicado en el servidor data warehouse.
  • Una base de datos staging dedicado en la misma instancia de SQL Server así como el data warehouse.
  • Una colección de tablas staging (tal vez en un esquema dedicado) en la base de datos data warehouse.
Los factores que debería considerar cuando decide la ubicación de la base de datos staging incluyen:
  • Los requisitos del hardware de Servidor y los costos.
  • El tiempo que toma transferir los datos a través de las conexiones de red.
  • El uso de técnicas de carga Transact-SQL que son realizados mejor cuando los datos staging y de data warehouse son co-localizados en la misma instancia de SQL Server.
  • Las sobrecargas de recursos del servidor que son asociadas con el proceso de carga de staging y del data warehouse.
Transformaciones Requeridas
La mayoría de los procesos ETL requieren que los datos que están siendo extraídos de los orígenes de datos sean modificados para coincidir con el esquema del data warehouse. Cuando planea un proceso ETL para una solución data warehousing, debe examinar el esquema de datos de origen y de destino, e identificar qué transformaciones son requeridas. Entonces, debe determinar el lugar óptimo dentro del proceso ETL para realizar estas transformaciones. Las opciones para la implementación de las transformaciones de datos incluyen:
  • Durante la extracción de datos. Por ejemplo, por la concatenación de dos campos en un origen de datos SQL Server en un único campo en la consulta Transact-SQL que es utilizada para extraer los datos.
  • En el flujo de datos. Por ejemplo, por utilizar una tarea de transformación de datos Derived Column en un flujo de datos de SQL Server Integration Services.
  • En el área staging. Por ejemplo, por utilizar una consulta Transact-SQL para aplicar los valores por defecto a campos null en una tabla staging.
Factores que afectan la elección de la técnica de transformación de datos incluyen:
  • La sobrecarga del rendimiento de la transformación. Por lo general, es mejor utilizar el enfoque que tiene la menor sobrecarga del rendimiento. Las operaciones basadas en conjuntos que son realizadas en consultas Transact-SQL generalmente tienen mejor desempeño que las transformaciones basadas en filas que son aplicadas en un flujo de datos.
  • El nivel de soporte para consultas y actualización en los orígenes de datos o área staging. En los casos en que está extrayendo los datos de un archivo delimitado por comas y son staged en un archivo RAW, sus opciones para realizar transformaciones están limitadas a transformaciones de fila por fila en el flujo de datos.
  • Dependencias sobre los datos son requeridos para la transformación. Por ejemplo, puede necesitar mirar un valor en un origen de datos para obtener datos adicionales de otro origen de datos. En este caso, debe realizar la transformación de datos en una ubicación donde ambos orígenes de datos sean accesibles.
  • La complejidad de la lógica que está implicada en la transformación. En algunos casos, una transformación puede requerir múltiples pasos y ramas dependiendo de la presencia o el valor de campos de datos específicos. En este caso, a menudo es más fácil aplicar la transformación por la combinación de varios pasos en un flujo de datos de lo que sería crear una sentencia Transact-SQL para realizar la transformación.
ETL Incremental
Después de la carga inicial del data warehouse, generalmente necesitará nuevas cargas incrementales o datos de origen actualizados en el data warehouse. Cuando planea su solución data warehousing, debe considerar los siguientes factores que se relaciona con el ETL incremental:
  • ¿Cómo identificará registros nuevos o modificados en los orígenes de datos?
  • ¿Necesita eliminar registros en el data warehouse cuando los registros correspondientes en los orígenes de datos son eliminados? Si es así, ¿Eliminará físicamente los registros, o simplemente les marcará como inactivos (a menudo referido como un borrado lógico)?
  • ¿Cómo determinará si un registro que será cargado en el data warehouse debería ser un nuevo registro o una actualización de un registro existente?
  • ¿Existen registros en el data warehouse para el cual los valores históricos deban ser preservados por la creación de una nueva versión del registro en lugar de actualizar el registro existente?
Calidad de Datos y Gestión de Datos Maestros
La utilidad de un data warehouse es determinada en gran medida por la calidad de los datos que contiene. Por esta razón, cuando se planea un proyecto data warehousing, debería determinar cómo asegurará la calidad de los datos y si debería considerar el uso de una solución de gestión de datos maestros.
Calidad de Datos
Para validar y hacer cumplir la calidad de los datos en el data warehouse, es recomendado que los usuarios del negocio que tienen conocimiento de un área comprendida en el data warehouse, tomen el rol de steward de datos para esa área. Un steward de datos es responsable de:
  • Construir y mantener una base de conocimiento que identifica los errores de datos comunes y sus correcciones.
  • Validación de datos sobre la base de conocimientos.
  • Asegurar que los valores consistentes sean utilizados para los atributos de datos donde múltiples formas del valor pueden considerarse válidos (por ejemplo, asegurar que un campo Country siempre utiliza el valor "United States" cuando se refiere a America, aun cuando "USA", "The U.S." y "America" son también valores válidos).
  • Identificar y corregir los valores de datos faltantes.
  • Identificación y consolidación de entidades de datos duplicados (así como un registro de cliente para "Robert Smith" y un registro de cliente para "Bob Smith" que ambos se refieren a un mismo cliente físico).
Puede utilizar SQL Server Data Quality Services para proporcionar una solución de calidad de datos que ayude al steward de datos a realizar estas tareas.
Gestión de Datos Maestros
Es común en las grandes organizaciones tener múltiples aplicaciones de negocio, y en muchos casos, estos sistemas realizan tareas que están relacionadas con las mismas entidades de la empresa. Por ejemplo, una organización puede tener una aplicación e-commerce que permite a los clientes a comprar productos, y un sistema de gestión de inventario separado que también almacena datos acerca de los productos. Un registro representando un producto en particular puede existir en ambos sistemas. Puede ser útil en este escenario implementar un sistema de gestión de datos maestros que proporcione una definición autorizada de cada entidad del negocio (en este ejemplo, un producto en particular) que puede utilizar sobre múltiples aplicaciones para garantizar la coherencia.
En un escenario data warehousing, el uso de la gestión de datos maestros es especialmente importante, ya que garantiza que los datos en el data warehouse se ajusten a la definición acordada por las entidades del negocio que serán incluidos en cualquier solución de análisis y de reportes que deben soportar.
Puede utilizar SQL Server Master Data Services para implementar una solución de gestión de datos maestros.

3 comentarios:

Narcizo dijo...

Este es un segundo post sobre DWH, espero les sirva.

Anónimo dijo...

Muy Util, Gracias

Cristian Basáez dijo...

Hola, muchas gracias por compartir esta valiosa información.