Академический Документы
Профессиональный Документы
Культура Документы
Indice
1.- Definir el mbito del proyecto de DW/ETL 2.- Crear una base de datos para el datawarehouse. 3.- Crear tablespaces/usuarios/objetos. 4.- Invocar a los procedimientos para la primera carga del dw. 5.- Invocar a los procedimientos para las cargas de refresco del dw. 6.- Crear objetos adicionales como vistas materializadas en el dw.
Para realizar un ejemplo sencillo, voy a trabajar con las siguientes especificaciones: Tanto la base de datos operacional (orcl) como el datawarehouse (dw), van a residir en la misma mquina virtual con Windows 2003 Server. La versin de rdbms que usamos es la 11.2.0.1.0 para Windows. Los datos que vamos a analizar, proceden de las tablas del esquema HR de la base de datos orcl. Se trata de simular un datawarehouse, con la evolucin de los salarios de los empleados, leyendo las tablas EMPLOYEES y DEPARTMENTS. Para poder leer los datos de orcl desde dw, trabajaremos con un dblink. En la base de datos dw, habr dos tablespaces: uno llamado ODS (operational data store), para guardar tablas intermedias o temporales y otro llamado DW, con las tablas de dimensiones/hechos definitivas. En la base de datos dw, crearemos un usuario llamado dw, propietario de las tablas del ODS y del DW.
Estos son los scripts que usaremos en este tutorial, para crear/cargar/refrescar objetos en el DW. Residen en la carpeta C:\DW.
4.- Invocar a los procedimientos para la primera carga del dw. Comenzamos la primera departments del esquema creando tablas de stage o tablas sern las fuentes EMPLOYEES_DIM. carga, leyendo las tablas employees y hr, a travs del database link lorcl, y temporales, en el tablespace ODS. Esas de datos de la tabla de dimensin
La segunda carga, consiste en rellenar los datos de la tabla de dimensin TIME_DIM, con datos procedentes del fichero YEARS.TXT. La carga se realiza con sql*loader. Veamos el contenido de los ficheros cargar_times_dim.ctl y years.txt:
La tercera carga, consiste en crear varias tablas temporales con los datos de EMPLOYEES, que ya estn en el tablespace ODS, y simular un crecimiento salarial para los aos 1998, 1999 y 2000. En el ao 1998 el salario es el original de la tabla EMPLOYEES, en el 1999 se incrementa el salario en 1.1 y en el 2000 se incrementa en 1.2. Finalmente, se insertan estos salarios en la tabla SALARY_FACT (particionada por la columna YEAR).
5.- Invocar a los procedimientos para las cargas de refresco del dw.
Primero vamos a proceder al refresco de la tabla de dimensin TIME_DIM, cargando un nuevo ao con sql*loader. Luego vamos a refrescar la tabla de dimensin EMPLOYEES_DIM con una tabla externa y una sentencia merge. Finalmente aadiremos nuevos datos en la tabla SALARY_FACT para los salarios de los empleados correspondientes al ao 2001, aadiendo la particin correspondiente.
Invoquemos al script desde el S.O y comprobemos despus los datos desde sql*plus.
El segundo refresco es de EMPLOYEES_DIM. Crearemos una tabla externa, con los datos de los cambios en la dimensin empleados. La actualizacin de la tabla EMPLOYEES_DIM la realizaremos con una sentencia MERGE que leer los datos de la tabla externa y los comparar con la tabla EMPLOYEES_DIM. Si ya existe el empleado, lo actualiza, si no existe, lo inserta.
Ahora procedemos a refrescar la tabla de dimensin EMPLOYEES_DIM, con una clusula merge, que actualice a los empleados 198 y 199 e inserte el 206.
Invoquemos al script:
Ejecutemos el script: