You are on page 1of 4

Las 10 cosas ms importantes para crear un

Data Warehouse
http://www.businessintelligence.info/definiciones/lo-mas-importante-paracrear-datawarehouse-dry.html

Si tuviera que dar una nica recomendacin para la construccin de un


data warehouse, o para la implantacin de un proyecto Business
Intelligence, sera sin duda el principio DRY de no repetirse.
Dont repeat yourself , o simplemente DRY, es un principio que
defi ende la necesidad de reducir o eliminar todo tipo de duplicidades.
Este principio, aplicado a la ingeniera del software, fue formulado por
Andrew Hunt y David Thomas en The Pragmatic Programmer (libro
imprescindible si te dedicas al mundo del desarrollo en cualquiera de sus
formas).
El principio DRY debe ser valorado en todas y cada una de las decisiones
que tomamos durante el ciclo de vida de un proyecto de software (y de
datawarehousing en particular). Hemos de evitar las duplicidades en la
extraccin de la informacin, en el tratamiento de estos datos, en el
modelo de datos, en la arquitectura de la solucin, en los patrones que
seguimos, en las herramientas de explotacin, en los informes que
realizamos y en la estructura de cada uno de ellos, en la documentacin
En todo. Cada vez que nos ponemos la gorra de programadores y hemos
de disear algo o tomar una decisin tcnica (o no), debemos
preguntarnos, Y qu opinara DRY de esto?
Por supuesto, y muy lamentablemente, a veces son inevitables las
duplicidades. De hecho, paradjicamente, un data warehouse es la
duplicacin de datos que ya tenamos en otro lugar. Tambin las
herramientas o los lenguajes de programacin (el SQL, por ejemplo) a
veces nos obligan a repetir cosas. Es muy triste y muchos gatitos muren
por ello, y a veces lo hacemos, pero no sin antes preguntarnos: De
verdad es imprescindible? Est justifi cada esta duplicidad que estoy a
punto de introducir? Las ventajas que nos aporta la duplicidad cubre los
importantes costes de mantenimiento que tiene toda reiteracin? No es
posible automatizarlo? Es posible realizarlo de otro modo? No hagas nada
sin pasarlo por el fi ltro DRY.
Lo contrario de DRY es WET (Write Everything Twice), y tiene unas
implicaciones nefastas: La ms leve de ellas es que se tarda el doble de
tiempo en escribirlo, y la ms grave es que tendrs la lgica de tu
aplicacin y procesos, y los datos de tu DW diseminados en distintos
lugares de tu arquitectura. Una implantacin WET tiene unos costes de
mantenimiento y una deuda tcnica muy elevados. Cuando se recurre al
cmodo Copiar y pegar , aunque pueda parecer que es fcil y rpido, se
est asumiendo una deuda (deuda tcnica) que repercutir en intereses
(sobrecoste) a lo largo de tooooda la vida del proyecto.

Como caso particular, analizar la arquitectura que propona en


el artculo anterior y veremos hasta qu punto los datos y procesos de
la arquitectura siguen el principio DRY:

Los datos, indudablemente, parece que los estamos repitiendo en


distintos sitios. Los datos que ya tenamos en los sistemas de origen los
duplicamos temporalmente en la staging, los volvemos a duplicar en un
modelo normalizado y fi nalmente los duplicamos en el modelo
dimensional que ser accedido por la capa de presentacin. S, es una
duplicacin dolorosa, y costosa como todas las duplicaciones (alguien
pensaba que construir un DWH es gratis?). Como toda duplicacin, debe
justifi carse, y en este caso se valora que los usos que se hacen en cada
una de las reas son distintos y claramente diferenciados:
E l d at a w a re ho us e , e n c o n t r ap o si ci n al si st e m a o p e r a c i o n a l
d e or i g e n , ti e n e u n e n f o q u e an al ti c o y c u b re u n os re q u e ri mi e n to s q u e
e l o p e r a c i o n a l n o a l c a n z a ( f a ci l i d a d d e u so , ti e mp o d e re sp u e s t a,
vi si n h i s t r i c a ) . E s d e c i r , a u n q u e l o s d at o s se an l os mi sm o s, e l D W
y e l o p e r a c i o n a l so n c o s a s d i st i n t a s.
E l r e a d e s t a g i n g e s u n a d u p l i ci d a d e vi d e n te . S on l o s mi s m os
d at o s q u e e l s i s te m a d e o ri g e n . E s n e c e s a ri o j u st i fi ca r l o : E s te m p o r al ,
e s f ci l d u p l i c ar l o , y e vi t a q u e l os p ro ce s os d e c a rg a d e l D W H ( q u e
p u e d e n l l e g a r a se r l a rg o s) a f e ct e n n e g a ti va me n t e al o p e ra c i o n a l .
E l m o d e l o n o r m a l i z ad o e s e l mo d e l o d e d a t o s D RY p or
exc e l e n ci a. E n u n m od e l o 3N F, c ad a d a to e s t u n a y s ol o u n a ve z . S i
h e mo s ac e p t ad o q u e n e ce si t am o s u n D W H , y q u e re m o s u n a n i c a

f u e n te d e l a ve rd ad , y so m o s b u e n os d i s c p u l o s d e D RY , h e m os d e
d e f e n d e r a c ap a y e sp ad a e l m od e l o n orma l i z ad o, c o n l a ay u d a d e
C od d .
E l m o d e l o d i m e n s i o na l e s u n m al n e c e s a r i o. E n e l e s t ad o
a c tu a l d e l a t c n i c a, y c on e l v ol u me n d e i n f o rm a c i n q u e g e st i o n a n
l as e mp re s a s, e l mo d e l o n orma l i z ad o n o c u b re l o s re q u e ri mi e n t os q u e
j u st i fi ca n l a exi st e n c i a d e l D W H ( f a ci l i d a d d e u so y ti e mp os d e
re sp u e s t a, f u n d am e n ta l m e n te ) . E n e l m e j o r d e l os mu n d o s p os i b l e s,
l as rb i t a s d e l o s p l a n e ta s se r an ci rc u n f e re n c i a s p e r f e ct a s, n o h a b r a
t e rre m o to s e n Li s b o a , y t od a s l a s c on su l t a s s e r an i n s ta n t n e as . E n e l
n u e st ro , n o , y p o r e so e s n e ce sa r i o h a ce r c a s o a Ki m b a l l y m an te n e r
u n mo d e l o d i me n s i o n a l . O tr a s c on si d e r a c i o n e s a yu d a n a j u st i fi c ar
e st a b e st p ra c ti c e : E l mo d e l o d i m e n s i o n a l s e r e l n i c o q u e s e r
a c c e d i d o p o r l a s h e rr am i e n ta s d e exp l ot a c i n . E n e ste se n ti d o , e s
m u y d i s ti n t o al mo d e l o n orm al i z a d o. Ad e m s, c re a r u n mo d e l o
d i me n si on al a p a rt i r d e u n m od e l o n orm al i z ad o e s u n a t a re a c a s i
t ri vi a l q u e s e j u s ti fi c a f ci l me n te .
E n l a arq u i te ct u r a p rop u e st a, l os cu b o s so n op ci on al e s . D e
e n tr a d a , p or D RY , e vi t a re m o s e st a d u p l i c i d ad . Pe ro n o s o mo s
d og m t i c o s e n e st e a sp e c t o, l os c u b os e st n m u y b i e n y mu ch a s
v e c e s c u m p l e n u n a f u n ci n . Lo n i c o q u e d i g o e s q u e d e b e
j u st i fi ca r s e c on ve n i e n t e me n t e su n e ce si d ad .
En los procesos de aprovisionamiento (ETL) , tambin es necesario
refl exionar si seguimos o no el principio DRY. En este caso, es fcil ver que
los tres procesos de carga propuestos son ortogonales y distintos.
Cumplen funciones distintas y siguen estrategias distintas. En esta ETL no
estamos duplicando nada:
E xt r a cc i n : Al ext r ae r l o s d at o s d e sd e l a f u e n te h a st a l a
s t ag i n g , e st am o s m ov i n d ol o s a u n a b a s e d e d a to s d i st i n ta , ta l v e z e n
o t ra t e c n o l o g a o e n ot r a u b i c a ci n f s i c a. E l n i c o p u n to q u e s e
a c c e d e a l a s f u e n te s e s aq u . S i s e re q u i e re c a mb i a r e l p ro c e s o o l a
e st r at e g i a d e ext ra c c i n , so l o se d e b e mo d i fi c a r e ste c d i g o. E s D RY.
Tr a n sf o r m a ci n : E l p ro ce s o d e sd e l a s t ag i n g a l mo d e l o
n orm al i z a d o e s p rob ab l e me n te e l m s co m p l e j o. E n e st e p u n to , y s o l o
e n e s te p u n t o , c o n f orm am o s l as d i m e n s i o n e s, i n t e g r a m os l as d i st i n ta s
f u e n t e s , l i m p i a m os o s e l e c c i o n am o s l os d a to s , g u ard am o s l a h i st or i a
d e l as S C D , e tc . E s mu y D RY.
C ar g a d e l mo d e l o d i me n si on al : E n e l p ro ce s o fi n al , c arg am o s l a s
t ab l a s q u e se r n a c c e d i d a s p or l a c a p a d e p re se n t a ci n . Pa r a
m i n i m i z a r e l t r ab aj o, y p a r a o p t i mi z a r e l re n d i m i e n t o, c a rg a mo s so l o
l a i n f orm a c i n q u e r az on ab l e m e n te n e ce si ta r e l u su ar i o. La s
e st r at e g i a s d e c a rg a q u e se g u i re mo s s e r n m u y d i s ti n t as a l as
a n t e r i o re s (n o n o s h e m os d e p re o cu p a r d e c re a r l a h i s to ri a d e l as
S C D , p od e mo s u s ar e s tr a te g i a s d e re c a rg a co m p l e ta s , n o h e m os d e
c o n t ro l a r l a c al i d a d d e l d at o d e o r i g e n , e t c. ) .
En este artculo he analizado la arquitectura tpica de un DWH desde la
ptica DRY. Pero es solo un ejemplo. El principio DRY debes considerarlo
en todo lo que hagas, y por eso me atrevo a decir que es la consideracin

ms importante a tener en cuenta durante la construccin de un data


warehouse.
Ah, me olvidaba, el declogo de las cosas ms importantes para crear un
Data Warehouse:

U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
U sa r s D RY
que se resume
principio WET .

en
en
en
en
en
en
en
en
en
en
en

e l an l i s i s
el diseo
l a E TL
l a i mp l an t a ci n
d at a q u a l i t y
l a exp l ot a c i n
e l ma n t e n i mi e n t o
l a d o cu me n t a ci n
l a au d i t or a
l a at e n ci n a u s u a ri os
dos uno: Seguirs el principio DRY, no seguirs el

You might also like