Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DIRECTOR:
DEPARTAMENTO:
FECHA:
10:03 10:03
DIRECTOR:
DEPARTAMENTO:
TRIBUNAL
PFC Página 2
10:03 10:03
Este aplicativo permitirá automatizar una de las fases más importantes del
proyecto de migración como es la etapa de validación de una Iteración. Esta
etapa consta de una serie de tareas bastante repetitivas y tediosas que no
aportan mucho valor añadido y justamente esto es lo que pretende automatizar
el aplicativo.
Otro de los puntos a destacar, es que el aplicativo tiene que poder acceder a
diferentes SGBD para que pueda ser re aprovechable a otros proyectos y debe
ejecutarse de manera automatizada a través de línea de comandos. Esto
permitirá que el aplicativo se puede ejecutar desde otros aplicativos
PFC Página 3
Índice
1. Introducción .................................................................................................................. 5
1.1. Contexto del proyecto ............................................................................................. 5
1.2. Resumen del proyecto .......................................................................................... 13
1.3. Alcance del proyecto ............................................................................................ 14
1.4. Conceptos de una migración de datos ................................................................. 14
1.5. Situación actual .................................................................................................... 15
1.6. Especificación y análisis de requerimientos ......................................................... 16
1.7. Tecnología aplicada ............................................................................................. 16
2. Planificación ............................................................................................................... 17
2.1. Planificación temporal del proyecto ...................................................................... 17
2.2. Plan de contingencia ............................................................................................ 17
3. Diseño ........................................................................................................................ 18
3.1. Diseño aplicación ................................................................................................. 18
3.1.1. Barra de Menú ............................................................................................... 21
3.1.2. Área de Seguimiento de Ejecución ................................................................ 21
3.1.3. Área de Ejecución .......................................................................................... 22
3.1.4. Área de Control de Ejecución ........................................................................ 23
3.2. Interfaz visual aplicación....................................................................................... 24
4. Implementación de la aplicación ................................................................................ 28
4.1. Herramientas utilizadas ........................................................................................ 28
4.2. Etapa de implementación ..................................................................................... 29
4.2.1 Instalación y configuración SQL Server 2012 ................................................ 29
4.2.2. Excel de Validación ........................................................................................ 33
4.2.3. Archivo Configuración Aplicativo .................................................................... 36
4.2.4. Argumentos ejecución línea de comandos .................................................... 37
5. Pruebas de aplicativo ................................................................................................. 39
5.1. Tipos de pruebas .................................................................................................. 39
5.2. Listado de pruebas ............................................................................................... 39
5.3. Gestión de errores detectados ............................................................................. 40
6. Conclusiones .............................................................................................................. 46
6.1. Objetivos Conseguidos ......................................................................................... 46
6.1.1 Reducción de costes temporales y de recursos ............................................ 46
6.1.2 Acceso a distintos SGBD ............................................................................... 47
6.1.3 Ejecución manual y automatizada ................................................................. 48
6.2. Propuestas de mejora del aplicativo ..................................................................... 49
7. Valoración Personal ................................................................................................... 50
8. Bibliografía.................................................................................................................. 51
PFC Página 4
1. Introducción
Mi función dentro del proyecto es velar que los datos de la compañía origen se integren
correctamente en la compañía destino.
Una migración de datos consiste en adaptar los datos de un sistema origen a los datos
del sistema destino
Una de las principales actividades del proceso es realizar un análisis del modelo de datos
actual y del nuevo, para determinar cuáles son las tablas y campos críticos de ambos.
PFC Página 5
De esta manera, es necesario considerar las diferencias de los tipos de datos entre el
modelo actual y el nuevo, asegurar que la información pueda ser almacenada en los
campos bajo la nueva definición, verificar el tamaño de los objetos y de la base de datos,
revisar el tipo de índices que soporta la base de datos final y su manejo de transacciones.
Para poder realizar las adaptaciones entre el entorno origen y el entorno destino, se
necesitan distintos actores que identifiquen, definan y codifiquen las necesidades entre
ambos entorno, por ello intervienen los siguientes actores:
PFC Página 6
Factores que pueden implicar una migración de datos
Existen muchos motivos por los que un negocio necesita llevar a cabo un proceso de este
tipo, los más habituales son los siguientes:
Sea cual sea la motivación que origina la necesidad de trasladar los datos, el proceso ha
de llevarse a cabo de manera eficaz y en un entorno controlado para asegurar
la integridad de datos, compatibilidad, seguridad y la minimización del tiempo de
inactividad.
PFC Página 7
Las claves de la elección de herramientas de migración de bases de datos
Aplicación de ciclos de prueba que aseguren que los datos se mantiene libre de
daños causados por el movimiento o transformación durante la migración de datos.
PFC Página 8
Esta combinación de cualidades, que ha de buscarse en las herramientas de migración
de bases de datos, reduce el riesgo de excesos de presupuesto y plazos, asegurando el
éxito del proyecto de migración de aplicaciones y datos en condiciones de seguridad y
calidad.
Otro de los aspectos que garantizan el éxito de una migración, será el comprobar que las
aplicaciones que harán uso de la base de datos funcionan correctamente y optimizar los
tiempos y recursos necesarios.
Una vez terminado el proceso se deben medir los resultados y entregar un reporte global
del trabajo realizado, mencionando cuáles son los productos que se entregan, cuántas
tablas u otros objetos fueron migrados, cuántos registros se migraron exitosamente,
cuántos no fueron migrados y cuál fue la causa de ello.
Se sugiere realizar el reporte ejecutivo que resuma y presente los resultados obtenidos.
Otro documento relevante para el cliente es la memoria técnica que contenga la
configuración de los parámetros de la base de datos migrada, su estructura física y
espacio disponible, entre otros datos relevantes.
La migración de datos, por sí misma, puede ser considerada como un proyecto complejo
que para ser exitoso requiere una planeación detallada, un profundo conocimiento tanto
de los datos como de las herramientas necesarias para llevar a cabo el proceso, así
como en forma importante, de los sistemas y aplicaciones que hacen uso de los datos a
partir del modelo final, para asegurar su correcto funcionamiento y continuidad en la
operación.
PFC Página 9
Fases de una migración
Las iteraciones son ciclos de prueba que se definen en la etapa de planificación. Uno de
los objetivos de las iteraciones es medir la calidad del dato migrado. A más iteraciones,
mayor calidad debe tener el dato migrado. Se planificarán tantas iteraciones como
volumen de datos y complejidad del dato exista.
PFC Página 10
¿Fases de una Iteración?
Descarga de datos del sistema Origen: Consiste en descargar una foto fija de
datos del sistema origen.
PFC Página 11
¿Dónde encontramos la problemática?
Dentro de una iteración, el 41% del tiempo total, se dedica a la fase de Validación del
dato migrado.
Iteración
Fase % Tiempo Total
Descarga de datos del sistema Origen 9%
Transformación Datos 22%
Carga datos al sistema destino 10%
Validaciones 41%
Corrección ETLs y Datos Origen 15%
Optimización de procesos 3%
Estos tiempos han sido calculados en base al promedio de tiempos existentes en todos
los proyectos de migración de datos.
Esta etapa de validación, consta de una serie de tareas bastante repetitivas y tediosas
que no aportan mucho valor añadido.
De aquí nace la necesidad de automatizar tareas y optimizar costes tanto en tiempo como
en márgenes económicos (en base a los recursos dedicados).
Los recursos podrán dedicar más tiempo a tareas más productivas o incluso se podría
revisar la asignación de estos.
PFC Página 12
1.2. Resumen del proyecto
Este aplicativo permitirá automatizar una de las fases más importantes del proyecto de
migración como es la etapa de validación de una Iteración. Esta etapa consta de una
serie de tareas bastante repetitivas y tediosas que no aportan mucho valor añadido y
justamente esto es lo que pretende automatizar el aplicativo.
Este aplicativo permitirá automatizar una de las fases más importantes de un proyecto de
Migración de datos como es la etapa de validación de una Iteración.
Ejecución automática de los test: ejecución que se pueda programar al finalizar las
trasformaciones de datos sin intervención de los programadores.
PFC Página 13
1.3. Alcance del proyecto
Iteración: Es una de las fases de una migración de datos. Se trata de ciclos de pruebas
donde migramos los datos origen al sistema destino con el objetivo de validar la calidad
del dato, detectar y corregir los errores de definición o construcción, corregir los datos en
origen y optimizar los procesos de transformación.
PFC Página 14
Incidencia: Error/Incoherencia detectada. Permiten la corrección de datos dentro de una
iteración. Las incidencias serán reportadas mediante la creación de una incidencia en el
aplicativo actual del cliente (JIRA).
En la actualidad, la etapa de Validación del dato dentro de una Iteración es una de las
partes más costosas en una migración de datos.
En esta etapa se tienen que realizar tareas de ejecución de validaciones repetitivas y que
aportan poco valor añadido.
Pongamos un ejemplo:
Este tiempo realmente es un tiempo poco “agradecido” al tratarse de una tarea bastante
repetitiva. Si esto lo multiplicamos por el número de Excels de una etapa de validación,
los costes se disparan significativamente.
De aquí nace la necesidad de automatizar esta etapa y diseñar un aplicativo que pueda
minimizar estos costes considerablemente.
PFC Página 15
1.6. Especificación y análisis de requerimientos
Reducir costes
Aplicativo multiplataforma
Reaprovechable para otros proyectos
Ejecución manual
Ejecución automatizada
En este caso, nos interesa que el aplicativo sea reutilizable en otras migraciones o
proyectos.
Otro gran factor a tener en cuenta es que existen multitud de frameworks y librerías
que ofrecen capas para el desarrollo de aplicaciones Web de manera más ágil,
organizada y escalable.
Muchas de las necesidades del aplicativo ya existían en frameworks.
Otra de las razones de porque utilizar Java, es que mejora el rendimiento del PC en el
momento de ejecución de tu programa, ya que evita el problema de fugas de memoria
gracias a la recolección de basura (es un mecanismo de gestión de memoria), ya que si
no encuentra referencias de un objeto, el recolector de basura borra el objeto, liberando
así la memoria que ocupaba.
PFC Página 16
2. Planificación
Como plan de contingencia, se deja un margen de un mes en la fecha fin de proyecto por
si surge algún imprevisto que pueda ocasionar retraso.
Siendo así el día 01 de septiembre de 2015 la fecha límite de entrega inicial propuesta.
PFC Página 17
3. Diseño
Se ha optado por construir una aplicación Desktop que sea ejecutable desde cualquier pc
y por cualquier usuario que disponga del ejecutable en su PC.
PFC Página 18
Al lanzar el ejecutable del aplicativo (archivo .jar), el aplicativo aparecerá en pantalla y
permitirá la ejecución de este. Al seleccionar el Excel de Validación que deseemos
ejecutar, podremos iniciar el proceso de validación.
También recogerá los parámetros de configuración con el Excel de Validación los cuales
permitirán localizar el set de datos a validar dentro del Excel.
Al obtener los parámetros de conexión del Excel de Validación, se recupera todo el set de
validaciones a ejecutar. Esta información será guardada a nivel de ejecución.
Tras obtener el set de datos a ejecutar, conectamos con la base de datos mediantes los
parámetros de conexión y procedemos a ejecutar query a query obteniendo el resultado
de estas e informándolo de nuevo en el propio Excel de Validación.
Una vez ejecutado todo el set de datos, aparecerá un mensaje de fin de ejecución.
Si accedemos al Excel de Validación que hemos ejecutado, este contendrá los resultados
de las queries ejecutadas indicando el número de casos erróneos y correspondientes
porcentajes de calidad.
PFC Página 19
En base al análisis y los requerimientos obtenidos previamente, se decide diseñar el
aplicativo por áreas de trabajo. Existirán 4 áreas de trabajo.
Barra de Menú 1
1
2
3
4
PFC Página 20
3.1.1. Barra de Menú
PFC Página 21
3.1.3. Área de Ejecución
PFC Página 22
3.1.4. Área de Control de Ejecución
PFC Página 23
3.2. Interfaz visual aplicación
Pantalla Inicial
Desde esta pantalla podemos acceder a las opciones de la Barra de Menú y podemos
habilitar/deshabilitar las opciones que creamos oportunas para la ejecución del validador.
PFC Página 24
Imagen desplegable menú selección:
PFC Página 25
Imagen ejecución en curso:
PFC Página 26
Imagen ejecución finalizada:
PFC Página 27
4. Implementación de la aplicación
NetBeans
Para implementar el aplicativo he utilizado el entorno de desarrollo NetBeans.
Esta herramienta de desarrollo es totalmente gratuita y es bastante intuitiva.
NetBeans IDE es un entorno de desarrollo que permite escribir código java, compilar,
depurar y ejecutar programas.
Mediante SQL Server 2012 Management se pueden administrar las instancias de SQL
Server.
PFC Página 28
4.2. Etapa de implementación
4.2.1 Instalación y configuración SQL Server 2012
Para poder ejecutar el aplicativo, necesitaremos una base de datos a la que acceder. En
este caso, procedemos a realizar una copia de seguridad de la base de datos existente
en mi proyecto actual de migración de datos.
PFC Página 29
Instalación de SQL Server y Creación de una instancia
Para poder acceder a las bases de datos comentadas en el paso anterior, tendremos que
instalar en nuestra máquina SQL Server.
A partir de aquí, tenemos que seguir los pasos de instalación correspondientes y crear
una nueva instancia.
Para dar solución a problemas de conexión hemos tenido que reiniciar los servicios
asociados a SQL Server. Todo esta gestión se realiza desde herramientas administrativas
de Windows.
PFC Página 30
Imagen servicios Windows:
PFC Página 31
Restauración bases de datos
Una vez que hemos logrado conectarnos, procedemos a restaurar las bases de datos
comentadas en el apartado anterior en nuestro servidor SQL Server a partir de los
archivos .bak de restauración.
PFC Página 32
4.2.2. Excel de Validación
El Excel de Validación es la herramienta que utilizamos para medir la calidad del dato de
un área funcional. Contiene una batería de validaciones que intentan detectar errores,
faltas de integridad entre tablas o gaps funcionales.
Una vez ejecutados todos los Excel de validación de un área funcional se obtiene una
porcentaje de calidad del dato general de esta área funcional.
PFC Página 33
Columna Resultado: Columna donde se informarán los valores obtenidos de la
ejecución de la query asociada.
Una vez definido el ámbito de la migración, el equipo de migración se reúne con las
diferentes áreas funcionales para identificar los puntos críticos de la migración y para
obtener el detalle funcional de cada uno de los campos de las tablas afectadas dentro del
área funcional.
Una vez que se tiene claro el entorno destino, da comienzo el proceso de adaptación y
homologación del sistema origen al sistema destino.
El equipo de migración se reúne con los responsables funcionales del sistema origen y se
realizan los mapeos de sistema origen a sistema destino. Entendemos mapeo toda regla
necesaria para adaptar los datos origen a los datos destino.
PFC Página 34
Ejemplo:
En este caso, una de las validaciones a incluir el en Excel de validación será el número
de registros que no estén comprendidos entre los valores existentes en destino. De esta
manera se detectaran posibles gaps funcionales o errores a nivel de ejecución de ETL.
Una vez ejecutados todos los Excels de Validación, el equipo de migración tendrá que
revisar los resultados obtenidos de las diferentes ejecuciones y ver que validaciones han
devuelto errores.
Cada error será analizado en base a los datos origen y el mapeo existente en nuestra
ETL de transformación del dato. Si detectamos incoherencias bien por gaps funcionales
o bien por errores debidos a datos inconsistentes en origen, serán comunicados al equipo
funcional destino para determinar una posible solución o bien dar por Ok la validación al
tratarse de casos residuales o con poca importancia.
Por el contrario, si el error se debe a una mala codificación de las ETLs, este error deberá
ser reportado y solventado de cara a la siguiente Iteración.
PFC Página 35
4.2.3. Archivo Configuración Aplicativo
Este archivo contendrá toda la información necesaria para la ejecución del aplicativo.
Permitirá de una manera fácil, que el aplicativo se puede parametrizar.
Este archivo tiene que existir en la misma ruta donde dejamos el ejecutable del aplicativo.
PFC Página 36
Otros Parámetros de Interés
find_Q1= String1 de búsqueda
repl_Q1=Replace1
find_Q2= String2 de búsqueda
repl_Q2=Replace2
group_pos= N/A
desc_group_pos= N/A
desc_pos= N/A
where = N/A
test = N/A
Comando ejecución:
java -jar "Ruta donde encontramos .jar" -f "Ruta Excel Validación”
PFC Página 37
Para poder proceder a la ejecución tenemos que estar dentro del directorio donde se
encuentra el aplicativo.
PFC Página 38
5. Pruebas de aplicativo
Pruebas Unitarias
Este tipo de pruebas tratan de comprobar el correcto funcionamiento de un módulo de
código. Sirven para asegurar que cada uno de los módulos funcione correctamente por
separado.
Una vez finalizadas las pruebas unitarias, se realizarán las pruebas integradas o de
integración que permitirán asegurar el correcto funcionamiento del sistema o subsistema
en cuestión.
Pruebas Integradas
Prueban la interacción entre dos o más elementos, que pueden ser clases, módulos,
paquetes, subsistemas, etc… incluso la interacción del sistema con el entorno de
producción.
Pruebas de Usuario
Prueban el correcto funcionamiento del aplicativo y dan un aporte más funcional. Estas
pruebas son verdaderamente importantes ya que pueden identificar errores o gaps
funcionales que no se han contemplado anteriormente.
PFC Página 39
Pruebas generales Excel de Validación
o Correcta ejecución validaciones – Contrastación contra base de datos
o Forzar distintos errores de validación
o Ejecución total queries
o Ejecución selección concreta queries
PFC Página 40
Autentificación errónea del usuario
PFC Página 41
Error ejecución aplicativo
PFC Página 42
¿Cómo detectamos el error reportado por aplicativo?
PFC Página 43
Imagen ejecución errónea:
Este error es debido a que hemos asignado una columna erronea en el archivo de
configuración del aplicativo a la variable query_pos, indicandole otra posición (en
este caso, otra columna).
PFC Página 44
Error Conexión Aplicativo
PFC Página 45
6. Conclusiones
El objetivo principal del proyecto, era reducir considerablemente los costes de la etapa de
validación de datos dentro de una Iteración. A partir de este objetivo, surgió la necesidad
de creación de este aplicativo.
Paso de detallar los costes de una Iteración sin validador de datos en comparativa a una
Iteración con validador de datos:
Coste temporal
Coste económico
Coste en recursos
Como se puede observar en la imagen anterior, se realizar una comparativa para una
misma Iteración. La primera Iteración es una iteración manual y la segunda iteración se
trata de una Iteración haciendo uso de nuestro aplicativo.
PFC Página 46
Coste temporal
En la segunda ejecución, haciendo uso del aplicativo, el tiempo total que se dedica
disminuye considerablemente hasta 9 horas. Existe una ganancia de 10 horas por
Iteración.
Coste económico
Coste en recursos
Según los datos obtenidos, para la Iteración con nuestro aplicativo, no sería necesario la
dedicación exclusiva de los dos analistas. Se podría trabajar en otras tareas en paralelo y
así optimizar más aun costes.
Otro de los principales objetivos era que el aplicativo pudiera acceder a diferentes SGBD
y ser así reaprovechable a otros proyectos de migración del datos.
A destacar que a día de hoy, se ha probado la conexión contra los siguientes SGBD:
SQL Server
MySQL
DB2
PFC Página 47
6.1.3 Ejecución manual y automatizada
Ejecución manual
Ejecución normal. Se asocia a un único Excel de validación.
Ejecución automatizada
El hecho del que el aplicativo se pueda ejecutar por línea de comandos ha conllevado la
automatización de la ejecución del aplicativo.
Se puede programar una malla de ejecución donde se indican los Excel de validación a
ejecutar. Esto permite ejecutar las validaciones de manera automática y lo más
importante, no presencial y con acceso remoto de ejecución.
PFC Página 48
Imagen ejecución malla validaciones desde PowerCenter (Herramienta ETL):
Esto conllevaría una mayor optimización de los costes temporales al no tener que
configurar por línea de comandos las diferentes ejecuciones.
Esta nueva implementación sería bastante compleja de llevar a cabo ya que habría que
reestructurar el enfoque del proyecto actual.
PFC Página 49
7. Valoración Personal
Lo más gratificante ha sido poder realizar un proyecto a partir de una necesidad concreta
y 100% real.
Por otro lado, este proyecto ha sido bastante complejo de llevar a cabo debido a aspectos
profesionales y personales. Todo proyecto necesita un alto grado de dedicación y no
siempre disponemos del tiempo que nos gustaría dedicar. Aun así, mi valoración es
positiva en todos los aspectos.
PFC Página 50
8. Bibliografía
[7]. Susana Corona Correa. “Asegure una migración exitosa de bases de datos”.
http://www.enterate.unam.mx/Articulos/2006/agosto/migracion.htm
PFC Página 51