Está en la página 1de 6

Data warehouse y data mining

Ingeniería en Sistemas Computacionales Laboratorio 06 Staging

INTRODUCCIÓN

El Proceso de staging de datos es el iceberg del proyecto de un Data Warehouse. Existen


muchos retos que están enterrados en las fuentes de datos y en los sistemas que corren en esas partes
del proceso y que invariablemente toman mas tiempo del que se espera. En este laboratorio gira sobre
un plan de 10 pasos generales para crear una aplicación de staging de datos.
Una vez que se termina el “mantra primario” de “enfocarse en los requerimientos del negocio”
viene el segundo aforismo favorito: “Hacer un plan”. Es raro ver un proceso de staging de datos que es
planeado de una manera documentada y concreta. Esto es entendible para mucho del trabajo que ha
sido planeado y diseñado; ahora todo mundo esta ansioso de ver algunos datos reales.
El diseño del staging de datos es típicamente la tarea mas subestimada del proyecto del data
warehouse. El proceso de staging de datos tiene tres partes principales:
• Proceso de Extracción: siempre expone puntos de la calidad de los datos que han sido
enterrados dentro de los sistemas operacionales fuente.
• Transformación: Ya que la calidad de los datos impacta significativamente la credibilidad del
data warehouse, se necesita dirigir estos problemas de calidad durante el staging de datos.
• Carga: para complicar mas esto, se necesita diseñar y construir dos procesos de staging – uno
para poblar inicialmente el data warehouse y otro para cargas incrementales regulares.
Sin embargo, se necesita un plan. Como cualquier otro, si no se tiene un plan, no se puede
explicar a otros a donde se va o como se espera llegar allá.

PASOS

PLAN:
1. Crear un esquema de muy alto nivel de una página del flujo fuente – a – objetivo.
a. Comience el proceso del diseño con un esquema muy simple, resalte de donde vienen
los datos
b. Anote los cambios mayores y los retos que ya conozca.
c. Las aplicaciones de data staging realizan tres pasos principales: extraen datos de la
fuente, los trasforman y los cargan al data warehouse.
2. Probar, seleccionar e implementar una herramienta de staging de datos.
a. Las extracciones son escritas típicamente en el código del sistema fuente (ej. COBOL,
PL/SQL, etc) ya que esto es lo que el ambiente fuente debe soportar.
b. Existen herramientas de staging de datos que pueden realizar estas tareas.
3. Gráficamente dibujar cualquier reestructuración de datos compleja o transformaciones.
a. Detalle cada uno de los flujos (drill down).
b. Comience planeado con que tablas trabajar, en que orden, y la secuencia de la
transformación dentro de cada conjunto de datos.
c. Organizar el área de staging de datos. El área del staging de datos es la “mesa de
trabajo” del data warehouse. Es el lugar donde los datos planos son cargados,
limpiados, combinados, archivados y rápidamente exportados a una o mas plataformas
de presentación.
d. Gráficamente ilustrar el proceso de generación de llaves sustitutas “surrogate-key”.
Desarrollar un trabajo preliminar de secuenciamiento.

CARGA DE DIMENSIONES.
4. Construir y probar una carga de tabla de dimensión estática. El objetivo primario de este paso
es resolver los obstáculos de infraestructura, incluyendo la conectividad, transferencia de
archivos y problemas de seguridad.
a. Es un proceso generalmente sencillo. La fuente primaria es generalmente una tabla de
búsquedas.

Francisco J. Carrillo Z. 1 Versión 2.0


Sep 2008
Data warehouse y data mining
Ingeniería en Sistemas Computacionales Laboratorio 06 Staging

