semana 10 - etl

47
Extracción, Transformación y Carga

Upload: blazkx

Post on 01-Jan-2016

128 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Semana 10 - ETL

Extracción, Transformación y Carga

Page 2: Semana 10 - ETL

Mapa del Curso

Inteligencia de Negocios

Metodología Kimball

Planeamiento del Proyecto

Modelo del

Negocio

Modelado Dimensional

Modelado Físico

ETL

Reportes

Minería de Datos

Page 3: Semana 10 - ETL

Tabla de Contenido

• ETL

• Extracción

• Transformación

• Carga

Page 4: Semana 10 - ETL

Objetivos

1. Presentar los conceptos necesarios para entender el proceso de extracción, transformación y carga de una base de datos.

Page 5: Semana 10 - ETL

ETLExtraer, Transformar y Cargar

Page 6: Semana 10 - ETL

El proceso ETL

• Proceso para transferir, formatear, limpiar y cargar datosdesde aplicaciones de producción (ERP, CRM, BDR,archivos) a los sistemas de BI (Data Marts, BDD, OLAP).

• Su construcción es responsabilidad del equipo BI/DWH.

• Se construye para cada BI/DWH.

• Implica entre 40% al 60% del esfuerzo.

• Se utiliza herramientas y programas diseñados ad hoc

Page 7: Semana 10 - ETL

ETL – Problemas potenciales

• Múltiples tecnologías

• Reportes obsoletos.

• No existía Metadata.

• Diferentes algoritmos de calculo.

• Diferentes 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.

• No existía reglas de corrección de datos.

• No existía capacidad de Drill Down.

Page 8: Semana 10 - ETL

El proceso ETL

• El ETL se encarga de:– Extraer los datos de las fuentes

– Transformar y limpiar los datos

• Resumir los datos

• Detectar cambios en las fuentes

• Reestructurar las claves

– Cargar los datos en el almacén

• Refrescar el almacén con datos actualizados

• Indexar los datos

– Mantener los metadatos

• La frecuencia de los procesos ETL puede ser:

– Mensual o semanal (mayormente diariarios)

– Tiempo casi real (cada hora, cada minutos, etc.).

Page 9: Semana 10 - ETL

El proceso ETL

Correspondencia

Transformación

Extracción Carga

• Identifica los datos que han cambiado

• Extrae (lectura) de datos.

• Obtiene los agregados

• Mantiene la metadata

• 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

• Carga

• Indización

• Realización de pruebas de calidad de la carga.

• Gestión de errores.

• Obtención de datos agregados.

• Mantenimiento de metadata

Bases de datos operacionales

Almacenamiento intermedio

Almacén de datos

Page 10: Semana 10 - ETL

El proceso ETL

Bases de datos operacionales

Almacén de datos

El Almacenamiento intermedio permite:

– Realizar transformaciones sin paralizar las bases de datos operacionales y el almacén de datos.

– Almacenar metadatos.

– Facilitar la integración de fuentes externas.

Fuentes Externas

Correspondencia

Extracción Carga

Transformación

Almacenamiento intermedio

Page 11: Semana 10 - ETL

El proceso ETL

www.exceptionsoftware.com/etl.html

Page 12: Semana 10 - ETL

Calidad de Datos

• La “calidad de los datos” es la clave del éxito de un almacén de datos.

• Definir una estrategia de calidad:

– Actuar sobre los sistemas operacionales:

• modificar las reglas de integridad

• usar disparadores.

– Documentar las fuentes de datos.

– Definir procesos de transformación.

– Nombrar un responsable de calidad de datos

Page 13: Semana 10 - ETL

Benetl

Barracuda Integrator

Clover ETL

Pentaho Data Integration

Herramientas disponibles

Page 14: Semana 10 - ETL

Ejercicio 1

• Si es que al final de cuentas todos los datos (en algún nivel de agregación) de los sistemas transaccionales (OLTP) se deben de pasar los sistemas analíticos (OLAP), por que no se diseñan las tablas de los sistemas OLTP como si fuesen modelos dimensionales.

Page 15: Semana 10 - ETL

EXTRACCIÓN

Page 16: Semana 10 - ETL

Extracción de datos

• Permite extraer los datos desde los sistemas de origen.

• Cada organización puede usar software diferente con datos y formatos distintos.

• Los formatos de las fuentes se encuentran en:– bases de datos relacionales

– archivos planos

– bases de datos no relacionales

• La extracción convierte los datos a un formato preparado para iniciar el proceso de transformación.

• Se analiza los datos extraídos y se verifica si cumplen estructura esperada, si no son rechazados.

Page 17: Semana 10 - ETL

Extracción de datos

• Requerimiento importante:

– Que el proceso de extracción cause mínimo impacto en el sistema origen. Si son muchos datos, el sistema origen puede reducir su desempeño o colapsar, evitando su uso cotidiano.

• Por esta razón:

