Documente Academic
Documente Profesional
Documente Cultură
NDICE
1
2.1.1
2.1.2
2.1.3
2.1.4
2.2
PROCESO DE TRANSFORMACIN.................................................................................. 5
2.2.1
2.2.2
2.2.3
La transformacin: un proceso vital para los anlisis y comparaciones
posteriores. ........................................................................................................................... 6
2.3
2.3.1
2.3.2
2.4
2.4.1
2.4.2
El perfilado de datos.............................................................................................. 9
STAGING. ..................................................................................................................... 10
3.1.1
3.1.2
4.2
6.1
6.2
7.2
Los procesos ETL son un trmino estndar que se utiliza para referirse al movimiento y
transformacin de datos. Se trata del proceso que permite a las organizaciones mover datos
desde mltiples fuentes, reformatearlos y cargarlos en otra base de datos (denominada data
mart o data warehouse) con el objeto de analizarlos. Tambin pueden ser enviados a otro
sistema operacional para apoyar un proceso de negocio.
En definitiva, el principal objetivo de este proceso es facilitar el movimiento de los datos y la
transformacin de los mismos, integrando los distintos sistemas y fuentes en la organizacin
moderna.
El trmino ETL corresponde a las siglas en ingls de:
Extract: extraer.
Transform: transformar.
Load: cargar.
A estas tres partes habra que aadir la etapa de limpieza que, como hemos comentado,
actualmente se entiende como una parte separada del propio proceso.
A continuacin, vamos a explicar los principales aspectos del funcionamiento de cada una de
las fases, as como sus claves y cuestiones a considerar en su planteamiento e implantacin
La primera parte del proceso ETL consiste en extraer los datos desde el sistema de origen. Esta
fase consta de tres pasos:
1. Anlisis previo de las necesidades. Normalmente, hay una primera etapa de anlisis
donde se evalan las necesidades concretas de la organizacin en cuanto a
movimiento y transformacin de datos. Por lo general, no se comienza extrayendo
toda la informacin, sino que se empieza con el tratamiento de unos datos concretos
segn una necesidad puntual y luego se realizan ampliaciones a medida que se van
necesitando.
2. Identificacin de fuentes. Antes de extraer los datos, se identifica de qu tipo son y en
qu formato se encuentran los sistemas fuente. Por ejemplo, si se trata de bases de
datos relacionales o no relacionales, archivos planos, archivos complejos, archivos
VSAM, WebServices, MainFrame, archivos en Excel, etc. Lo habitual es que los datos
de los sistemas de origen provengan de formatos distintos, que tendrn que ser
fusionados.
3. Extraccin de los datos. En funcin de las necesidades detectadas, se procede a la
extraccin en s de dichos datos.
2.1.2
Modos de Extraccin.
Estos tres tipos de extraccin son manejados por un mdulo denominado Change Data
Capture (CDC).
2.1.3
2.1.4
Cualquier organizacin, empresa o compaa debe exigir que el proceso de extraccin de datos
desde su fuente o fuentes de origen cause el menor impacto posible. Es decir, que no suponga
ningn retraso a los empleados que, diariamente, trabajan con los datos y registros.
Una extraccin de un nmero demasiado grande de datos de una sola vez puede llegar a
ralentizar, e incluso colapsar, el sistema. Por este motivo, es importante valorar muy bien las
necesidades y el alcance de la operacin a realizar y, si es necesario, llevar a cabo la operacin
de forma escalonada en bloques de menor tamao y/o en las fechas y horas ms adecuadas
para lograr ese mnimo impacto.
2.2.1
Declarativas.
Independientes.
Claras.
Inteligibles.
Con una finalidad til para el negocio.
Por qu es necesario un proceso de transformacin?
2.2.2
Acciones de transformacin.
2.2.3
Reformateo de datos.
Conversin de unidades. Por ejemplo, convertir millas en kilmetros por hora o
viceversa. Algo muy habitual cuando se extraen datos de pases con unidades mtricas
distintas. Otro caso sera la conversin de diferentes monedas (libras, euros...) en un
nico valor estndar.
Seleccin de columnas para su carga posterior. Por ejemplo, hacer que las columnas
con valores nulos no se carguen.
Agregacin de columnas. Aadir una columna con la procedencia de determinados
automviles sera un ejemplo.
Dividir una columna en varias. Esta accin resulta de gran utilidad para, por ejemplo,
separar en tres columnas, una para el nombre y otras dos para los apellidos, la
identificacin de una persona que antes estaba en un solo campo.
Traducir cdigos. Por ejemplo, si la fuente de origen almacena una H para hombres
y una M para mujeres, dar las instrucciones necesarias para que en destino se
guarde un 1 para hombres y un 2 para mujeres.
Obtener nuevos valores calculados.
Unir datos de varias fuentes.
Lookups. Cuando se toma un dato y se lo compara con otro tipo de datos, cruzando
informacin. Por ejemplo, capturar un cdigo de cliente de una base de datos y
cruzarlo con otra base de crditos concedidos para saber si dicho cliente disfruta o no
de ese prstamo.
Pivoting. Proceso parecido al lookups pero con un grado mayor de complejidad, ya que
se cruzan datos de distintas fuentes.
La transformacin: un proceso vital para los anlisis y comparaciones posteriores.
La transformacin de los datos, tras la extraccin de los mismos y como paso previo a su carga,
no puede considerarse una fase secundaria ni prescindible. Sin un buen trabajo de
transformacin de datos no sera posible realizar comparaciones y anlisis. Dicho de otro
modo, se renunciara a uno de los grandes beneficios para las organizaciones al implementar
un proceso ETL.
Esta funcin corresponde al desarrollador o analista del proceso ETL en cuestin. La definicin
de las transformaciones a realizar se realiza en funcin de un anlisis previo y de la fase de
limpieza que, como ya hemos sealado y profundizaremos ms adelante, se trata de un
proceso separado pero estrechamente ligado al de transformacin.
2.3.1.1
Load. Todas las bases de datos modernas soportan este modo de insercin de
registros. Consiste en el transporte de la informacin en grande bloques de datos,
previamente calculados en funcin de su naturaleza. Se trata de la forma ms sencilla
y comn de llevar a cabo un proceso de carga masiva de datos sin impactar el / los
sistemas fuentes, pero tiene el inconveniente de que ante un accidente o problema
(un corte de luz, un fallo del disco, etc.) se pierde la consistencia de los datos,
pudindose darse el caso de tenerse que repetir toda la carga.
Insert. En este caso, la carga se realiza de forma ms escalonada y segura. Para ello, el
sistema agrupa la informacin de forma automtica y transparente segn distintas
variables: fechas, por un nmero determinado de registros, etc. Esta modalidad
permite procesar el punto exacto hasta el que se ha realizado la carga, lo que supone
que si se produce un fallo solo hay que retomar el proceso de carga desde ese punto
concreto, sin necesidad de repetirlo todo de nuevo.
Principales diferencias entre inserts y loads.
Las diferencias entre los dos principales modalidades de carga (aunque no las nicas puesto
que existen tambin sistemas mixtos) se encuentran en el nivel de consistencia de los datos y
en el tiempo de carga.
Cuando se utiliza la modalidad load el nivel de consistencia se reduce, puesto que una falla
puede obligar a una repeticin ntegra del proceso. Sin embargo, la duracin del tiempo de
carga es menor.
Si se usa insert ralentiza el proceso como consecuencia de los procesamientos automticos del
estado de la carga y principalmente de los logs generados en la base de datos, pero en
contrapartida se gana en consistencia de los datos y registros.
2.3.2
La eleccin del tipo de proceso de carga, cuya decisin final normalmente corresponde al
dueo del proceso ETL, debe tomarse tras valorar una serie de parmetros: cantidad de datos
a cargar, velocidad que realmente se precisa, etc.
La recomendacin general es que si el volumen de datos a cargar es importante, utilizar load
previendo que si ocurre una falla, todo el proceso de carga deber repetirse. Si el volumen no
es tan grande, entonces un insert tal vez sea lo ms conveniente. Esta eleccin debe ser
consensuada con el administrador de la base de datos.
Las claves para asegurarnos de que la carga se realiza de forma correcta son:
2.4.1
2.4.2
El perfilado de datos.
Aunque todava no se considera como una etapa independiente del proceso de limpieza, es
altamente recomendable realizar previamente un perfilado de datos donde se decide, a travs
de un muestreo, qu cambios realizar y de qu forma concreta hacerlos. De esta manera,
garantizamos una limpieza posterior ptima y completamente estandarizada.
Conviene remarcar que en el perfilado an no se realizan modificaciones, puesto que se trata
de un anlisis previo.
Al igual que ocurre con cualquier otra aplicacin, un proceso ETL puede fallar. El problema es
que, muchas veces, estos fallos o errores no se detectan inmediatamente durante el proceso
de carga (que normalmente se realiza fuera de horarios laborales, por ejemplo de madrugada),
sino a la maana siguiente, cuando los empleados de la oficina comienzan su rutina laboral
diaria.
Tambin es muy importante asegurarse de que en el momento en que empiece la jornada
laboral el proceso, que ha podido comenzar durante la noche anterior, est ya listo, con el
propsito de que no interfiera para nada, o lo menos posible, con la actividad normal.
Hay que tener en cuenta que algunos procesos ETL son de una gran complejidad, llegndose a
mover varios millones de datos, lo que favorece la posible aparicin de algn contratiempo.
Algunos de los errores o fallos ms comunes son:
Diseando procesos de ETL que, en caso de que ocurra algn fallo, sean recuperables.
Garantizando un diseo del proceso ETL que, de forma expresa, minimice los fallos y
optimice la recuperacin en caso de que finalmente se produzca algn error.
A veces los errores son inevitables, pero siempre se pueden amortiguar como ya hemos visto
que los fallos no siempre pueden evitarse, puesto que muchas veces son producto de
circunstancias que no estn en nuestra mano, como un corte inesperado del fluido elctrico.
No obstante, siempre es posible tomar medidas que minimicen estos fallos y permitan la
recuperacin total de los datos.
3.1 STAGING.
Con el objeto de minimizar al mximo nivel los posibles errores o problemas en el proceso de
carga, normalmente se reserva un rea de disco para poder recuperar los datos por etapas.
Por eso podemos afirmar que el staging est estrechamente relacionado tanto con el
gerenciamiento como con la recuperacin de datos.
Funcionamiento del staging:
1. En primer lugar, los datos son volcados por bloques o etapas y de forma independiente
en un rea del disco denominada staging area.
2. Posteriormente, se cargan los datos desde la staging area a su lugar o sistema de
destino (data warehousing).
Si bien tiene un costo adicional de recurso y tiempo total de duracin del proceso ETL, el rea
de staging es fundamental y ampliamente utilizada para permitir un ptimo gerenciamiento
de los procesos ETL.
3.1.1
3.1.2
10
11
Llega un momento en que las organizaciones, especialmente las grandes utilizan, muchos
sistemas y se nutren de una gran variedad de fuentes de datos, los cuales funcionan en forma
de retroalimentacin mutua.
Cuando los sistemas y/o fuentes de datos que operan en una misma organizacin y compaa
superan un nmero manejable y se empiezan a volver ms complejos, esta heterogeneidad les
empieza a acarrear un considerable problema. Y esto ocurre a menudo en compaas de un
cierto tamao.
Llegados a este punto, muchas empresas empiezan a utilizar los procesos ETL con un objetivo
distinto que el gerenciamiento o la optimizacin de datos. En estos casos, la utilidad de la ETL
se diversifica hacia la integracin y la migracin de los datos.
Ms usos de los procesos ETL:
Integracin de datos. Como hemos visto, los procesos ETL tienen la capacidad de leer
y escribir en cualquier fuente o sistema. Por ello, no son pocas las empresas que
recurren a este tipo de procesos para integrar datos de diversos sistemas o fuentes,
muchos de ellos muy antiguos e incompatibles entre ellos. Si no existiera la posibilidad
de utilizar los sistemas ETL como integradores de datos, no cabra otra opcin de
realizar esta tarea de forma manual y con multitud de errores. Aspectos tan
importantes y decisivos para un buen resultado a nivel de sistema como la calidad o el
perfil del dato, se han incorporado a la definicin de ETL y por eso hoy da en ella se
encuentran incluidos todos los siguientes puntos:
o Servicios de acceso a datos.
o Data profiling.
o Data quality.
o Procesado de datos operacionales.
o Servicios de transformacin: CDC, SCD, Validacin, Agregacin.
o Acceso en tiempo real.
o ETL
o Transporte de datos.
o Gestin de metadatos.
o Servicios de entrega.
12
Tareas de Bases de datos: que tambin se utilizan para consolidar, migrar y sincronizar
bases de datos operativas.
Migracin de datos entre diferentes aplicaciones por cambios de versin o cambio de
aplicativos.
Sincronizacin entre diferentes sistemas operacionales (por ejemplo, entre nuestro
entorno ERP y la web de ventas).
13
ETL O ELT?.
Entendemos ETL como el proceso extraccin, transformacin y carga de los datos, que es parte
del ciclo de vida de una implementacin de Business Intelligence. Partiendo de esta premisa,
nos damos cuenta que existen ciertas variaciones conceptuales relativas al mismo proceso de
ETL, de las que depender el rendimiento de los procesos de manejo de los datos. Por ello es
necesario considerar las tecnologas aplicadas en cada parte del proceso, de principio a fin.
A modo de resumen, podra decirse que un proceso cualquiera dara comienzo en el origen de
los datos (Base de datos, archivos de texto, etc.), continuara con la intervencin de la
herramienta de ETL, para concluir en el destino de los Datos (Base de datos) que se disponga.
La herramienta de ETL permitira:
14
Cada herramienta nos provee de unas ventajas diferentes. Algunas nos dan mayor facilidad
para desarrollar una transformacin, aunque no el mejor rendimiento; mientras que en
ocasiones sucede al contrario. En la prctica, puede suceder que un cliente que tiene una
herramienta E-LT utilice ETL al no saber usar sus ventajas. Por eso, es importante estar
informado y conocer el alcance de los recursos de que se dispone, para poder tomar
decisiones correctas, obteniendo el mejor rendimiento.
15