4

私のアプリケーションでは、java を使用して、sybase と db2 の間、およびその逆、および (db2 から db2 へ、sybase から sybase へ) 内部でデータベース テーブルをアーカイブする必要があります。

私は、パフォーマンス、実装、使いやすさ、およびスケーラビリティの観点から、最善の戦略を理解しようとしています。

これが私の現在のプロセスです-

  • 受け入れ可能なパラメーター (java から) を持つソース テーブルと宛先テーブルは、xml 内で定義されます。[実際のクエリはxml内に配置されています.javaからパラメーターが受け入れられる場合があるためです(たとえば、where句の条件の場合)]
  • アプリケーションはソースと宛先の構成を読み取り、それらを順番に実行します。
  • source が特定のテーブルからデータを削除するだけの場合、または source がストアド プロシージャを呼び出しているだけの場合、destination はオプションになることがあります。
  • ソースと宛先の間のデータセットが非常に大きい (数百万)

頭のてっぺんから、複数のソースと宛先の組み合わせ間の依存関係を定義し、それらを複数のスレッドで並行して実行できるように見えます。しかし、これによりパフォーマンスが向上しますか (そうなることを願っています)?

Java を使用したデータ アーカイブ用のオープンソース フレームワークはありますか? 実装側に関する他の考えは本当に役に立ちます。

ありがとう

4

4 に答える 4

8

Java 永続化のための最も強力なオープン ソース フレームワークは Hibernate です。既存の DB から Java モデルをリバース エンジニアリングし (Hibernate Tools を参照)、Session.replicate() を使用してレプリケーションを実行できます。ステートレス セッションと、必要に応じて第 2 レベルのキャッシュを使用して、パフォーマンスを微調整できます。ドキュメントはこちら

于 2010-03-28T00:12:04.113 に答える
2

いくつかのデータベースレプリケーションツールを見てください(Shadowbaseを使用しています)。彼らはJavaAPIを持っているかもしれません。

また、このIBMホワイトペーパーも確認してください。

[IBM]は、JDBCとSyncML標準を使用して、汎用データベースデータレプリケーションを実現するソリューションを提供します。

于 2010-03-30T16:49:39.717 に答える
1

Pentaho Data Integrationは、データベース間またはデータベースからのデータのコピーを強力にサポートしています。さらに、それはオープンソースであり、Javaでプラグインを書くことができます。

OracleからMySQLに移行する

于 2010-04-03T19:26:58.673 に答える
1

最も重要なことは、JDBC で自動コミットを無効にすることです。そうしないと、データベース テーブルに挿入するたびにコミットすることになります。それはパフォーマンスを台無しにします。

ただし、基本的には、実際にどのようにコピーするかを決定する前に、どのレコードをコピーする必要があるかを特定できるように、同期スキームを理解する必要があります。

于 2010-04-03T20:54:38.440 に答える