b. Una vez que los datos están apropiadamente preparados, el proceso es bastante
sencillo
c. El “cargador de volúmenes” es una utilería construida para obtener datos en la base de
datos tan rápido como sea posible.
d. Algunas sugerencias primarias para utilizar estas utilerías son:
i. Apague el “logging”. Las bases de datos orientadas a transacciones registran
todos los cambios en un archivo de tipo log. Los logs añaden carga significativa
y no es muy valioso cuando se cargan datos ala data warehouse.
ii. Pre-ordena los archivos. Ordenar los archivos en el índice primario acelera el
proceso de indexación significativamente.
iii. Transforme con precaución. En algunos casos, el cargador permite hacer
conversiones de datos, cálculos, manipulación de fechas y cadenas, etc.
iv. Agregados. Si el cargador de datos soporta la creación de agregados como
parte del proceso de carga, definitivamente es un ventaja. Esto acelera el
proceso.
v. Escribe queries que extraigan desde las tablas del staging.
e. Manejo de índices (ver laboratorio 3).
i. Elimina y reindexa. Hágalo si se esta cargando una porción significativa de una
tabla a la vez. Tómelo como regla, si se esta añadiendo mas de 10 al 15% del
total de renglones, es mejor eliminar los índices y reconstruirlos, especialmente
si se soportan índices particionados.
5. Construir y probar el proceso de cambio lento para una dimensión.
a. La aplicación del staging de datos debe contener las reglas del negocio para determinar
como manejar un atributo que ha cambiado de valor y ya ha sido almacenado en data
warehouse
i. Tipo 1. Sobrescribir. Por ejemplo recibimos una corrección de dirección de un
cliente.
ii. Tipo 2. Crear un nuevo registro de dimensión. Se utiliza en cambios ocasionales
en un registro de dimensión, mas que una corrección.
iii. “Echar hacia atrás” el valor cambiado en un campo de atributo “obsoleto”. Hay
oportunidad de hacer referencia al valor obsoleto al actual.
6. Construir y probar la carga de dimensiones restantes. Seguir los pasos lógicos “bosquejados”
del punto anterior.

TABLAS DE HECHOS Y AUTOMATIZACIÓN.


7. Construir y probar las cargas de tablas de hechos históricas. A medida que se van identificando
registros que caen dentro de los parámetros básicos de la extracción, se debe asegurar que
estos registros son útiles para el data warehouse. Determinar y validar estas reglas es a veces
nada placentero. Es una buena idea acumular estadísticas de auditoria durante este paso. Este
paso es primordial para Data Mining.
8. Construir y probar los procesos de carga incrementales. Muchas tablas de hechos llegan a ser
tan grandes que simplemente no pueden ser cargadas de una sola vez. Una de las técnicas
más comunes para reducir la longitud del proceso de staging es cargar solo datos que son
nuevos o que han cambiado.
9. Construir y probar la carga de tablas de agregados y/o cargas MOLAP. Una tabla de agregados
es lógicamente fácil de construir (tablas materializadas, ver laboratorio 4). Frecuentemente la
agregación esta hecha sobre el tiempo, a un nivel semanal o mensual. Existen dos casos
generales:
a. Las tablas de agregados no incluyen el mes mas reciente hasta que este ha terminado.
En este caso, definir un proceso mensual que recalcule el mes mas reciente de la table
de hechos cuando el los datos completos están dentro.
b. La tabla de agregados conserva el mes actual como “ mes a la fecha”. En este caso,
define un proceso nocturno que actualiza los renglones existentes en el agregado para
este mes.

Francisco J. Carrillo Z. 2 Versión 2.0


Sep 2008
Data warehouse y data mining
Ingeniería en Sistemas Computacionales Laboratorio 06 Staging

10. Diseñar, construir y probar la automatización de las aplicaciones del staging. Una buena
herramienta de staging de datos deberá poder ejecutar las siguientes funciones de forma
automática y semiautomática:
a. Definición del job – flujos y dependencias
b. Calendarizar del job – basado en tiempo y eventos.
c. Monitoreo
d. Logging
e. Manejo de excepciones
f. Manejo de errores
g. Notificación.

EXTRACCIÓN DE METADATOS.

Una vez que el paso de extracción se ha completado, el proceso necesita registrar varias piezas
de metadatos. Estos puntos caen en las categorías de administración o medida del proceso.

1. Administración del proceso. Para conservar el proceso en movimiento, el paso de extracción


