Pregunta

Estoy haciendo un trabajo de migración de base de datos. Tengo que copiar una base de datos en MSSQL a la base de datos MySql. Fue posible crear una pequeña utilidad java para copiar la estructura de la tabla de MSSQL a la base de datos MySql. Ahora tengo que copiar todos los datos de MSSQL a MySql. Intenté usar resultset en java para obtener todos los datos de una tabla, pero luego solo podía obtener una pequeña parte de los datos. ¿Hay alguna solución alternativa para obtener todos los datos de la tabla al conjunto de resultados o alguna otra estructura similar que posiblemente pueda usar, para insertar los mismos datos en mysql Db? Hay más de 25,00,000 registros para una tabla.

¿Fue útil?

Solución

Un conjunto de resultados JDBC debería, en principio, permitirle iterar la entidad de un resultado de consulta grande.

Sin embargo, pasar por Java puede no ser el enfoque más eficiente. La exportación masiva a un archivo y la importación masiva pueden ser el camino a seguir. Parece que MS tiene una utilidad bcp que puede realizar la exportación.

Otros consejos

La mejor manera de lograr una migración de base de datos como la que usted describe es usar una herramienta ETL: aquí hay una buena descripción general de ETL:

http://en.wikipedia.org/wiki/Extract,_transform,_load

No hay ninguna razón por la que no pueda hacer esto con JDBC y, por lo tanto, si está configurado para rodar los suyos, explique 'solo podría obtener una pequeña parte de los datos':

  • ¿Cuál es la consulta que está ejecutando?
  • ¿está recibiendo una excepción?
  • ¿qué controlador JDBC está utilizando para conectarse a MS-SQL?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top