Question

Je fais un travail de migration de base de données. Je dois copier une base de données dans MSSQL vers la base de données MySql. Il était possible de créer un petit utilitaire Java pour copier la structure de table de MSSQL vers la base de données MySql. Maintenant, je dois copier toutes les données de MSSQL vers MySql. J'ai essayé d'utiliser resultset en Java pour obtenir toutes les données d'une table, mais il ne pouvait alors extraire qu'une petite partie des données. Existe-t-il une solution alternative pour obtenir toutes les données de table dans resultset ou vers une autre structure similaire que je pourrais éventuellement utiliser, pour insérer les mêmes données dans mysql Db. Il y a plus de 25 000 000 enregistrements pour une table.

Était-ce utile?

La solution

Un jeu de résultats JDBC devrait en principe vous permettre d’itérer l’intégralité d’un résultat de requête volumineux.

Cependant, passer par Java n’est peut-être pas l’approche la plus efficace. L'exportation en bloc vers un fichier et l'importation en masse peuvent être la solution. Il semble que MS dispose d'un bcp qui peut effectuer l'exportation.

Autres conseils

Le meilleur moyen de réaliser une migration de base de données telle que celle que vous décrivez consiste à utiliser l'outil ETL - il existe un bon aperçu de l'ETL ici:

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

Il n'y a aucune raison pour que vous ne puissiez pas faire cela avec JDBC. Si vous êtes prêt à rouler vous-même, expliquez-le, vous ne pouvez extraire qu'une petite partie des données:

  • quelle est la requête que vous exécutez?
  • obtenez-vous une exception?
  • quel pilote JDBC utilisez-vous pour vous connecter à MS-SQL?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top