Proceso E.T.L Enfoque Kimball 1 domingo 8 de julio de 2012 Contenido. - ETL - Extracción. - Transformación. - Carga. 2 domingo 8 de julio de 2012 Objetivos - Presentar los conceptos necesarios para entender el proceso de extracción, transformación y carga de una base de datos. 3 domingo 8 de julio de 2012 El proceso ETL - Proceso para transferir, formatear, limpiar y cargar datos. - Su construcción es responsabilidad del equipo de BI/DWH. - Se construye para cada BI/DWH. - Implica entre 40% al 60% del esfuerzo. - Se utilizan herramientas y programas diseñados para esta tarea. 4 domingo 8 de julio de 2012 ETL problemas - Múltiples tecnologías. - Reportes obsoletos. - No existe metadatos. - Diferentes algoritmos de calculo. - Diferente niveles de extracción. - Diferentes niveles de detalle (granularidad). - Diferentes nombres de campos de datos. - Diferentes significados de campos de datos. - Perdida de información. 5 domingo 8 de julio de 2012 El proceso de ETL. - ETL se encarga de: - Extraer los datos de las fuentes. - Transformar y limpiar los datos. - Resumir los datos. - Detectar los cambios en las fuentes. - Reestructurar las claves. - Cargar los datos en el almacén. - Refrescar el almacén con datos actualizados. - Indexar los datos. 6 domingo 8 de julio de 2012 El proceso ETL. Correspondencia Carga Extracción • Identifica los datos que han cambiado • Extrae (lectura) de datos. • Obtiene los agregados • Mantiene la metadata Transformación • • • • • • Limpieza y transformación de datos Estandarización a un solo formato. Creación de claves Integración de datos (cálculo de datos derivados) Obtención de agregados Mantenimiento de la metadata 7 domingo 8 de julio de 2012 • Carga • Indización • Realización de pruebas de calidad de la carga. • Gestión de errores. • Obtención de datos agregados. • Mantenimiento de metadata Calidad de datos. - La calidad de los datos es la clave del éxito de un almacén de datos. - Estrategia: - OLTP: - Modificar reglas de integridad. - Triggers. - Documentar fuentes de datos. - Definir procesos de transformación. - Nombrar un responsable de calidad de datos. 8 domingo 8 de julio de 2012 Extracción Extracción, Transformación, Carga 9 domingo 8 de julio de 2012 Extracción de datos. - Requerimiento IMPORTANTE - Causar mínimo impacto en el sistema origen. - Las operaciones de extracción suelen programarse en horarios donde el impacto sea nulo. 10 domingo 8 de julio de 2012 Extracción de datos - Programas diseñados para extraer datos de las fuentes. - Técnicas: - Programas específicos. - Wrapper. (empaquetar la fuente de datos). - EJ: OCI, ODBC/OleDB, IDAPI..... 11 domingo 8 de julio de 2012 Extracción - DBMS. Preparar consultas o rutinas. - Hojas de calculo. Lectura, formato y preprocesamiento. - Texto libre. Lectura y preprocesamiento. 12 domingo 8 de julio de 2012 Cambios. - Identificar cambios antes de extraerlos. - Identificar los datos operacionales que se han modificado desde la fecha del ultimo mantenimiento. 13 domingo 8 de julio de 2012 Cambios: métodos. - Carga total. cada vez se empieza de cero. - Comparación de instancias (OLTP). - Marcas de tiempo (time stamping). - Triggers OLTP. - LOGS (Gestión transacciones). - Técnicas mixtas. 14 domingo 8 de julio de 2012 TRANSFORMACIÓN Proceso E.T.L 15 domingo 8 de julio de 2012 Transformación - Aplica reglas de negocio o funciones a los datos extraídos para convertirlos en datos que serán cargados. - CLEANSING. - INTEGRATION. 16 domingo 8 de julio de 2012 Cleansing - En los datos operacionales de fuentes heterogéneas existen anomalías desarrolladas independientemente a lo largo del tiempo, por lo que es necesario eliminarlas. - LIMPIEZA DE DATOS. - ESTANDARIZACIÓN. 17 domingo 8 de julio de 2012 Múltiple Codificación - Codificación y descripciones del individuo. - Almacenado de diferentes maneras. - En la transformación habrá que elegir una convención única para el DW. 18 domingo 8 de julio de 2012 Unidades de medida - La unidades pueden tener distintas unidades de medidas, según el origen del sistema OLTP. Un ejemplo es hablar de litro, centímetros cúbicos, etc. - Habra que elegir una única unidad de medida que sea útil para el DW y transformar los datos. 19 domingo 8 de julio de 2012 Formatos - Los formatos de fecha que encontramos en diferentes sistemas operacionales pueden estar almacenados en múltiples formatos. - Las fecha pueden estar almacenadas como yyy/mm/dd , mm/dd/yyy , dd/mm/yyyy. - En el desarrollo del sistema DW, debemos elegir alguna de ellas y realizar la transformación correspondiente 20 domingo 8 de julio de 2012 Varias columnas en una - Los datos de una persona, como dirección pueden almacenarse en diferentes campos de la misma tabla(Calle, Número, Piso y departamento). - En un DW es posible que lo almacenemos en una única columna . 21 domingo 8 de julio de 2012 Claves con estrutura - Claves con estructuras: Descomponer en valores atómicos. Código de producto= 12M65431345 Código Código país de vendedor Zona Número de venta de producto 22 domingo 8 de julio de 2012 Estándares - Unificar estándares. - Unidades de medida, tiempo, moneda... cm cm inches DD/MM/YY DD-Mon-YY MM/DD/YY 1,000 GBP USD 600 FF 9,990 23 domingo 8 de julio de 2012 Duplicados - Valores duplicados: deben ser eliminados. - SQL restricciones en el SGBDR. - Integridad referencial debe reconstruirse, 24 domingo 8 de julio de 2012 Creación de claves - Las claves primarias de las tablas no deben tener algún significado más allá de representar un identificador único. 25 domingo 8 de julio de 2012 CARGA Proceso E.T.L 26 domingo 8 de julio de 2012 Carga. - Es el momento en el cual los datos transformados son cargados en el sistema de destino. - Consiste en mover los datos desde las fuentes operacionales o el almacenamiento intermedio hasta el almacén de datos y cargar los datos en las tablas correspondientes. - Puede consumir mucho tiempo. 27 domingo 8 de julio de 2012 Carga. - Dos etapas del proceso de carga: - Carga inicial: Mueve grandes volúmenes de datos. - Mantenimiento periódico: Mueve pequeños volúmenes de datos. - Existen 2 formas de desarrollar el proceso de carga: - TAL (trunc and load): Limpia el repositorio de datos y carga información nueva. - Incremental: Se utiliza cuando se carga información nueva o información que necesita ser actualizada. 28 domingo 8 de julio de 2012 Frecuencia de mantenimiento - La frecuencia del mantenimiento periódico esta determinada por la granuliridad de las dimensiones y los requisitos de los usuarios. - Se deben determinar las “ventanas de carga” más convenientes para no saturar la base de datos operacional. - Ocasionalmente archivar o eliminar datos obsoletos que ya no interesan para el análisis. 29 domingo 8 de julio de 2012 Indización - Determinar como se van ha generar los indices: - Generación del indice durante la carga. - Carga con el indice habilitado. - Proceso tupla a tupla. - Generación del indice después de la carga. - Carga con el indice deshabilitado. - Creación del indice (total o parcial). 30 domingo 8 de julio de 2012 Integridad referencial - Desahabilitar Integridad referencial. - Agiliza el proceso de transferencia de datos. - Cada vez que se inserta un registro no se efectúan las validaciones de integridad referencial. - Al finalizar el proceso se habilita la integridad referencial. 31 domingo 8 de julio de 2012 Obtención de valores agregados. - Determinar en que momento se generan los valores agregados. - Durante la extracción. - Después de la carga (transporte). Transporte Extracción Almacenamiento intermedio 32 domingo 8 de julio de 2012