necesita notificar el siguiente proceso a iniciar. El siguiente paso podría ser o el proceso de
transformación asociada u otro proceso de extracción que es dependiente de la terminación del
proceso actual. Varias maneras creativas de llevar a cabo esto son, todas envolviendo algún
tipo de proceso de monitoreo:
a. Existencia de archivos. En este caso, el proceso de extracción no necesita hacer algo
extra. Simplemente moviendo el archivo a un directorio apropiado es suficiente para
proseguir el proceso. Un monitor de staging de datos periódicamente revisa el directorio
donde el conjunto de resultados extraídos es depositado. Una vez que el archivo
aparece, el monitor arranca el proceso de transformación.
b. Definir banderas. En este caso, el proceso de extracción establece una bandera (o
graba un registro) en el catalogo de metadatos que indica el término de la extracción. El
proceso de staging de datos periódicamente revisa la tabla para un registro o revisa el
valor de la bandera. Cuando es correcto se inicia el proceso de transformación.
c. Built-in. Si se esta utilizando una herramienta de datos, el proceso de administración
deberá estar integrado al producto.
2. Medida del proceso. El paso de extracción también escribe metadatos en la extracción misma.
Una simple versión grabará el nombre del job, batch ID, userid, hora de inicio, hora de
terminación, tiempo transcurrido, contador de renglones, indicador de éxito y si esta disponible
tiempo de CPU, lecturas a disco, escrituras a disco, etc. Esta transformación puede registrase
en una dimensión de auditoria unida a la tabla de hechos.

CUESTIONARIO

1. Defina que es el área de staging de datos?


2. Cuales son las tres partes principales para el área de staging, explique brevemente?
3. Mencione los diez pasos mencionados en este laboratorio para llevar a cabo el área de
staging.
4. En el paso 4 se construye y prueba una carga de una dimensión estática, ¡Que se sugiere
hacer a los datos antes de utilizar una herramienta de carga?
5. Explique el concepto elimina y reindexa.
6. Mencione los tres tipos de situaciones al manejar un atributo que ha cambiado de valor y ya
esta almacenado en data warehouse.
7. Que son los procesos de carga incrementales.

Francisco J. Carrillo Z. 3 Versión 2.0


Sep 2008
Data warehouse y data mining
Ingeniería en Sistemas Computacionales Laboratorio 06 Staging

8. Cuales son los dos tipos de tablas de agregados que se puede topar?
9. Que funciones deberá realizar el staging para funcionar automáticamente?
10. Explique la categoría de administración en la extracción de metadatos?

LABORATORIO

1. Crear la tabla de dimensión region_dw de acuerdo al análisis dimensional.


2. Transferir los datos de acuerdo al esquema de datos del staging básico, es decir transferir los
datos de la tabla OLTP region a la tabla del data mart region_dw:
a. insert into region_dw (region, regdescripcion) select region, regdescripcion from region;
3. Verificar la transferencia con un query.
4. Crear la tabla de dimensión agentes_dw de acuerdo al análisis dimensional.
5. Transferir los datos de acuerdo al esquema de datos del staging básico, es decir transferir los
datos de la tabla OLTP agentes a la tabla del data mart agentes_dw:
a. insert into agentes_dw (agenumero, agenombre) select agenumero, agenombre from
agentes;
6. Verificar la transferencia con un query.
7. Crear la tabla de hechos ventas_dw de acuerdo al análisis dimensional, con particiones de lista
basadas en las regiones:
a. create table VENTAS_DW
(REGION NUMBER(2) NOT NULL,
AGENUMERO NUMBER(2) NOT NULL,
FACNUMERO NUMBER(6) NOT NULL,
FACFECHA DATE NOT NULL,
FACSUBTOTAL NUMBER(9) NOT NULL,
FACDESC NUMBER(9) NOT NULL,
FACSNENTREGA VARCHAR2(1) NOT NULL,
FOREIGN KEY(REGION)
REFERENCES REGION_DW(REGION),
FOREIGN KEY(AGENUMERO)
REFERENCES AGENTES_DW(AGENUMERO))
partition by list (REGION) (
partition NORTE VALUES (1),
partition BAJIO VALUES (2),
partition CENTRO VALUES (3),
partition SURESTE VALUES (4),
partition PENINSULA VALUES (5),
partition PACIFICO VALUES (6),
partition GOLFO VALUES (7)
);