– En sistemas grandes las operaciones de extracción suelen programarse en horarios o días donde el impacto sea nulo o mínimo.

Page 18: Semana 10 - ETL

Extracción de datos

• Programas diseñados para extraer datos de las fuentes.

• Herramientas: data migration tools, wrappers, ...

18

Correspondencia

Bases de datos operacionales

Almacenamiento intermedio

Almacén de datos

Extracción

Page 19: Semana 10 - ETL

Extracción de datos

• Lectura de datos del sistema OLTP:

– durante la carga inicial .

– mantenimiento del BI/DWH

• Ejecución de la extracción:

– DBMS. Preparar consultas SQL o rutinas programadas.

– Sistemas propietarios. Lectura y pre-procesamiento.

– Texto libre. Lectura y pre-procesamiento.

– Hipertextuales. Lectura, formateo y pre-procesamiento.

– Hojas de cálculo. Lectura, formateo y pre-procesamiento.

Page 20: Semana 10 - ETL

Identificación de cambios

• Identificar los cambios antes de extraerlos.

• Identificar los datos operacionales que se han modificado desde la fecha del último mantenimiento.

• Métodos1. Carga total. cada vez se empieza de cero.

2. Comparación de instancias de la base de datos operacional.

3. Uso de marcas de tiempo (time stamping) en los registros del sistema operacional.

4. Uso de disparadores en el sistema operacional.

5. Uso del fichero de log (gestión de transacciones) del sistema operacional.

6. Uso de técnicas mixtas.

Page 21: Semana 10 - ETL

TRANSFORMACIÓN

Page 22: Semana 10 - ETL

Transformación

• Aplica reglas de negocio o funciones a los datos extraídos para convertirlos en datos que serán cargados.

• Cleansing. Transformar los datos extraídos de las fuentes operacionales: limpieza, estandarización.

• Integration. Calcular los datos derivados: aplicar las leyes de derivación.

Correspondencia

Bases de datos operacionales

Almacenamiento intermedio

Almacén de datos

Transformación

Page 23: Semana 10 - ETL

1. Cleansing

• En los datos operacionales de fuentes heterogeneas existen anomalías desarrolladas independientemente a lo largo del tiempo, por lo que es necesario eliminarlas:

– Limpieza de datos: eliminar datos, corregir y completar datos, eliminar duplicados.

– Estandarización: codificación, formatos, unidades de medida.

12M65431

12-m-65421

“12m65421”

“12m65421”

“ ”

12M65431

12M65431

12-m-65421

“12m65421”

“12m65421”

“ ”

12M65431

12

12

12

M

m

m

65431

65421

65421

12

12

M

M

65431

65421

Page 24: Semana 10 - ETL

Múltiple codificación

• Codificación y descripción del genero del individuo.

• Almacenado de diferentes maneras: “M” y “F”, “1” y ”0”,“Hombre” y “Mujer” ó “Masculino” y “Femenino.”

• En la transformación, habrá que elegir una convenciónúnica para el DW, que puede ser “M” y “F y transformar losdatos.

Aplicación A: M y F

M - FAplicación B: 1 y 0

Aplicación C: Masculino y Femenino

Page 25: Semana 10 - ETL

Unidades de medida

• Las unidades pueden tener distintas unidades de medidas, según el origen del sistema OLTP. Un ejemplo es hablar de litro, centímetros cúbicos o hectolitros.

• Habrá que elegir una única unidad de medida que sea útil para el DW y transformar los datos.

Aplicación A: litros

LitrosAplicación B: cm3

Aplicación C: Hectolitros

Page 26: Semana 10 - ETL

Formatos

• Los formatos de fecha que encontramos en los diferentes sistemas operacionales pueden estar almacenados en multiples formatos.

• Las fechas pueden estar almacenadas como yyyy/mm/dd, mm/dd/yyyy ó dd/mm/yyyy.

• En el desarrollo del sistema DW, debemos elegir alguna de ellas y realizar la transformación correspondiente.

Aplicación A: yyyy/mm/dd

dd/mm/yyyyAplicación B: mm/dd/yyyy

Aplicación C: dd/mm/yyyy

Page 27: Semana 10 - ETL

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 sistema DW, es posible que los almacenemos en una única columna.

• Lo mismo puede suceder con el Nombre y Apellido.

Page 28: Semana 10 - ETL

Una columna en varias

• Los sistemas antiguos solían colocar el tipo y número de documento en el mismo campo de la tabla.

• En un DW, es posible que necesitemos colocar el tipo de documento en un campo y el número de documento en otro.

Page 29: Semana 10 - ETL

Claves con estructura

• Claves con estructura: descomponer en valores atómicos

código del país

zona de ventas

número de producto

código de vendedor

Código de producto = 12M65431345

Page 30: Semana 10 - ETL

Estándares

• Unificar estándares

• Unidades de medida, unidades de tiempo, moneda,...

cm

inches

cm

DD/MM/YY

MM/DD/YY

DD-Mon-YY

