ETL incremental aplicado
Elaborado por: María del Pilar Villamil y Daniel Galindo Ruiz
Hola, a continuación veremos un ejemplo de un proceso ETL
incremental para que tengas una forma de visualizar cómo
funciona.
Esperamos que te guste.
PROCESO DE ETL
Extraer - Transformar - Cargar
Como parte del proceso ETL a realizar en este ejemplo, tenemos dos etapas: la primera en la que se trabaja con la
dimensión de clientes y la segunda donde trabajaremos en la tabla de hechos. Haz clic en el botón "+ info" en cada
una de las etapas para ver con mayor detalle lo que sucede en cada una.
1. INFO 2. INFO
Extraer clientes
Extraer Consultar Consultar
órdenes empleados Clientes
Transformar
clientes Transformar
órdenes
Cargar dimensión Cargar hecho
cliente orden
ETAPA 1: DIMENSION CLIENTE
Como parte de la etapa 1 del proceso ETL que estamos haciendo, trabajaremos con la dimensión Cliente, de la cual
contamos con un diagrama conceptual en la parte izquierda y una tabla de ejemplo en la parte derecha con un par
de registros iniciales y algunas de las columnas que se mencionan en el diagrama conceptual. En este ejemplo se
supone un manejo de historia tipo 2.
Dimension Cliente
idCliente idCliente idTransaccional nombre ingresos categoria fechaInicio fechaFIn actual
idTransaccional
nombre
11 52345845 Maria Castillo 5' Novato 13/05/2020 01/01/5000 S
email
ingresos
categoria 25 79388589 Juan Perez 3' VIP 10/03/2020 01/01/5000 S
fechaInicio
fechaFin
actual
Proceso para manejar historia tipo 2 dimensiones
Comienzo
Si 1. ¿Coincide la No
llave primaria?
Bandera="existente" Bandera="No existente"
Etiqueta=-1
Si 1.1 INSERT registroNuevo
2. ¿Cambió el No
(actual=S, fechaInicio = fecha de inserción
registro? fechaFin = 01/01/5000)
Bandera="cambió"
Etiqueta=1
Bandera="no cambió"
2. 1.1 UPDATE registroAnterior Etiqueta=0
(actual=N, fechaFin = fecha de expiración
2.2 No hay acción
2.1.2 INSERT registroNuevo
(actual=S, fechaInicio = fecha de inserción
fechaFin = 01/01/5000)
ETAPA 1: DIMENSION CLIENTE
Como parte del proceso ETL sobre esta dimensión, ocurren 3 casos típicos, mencionados a continuación:
1. Se modifica un cliente existente en la tabla.
2. Se agrega un nuevo cliente en la dimensión, lo que implica agregar una fila en la tabla de la dimensión.
3. No cambia un cliente previamente existente en la tabla.
A continuación, vamos a ver cada uno de los casos en la tabla previamente mostrada.
idCliente idTrans. nombre ingresos categoria fechaInicio fechaFin actual
11 52345845 Maria Castillo 5' Novato 13/05/2020 18/05/2022 N
25 79388589 Juan Perez 3' VIP 10/03/2020 01/01/5000 S
26 52345845 Maria Castillo 10' VIP 18/05/2022 01/01/5000 S
34 79844123 Felipe Giraldo 4.5' Novato 11/05/2022 01/01/5000 S
ETAPA 2: TABLA DE HECHOS
Tras haber transformado y cargado la tabla de dimensión de cliente, podemos pasar a trabajar sobre la tabla de
hechos, que en este caso son órdenes de productos. De igual manera, contamos con un diagrama conceptual de esta
tabla y una tabla de ejemplo con algunas filas. En el ejemplo haremos nuevas inserciones en dicha tabla que se
muestran en la siguiente diapositiva.
Fíjate que las dos filas que hay hacen referencia a órdenes de compra (tabla en color azul), de los dos clientes
iniciales que había en la dimensión de Cliente (tabla color morado), pues el idCliente coincide en ambas tablas.
idCliente idTransaccional nombre ingresos categoria fechaInicio fechaFIn actual
FactOrden
11 52345845 Maria Castillo 5' Novato 13/05/2020 01/01/5000 S
idCliente
idFecha
idEmpleado 25 79388589 Juan Perez 3' VIP 10/03/2020 01/01/5000 S
ciudad
cantidadItems
valorVenta
idCliente idFecha idEmpleado ciudad cantidadItems valorVenta
11 20200715 5 Bogotá 3 3'
25 20210823 21 Cali 12 15'
ETAPA 2: TABLA DE HECHOS
Ahora veremos cómo afecta el cambio en la dimensión de clientes a la tabla de hechos. Recordemos que los datos de
Maria Castillo (Antes con id 11, ahora con id 26) cambiaron, pero en la tabla de hechos no cambia nada. Felipe
Giraldo (con id 34) se agregó a la tabla de clientes y también realizó una orden de compra. Veamos esos cambios
reflejados en la tabla de hechos (tabla morada).
NumCliente Fecha NumEmpleado ciudad cantidadItems valorVenta
52345845 2021-05-20 400 Medellín 4 4' Archivo transaccional de
órdenes de compra
79844123 2022-05-22 500 Bogotá 5 3'
idCliente idFecha idEmpleado ciudad cantidadItems valorVenta Maria Castillo realizó una compra
nueva y aparece con su nuevo id
11 20200715 5 Bogotá 3 3' (26)
25 20210823 21 Cali 12 15'
Felipe Giraldo es un nuevo cliente
26 20210520 4 Medellín 4 4' y esta fue su orden de compra
34 20220522 5 Bogotá 5 3'