Java ResultSetの制限に関する回避策
-
07-07-2019 - |
質問
データベースの移行作業を行っています。 MSSQLのデータベースをMySqlデータベースにコピーする必要があります。 MSSQLからMySqlデータベースにテーブル構造をコピーするための小さなjavaユーティリティを思いつくことができました。今、すべてのデータをMSSQLからMySqlにコピーする必要があります。 Javaで結果セットを使用してテーブルからすべてのデータを取得しようとしましたが、データのごく一部しか取得できませんでした。同じデータをmysql Dbに挿入するために、すべてのデータをテーブルから結果セットまたは使用可能な他の類似の構造に取得する代替ソリューションはありますか。テーブルには25,00,000を超えるレコードがあります。
解決
JDBC結果セットは、原則として、大きなクエリ結果の完全性を反復できるようにする必要があります。
ただし、Javaを使用することは、最も効率的なアプローチではない場合があります。ファイルへの一括エクスポートと一括インポートが最適な方法です。 MSには bcp ユーティリティがあり、エクスポートを実行できるようです。
他のヒント
説明したようなデータベース移行を実現する最良の方法は、ETLツールを使用することです。ETLの概要についてはこちらをご覧ください:
http://en.wikipedia.org/wiki/Extract,_transform,_load
JDBCでこれを行うことができない理由はないので、独自にローリングするように設定されている場合は、「データのごく一部しか取得できません」について詳しく説明してください:
- 実行しているクエリは何ですか?
- 例外が発生していますか?
- MS-SQLへの接続に使用しているJDBCドライバーはどれですか
所属していません StackOverflow