Por Edgar
Barrios
Continuando
con el ejemplo de implementación de un DWH, ahora vamos entrar en detalle con
los objetos que se deben crear en la base de datos que contendrá el DWH. Para
un mejor entendimiento de lo expuesto en este artículo, se recomienda ver
primero el artículo Fuentes de datos y
área de staging en un Data Warehouse (DWH).
Lo
primero es identificar el tipo de modelo a implementar, de los cuales tenemos
el modelo estrella y el modelo copo de nieve, para entender un poco de
que se trata a continuación se presenta una breve definición y las diferencias
existentes entre ellos:
•
Estrella: Desnormaliza las dimensiones.
•
Copo de nieve: Normaliza las
dimensiones.
Tabla Comparativa Modelo Estrella Vs Modelo Copo de
Nieve
Dadas
las razones expuestas en la tabla anterior, lo más recomendable es siempre usar
el modelo estrella. Sin embargo,
dependiendo de las necesidades el usuario puede usar el que desee.
Para
nuestro ejemplo el modelo a utilizar es el modelo estrella, el cual se puede
observar en la siguiente imagen:
A
continuación se muestran las tablas que se deben crear:
Dim_Sales_Rep: en esta tabla se encuentra la data de los vendedores, y prácticamente es la misma información que tenemos en el Staging en la tabla STA_Sales_Rep, con la excepción del campo surrogate key (SK), que no es más que una clave numérica que se usará en esta tabla como el primary key.
Dim_Customer: en
esta tabla se encuentra la data de los clientes, y es exactamente la misma data
de la tabla STA_Customer con la excepción de que esta tabla tendrá el surrogate
key como PK.
Dim_Date:
en esta tabla se encuentra exactamente la misma data que en la tabla
STA_Date del Staging.
Dim_Product:
en esta tabla se encuentra la misma data que se encuentra en la tabla
STA_Product, pero aquí existirá el campo surrogate key.
Fact_Sales:
esta será la tabla de la fact, Aquí estarán los SKs de las tablas de
dimensión, excepto la tabla Dim_Date que en su lugar tendrá un campo con la
clave de la tabla Dim_Date y los campos de las medidas, que en este caso serán:
las cantidades vendidas y el monto de la venta
Se
deben crear las claves primarias para las tablas de dimensión y definir índices
tanto para las tablas de dimensión como para las tablas fact.
Ya pudimos ver cuáles
son las áreas involucradas en un DWH, ahora vamos ver a manera de resumen los
pasos a seguir para ejecutar el proceso de Extracción, Transformación y Carga (ETL por sus siglas en inglés) del DWH:
• Crear las tablas en el área de Staging (planas y de dimensión) y en el DWH con sus respectivas primary keys. La tabla de la Fact en el DWH debe ser particionada. Generalmente dicho particionado se hace por el año.
•
Crear los índices que puedan ser necesarios.
•
Crear en la herramienta para desarrollar el ETL los
procesos para cargar las tablas planas
desde la fuente hasta el
Staging. Es importante que a estas tablas se les haga un TRUNCATE antes de insertar la información que viene de la fuente.
•
Es importante solo traerse las columnas y filas
necesarias.
•
Llenar en el ETL las tablas de las dimensiones en el
Staging. En caso que alguno de los queries para el
llenado de las dimensiones sea muy lento, crear los índices necesarios para
optimizarlos. Es importante recordar que en estas tablas NO deben estar los
surrogates keys.
•
Llenar la tabla STA_Date, construyendo para esto o
bien un Store Procedure o un desarrollo en el ETL que se encargue de llenar
dicha tabla.
•
Llenar las dimensiones en el DWH con un proceso del
ETL usando como fuente las dimensiones ya calculadas en el Staging. Estas tablas son casi iguales a las que están
en el Staging con la excepción del
surrogate key, que debe ser el primary key de las dimensiones.
•
Desarrollar los procesos para cargar las medidas en la
fact en el ETL. En caso de que alguno de
los queries creados para llenar las medidas de la fact sea muy lento, crear los
índices necesarios para optimizarlos.
•
Crear un proceso automático que ejecute los procesos
del ETL en el orden mencionado con la frecuencia requerida de carga (diario,
mensual, etc).
No hay comentarios:
Publicar un comentario