entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

4votos

Realizar migración de bases de datos SQL

Buenas me encuentro en la tarea de realizar migraciones de bases de datos SQL de varios software ERP distintos hacia uno propio, dispongo de las bases de datos origen tanto en SQL como de las distintas tablas en CSV, son bases de datos de varios gigas algunas de ellas y con estructuras muy diferentes en sus tablas por lo que no me parece buena idea lo de hacerlo manualmente, campo a campo sobre los ficheros.
Busco algo que me facilite dentro de lo posible algunas de las siguientes tareas:

Seleccionar sólo ciertas columnas para su carga (por ejemplo, que las columnas con valores nulos no se carguen).
Traducir códigos (por ejemplo, si la fuente almacena una “H” para Hombre y “M” para Mujer pero el destino tiene que guardar “1” para Hombre y “2” para Mujer).
Obtener nuevos valores calculados (por ejemplo, total_venta = cantidad * precio).
Unir datos de múltiples fuentes (por ejemplo, búsquedas, combinaciones, etc.).
Calcular totales de múltiples filas de datos (por ejemplo, ventas totales de cada región).
Generación de campos clave en el destino.
Mantener la integridad relacional de los datos

Se que la pregunta es poco específica y que como siempre google tiene la solución, ya he leido un poco sobre las herramientas ETL(extracción,transformación y carga) pero desconozco cuales de ellas merecen la pena, y tampoco se que problemas me puedo encontrar en el proceso por eso antes de empezar a hacerlo de cualquier manera quería consultarles por aquí para ver si alguien tiene conocimiento del tema y me puede orientar un poco.
Un saludo

2 Respuestas

1voto

bl4z3r Puntos16850

Mira, acá tengo un par de herramientas con interfaz gráfica que, en su momento dado, investigue para hacer ETL y data integration con facilidad. Probalas y decime que tal están:

0voto

Javi2EE comentado

Después de echarles un vistazo he probado Kettle y Jaspersoft que parece que son los mas reconocidos,los dos tienen una GUI bastante buena, todo muy visual y además en español, el primero es muy sencillo de empezar a usar y esta muy bien la verdad pero al final me he decidido por Jaspersoft, parece que de primeras no es tan intuitivo pero se pilla fácil, además permite utilizar y generar el código java de las transformaciones, esto es lo que me ha hecho decidirme.

Gracias por todo

4votos

ankeorum Puntos7210

Sin ánimo de desvirtuar la idea primera de tu pregunta, has pensado que quizás generar vistas en las bases de datos origen con la información que tu necesitas y luego rellenar tu base de datos con exclusivamente esa información?

Yo me he visto en alguna veces esa situación y es bastante usual encontrarte con información que tu no necesitas en las tablas origen por lo tanto generar vistas y que esas vistas hagan el "insert into" en tu base de datos a veces es lo más idóneo...

Lo digo como idea.

SaludoS!

0voto

Javi2EE comentado

No lo había pensado y es un buen planteamiento ya que permite dividir el proceso en dos partes realizando media transformación hacia la vista y la otra mitad hacia la base da datos de destino, reduce un problema grande en dos pequeños y eso siempre es bueno, pero al final no deja de ser hacer todas las transformaciones a mano mediante SQL, que es un poco lo que intento evitar

1voto

ankeorum comentado

Para evitar hacer las transformaciones a mano supongo que lo mejor sería usar alguna herramienta que automáticamente realice una exportación de la BBDD fuente y la importe en el destino para lo cual lamento no poder ayudarte ya que no he usado nunca ninguna.

SaludoS!

0voto

Javi2EE comentado

Vale, igualmente te agradezco la ayuda, puede que me sirva para algunos casos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta