MS SQL、MySQL などのデータベースのデータを HSQLDB、H2 などのインメモリ データベースにインポートする方法はありますか?
8 に答える
H2 は、SQL スクリプト ファイルからデータベースを初期化する特別なデータベース URL をサポートしています。
"jdbc:h2:mem;INIT=RUNSCRIPT FROM '~/create.sql'"
私の知る限り、HSQLDB と Apache Derby はそのような機能をサポートしていません。
Hibernate の場合: import.sql をクラス パスに追加するとうまく機能し、hbm2dll はファイルが存在するかどうかを確認して実行します。唯一の詳細は、すべてのSQLコマンドがほとんど1行にあることです。そうしないと、実行に失敗します
それは本当にあなたがどのように考えるかに依存します。プログラミングなしで自動的にそれを行うことができるツールはありますか?多分。
あなたはそれを開発したいですか?次に、お気に入りの言語が両方のデータベースエンジン(標準とメモリ内)をサポートしているかどうかを確認し、サポートしている場合は、それを実行するスクリプトを記述します。すべてをチャンクで処理します(一度にn行をフェッチしてから挿入し、繰り返します)。チャンクサイズはどれくらいですか?それはあなた次第です。さまざまなサイズ(たとえば、100、500、1kなど)を試して、ハードウェアでどちらが優れているかを確認し、スイートスポットに微調整してください。
一方、お気に入りの言語が両方をサポートしていない場合は、サポートしているものを使用してみてください。
無料の「ユニバーサルデータベースコンバーター」http://eva-3-universal-database-converter-udc.optadat-com.qarchive.org/を見てください。MySQL、MS-SQL、HSQLDBなどをサポートしていると主張しています。その他。
データを SQL INSERT ステートメントとしてダンプしてから、読み戻すことができます。
temporay オブジェクト (構造体など) を読み取ってから、内部データベースに書き戻すことができます。
HSQLDB の最新バージョンでは、CSV (カンマ区切り値) またはその他の区切り記号で区切られたデータ ファイルを HSQLDB の TEXT TABLE として開くことができます。
他の人が指摘しているように、この目的のための有能でよく管理されたサードパーティ ツールもあります。
dbunitを使用して、データベースを xml ファイルにダンプし、それを別の rdbms にインポートできます。