1,000 GBP

FF 9,990

USD 600

Page 31: Semana 10 - ETL

Duplicados

• Valores duplicados: deben ser eliminados.

• SQL restricciones en el SGBDR

ACME Inc

ACME Inc

ACME Inc ACME Inc

Page 32: Semana 10 - ETL

Integridad referencial

• Integridad referencial: debe reconstruirse.

Departamento10203040

Emp Nombre Departamento1099 Smith 101289 Jones 201234 Doe 506786 Harris 60

Page 33: Semana 10 - ETL

Creación de claves

• Las claves primarias de las tablas no deben tener algún significado más halla de representar un identificador único.

#1 Venta 1/2/98 12:00:01 Ham Pizza $10.00

#2 Venta 1/2/98 12:00:02 Cheese Pizza $15.00

#3 Venta 1/2/98 12:00:02 Anchovy Pizza $12.00

#5 Venta 1/2/98 12:00:04 Sausage Pizza $11.00

#4 Devolución 1/2/98 12:00:03 Anchovy Pizza - $12.00

#dw1 Venta 1/2/98 12:00:01 Ham Pizza $10.00

#dw2 Venta 1/2/98 12:00:02 Cheese Pizza $15.00

#dw3 Venta 1/2/98 12:00:04 Sausage Pizza $11.00

Claves sin significado

Page 34: Semana 10 - ETL

CARGAR

Page 35: Semana 10 - ETL

Carga

• Es el momento en el cual los datos transformados soncargados 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 estructuras de datos.

• Puede consumir mucho tiempo.

Page 36: Semana 10 - ETL

Carga

• Existen 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 dos formas de desarrollar el proceso de carga:

– TAL (Trunc and Load): Limpia el repositorio de datos ycarga la información de nueva cuenta.

– Incremental: Se utiliza cuando se carga informaciónnueva o información que necesita ser actualizada.

36

Page 37: Semana 10 - ETL

Frecuencia de mantenimiento

• La frecuencia del mantenimiento periódico estádeterminada por la granularidad de las dimensiones y losrequisitos 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.

T1 T2 T3

Base de datos operacional

Page 38: Semana 10 - ETL

Indización

• Determinar cómo se van ha generar los índices:

• Generación del índice durante la carga.

– carga con el índice habilitado

– proceso tupla a tupla. (lento)

• Generación del índice después de la carga:

– carga con el índice deshabilitado

– creación del índice (total o parcial). (rápido)

Index

Almacén de datos

Base de datos operacional

Page 39: Semana 10 - ETL

• Deshabilitar Integridad referencial.

• Para agilizar 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 procese se habilita la integridad referencial.

La integridad referencial garantiza que una entidad (fila o registro) siempre se relaciona con otras entidades válidas (que existen en la BD).

Dichos datos serán correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.

Integridad Referencial

Page 40: Semana 10 - ETL

Obtención de valores agregados

• Determinar en qué momento se generan los valores agregados.

– Durante la extracción.

– Después de la carga (transporte).

Base de datos operacional

Almacenamiento intermedio

Almacén de datos

TransporteExtracción

Page 41: Semana 10 - ETL

EJEMPLO

Sistemas Fuente

Extracción

Regla de transformación gramatical en

oraciones simples

Area de trabajo

Carga

Sistema de Presentación

Page 42: Semana 10 - ETL

Ejemplo

• Fuentes de datos.

• Registrar la ubicación de nombre y datos que existe en las tablas.

• Nombres de archivo y ubicación

• Formato

• Significado de los atributos

FuenteDueño de negocio

Dueño del Software Plataforma Localización

Descri`ción de los datos

Page 43: Semana 10 - ETL

Ejemplo

• Extracción

• Copiar los datos específicos directamente desde las tablas origen a las tablas de trabajo en el zona de trabajo (staging area).

Tabla destino

Columna destino

Tipo de

datoLongi-

tud

Descripción de la columna destino

Sistema

Fuente

Tabla / File Origen

Col / Field

Origen

Notas del fomato de

datos

Extracción

Page 44: Semana 10 - ETL

Transformaciones

• Transformar las tablas de dimensiones

• Transformar las tablas de hechos

Transformación

Page 45: Semana 10 - ETL

Transformación – Tablas Dimensionales

• Generar claves alternas en una tabla de claves alternas y hacer estos permanentes.

• Inserte la clave alterna en las tablas dimensionales de trabajo.

• Ejecutar operaciones de limpieza de datos que sea necesarios (usualmente en la mesa de trabajo)

• Generar algún atributo derivado que se necesite.

• Generar y conversar el log del proceso.

Page 46: Semana 10 - ETL

Transformación – Tablas de Hechos

• Unir todas las dimensiones en la tabla de hechos (usualmente la clave primaria original.

• Insertar las claves alternas

• Generar los hechos derivados

• Generar indicadores de tipo bandera.

Page 47: Semana 10 - ETL

PREGUNTAS