8. Transferir los datos de acuerdo al esquema de datos del staging básico, es decir transferir los
datos de las tablas OLTP agentes y factura a la tabla del data mart ventas_dw:
a. insert into ventas_dw
(region, agenumero, facnumero, facfecha,facsubtotal, facdesc, facsnentrega)
select a.region, a.agenumero,
b.facnumero, b.facfecha, b.facsubtotal, b.facdesc, b.facsnentrega

Francisco J. Carrillo Z. 4 Versión 2.0


Sep 2008
Data warehouse y data mining
Ingeniería en Sistemas Computacionales Laboratorio 06 Staging

from agentes a, facturas b


where a.agenumero=b.agenumero;

9. Verificar la transferencia con un query.


10. Crear las vistas materializadas de las ventas de los años 2000, 2001, 2002, 2003, 2004, 2005,
2006 para acumulados de agentes de acuerdo al siguiente ejemplo:
a. create materialized view vmventas2000
build immediate
refresh complete
on commit
enable query rewrite
as
select region, to_char(facfecha,'mm') as mes, agenumero,
sum(facsubtotal) as acumulado
from ventas_dw
where facfecha between to_date('01-01-2000','dd-mm-yyyy')
and to_date('31-12-2000','dd-mm-yyyy')
group by region, to_char(facfecha,'mm'),agenumero;

11. Crear las vistas materializadas de las ventas de los años 2000, 2001, 2002, 2003, 2004, 2005,
2006 para acumulados por región y mes de acuerdo al siguiente ejemplo:

a. create materialized view vmventas2000b


build immediate
refresh complete
on demand
enable query rewrite
as
select region, mes, sum(acumulado) as totalmes
from vmventas2000 group by region, mes;

12. Probar las vistas materializadas con el siguiente formato de queries para el mes con mayor
facturación:
a. select mes, totalmes
from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=1);
b. select mes, totalmes
from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=2);

c. select mes, totalmes


from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=3);
:
:
:
d. select mes, totalmes
from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=7);

13. Probar las vistas materializadas con el siguiente formato de queries para el agente con mas
ventas en el mes con mayor facturación:

Francisco J. Carrillo Z. 5 Versión 2.0


Sep 2008
Data warehouse y data mining
Ingeniería en Sistemas Computacionales Laboratorio 06 Staging

a. select acumulado, agenumero


from vmventas2000
where mes=(select mes from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=1))
and acumulado = (select max(acumulado) from vmventas2000 where region=1);
b. select acumulado, agenumero
from vmventas2000
where mes=(select mes from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=2))
and acumulado = (select max(acumulado) from vmventas2000 where region=2);
:
:
:
c. select acumulado, agenumero
from vmventas2000
where mes=(select mes from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=7))
and acumulado = (select max(acumulado) from vmventas2000 where region=7);

14. Crear índice de tipo bitmap en la columna de facsnentrega:

a. create bitmap index indice_snentrega


on ventas_dw(facsnentrega)
local
(partition NORTE,
partition BAJIO,
partition CENTRO,
partition SURESTE,
partition PENINSULA,
partition PACIFICO,
partition GOLFO)

15. Probar con un query los retrasos por región y por mes de mayor facturación de acuerdo al
siguiente query:
a. select count(*) from ventas_dw
where facsnentrega='s' and region=1
and to_char(facfecha,'mm')=(select mes from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=1))
and to_char(facfecha,'yy')='00';

b. select count(*) from ventas_dw


where facsnentrega='s' and region=2
and to_char(facfecha,'mm')=(select mes from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=2))
and to_char(facfecha,'yy')='00';
:
:
:
c. select count(*) from ventas_dw
where facsnentrega='s' and region=7
and to_char(facfecha,'mm')=(select mes from vmventas2000b
where totalmes=(select max(totalmes) from vmventas2000b where region=12))
and to_char(facfecha,'yy')='00';

Francisco J. Carrillo Z. 6 Versión 2.0


Sep 2008