2

私は次の問題の可能な解決策を探しています。

最初の状況:
私は2つのデータベース、1つのOracleDBと1つのMySQLDBを持っています。それらには多くの類似点がありますが、同一ではありません。OracleDBとMySQLDBの両方で多くのテーブルを使用できますが、Oracleテーブルは多くの場合、より広範囲で、より多くの列が含まれています。データベースの状況は変えられないので、私はそれに対処しなければなりません。

今私は次のものを探しています:
OracleからMySQLに、またはその逆にデータを同期したい。これは、リアルタイムまたは可能な限りリアルタイムに近い方法で実行する必要があります。したがって、1つのDBで変更が行われた場合、それらを他のDBにできるだけ早く同期する必要があります。

また、すべてのテーブルが同期している必要はないため、ソリューションは、同期する必要があるテーブルと同期しないテーブルを選択する方法を提供する必要があります。

データベースは同一ではないので、レプリケーションはオプションではないと思います。しかし、何ですか?皆さんがこれを行う方法や、私が必要としていることを正確に実行するツールを見つけるのを手伝ってくれることを願っています。多分あなたは私が使うことができるいくつかの良い論文/記事を知っていますか?

ありがとう!

4

2 に答える 2

1

コメントありがとうございます。

ETLとEAIについてさらに調査しました。ETLツールを探していることがわかりました。

于 2013-03-13T14:42:03.280 に答える
0

私はあなたの質問とあなたの答えを読みました。私はOracle、SQL、ETL、およびデータウェアハウスの両方に取り組んできましたが、ここに私の提案があります。

  1. 既製のETLツールがあると便利です。ただし、アプリケーションが十分に大きいためにカスタマイズされたETLツールが必要な場合は、自家製のETLプロセスをお勧めします。

    • トランザクションデータベースがOracle上にある場合は、C、C ++、またはJavaで記述された外部プロシージャをさらにトリガーするトリガーをキーテーブルに設定できます。
    • 外部プロシージャを使用する理由は、一度に両方のデータベース(OracleとMySQL)と通信できるようにするためです。
    • Oracle外部プロシージャの詳細については、こちらを参照してください。
  2. ExtProcを使用しない場合は、Javaまたは.Netで別のアプリケーションを開発して、最初のデータベースからデータを抽出し、ビジネスルールに従って変換して、ウェアハウスにロードすることができます。

どちらのアプローチを選択した場合でも、既製のツールを使用するのではなく、独自のツールを実装すると、ETLプロセスをより細かく制御できます。

于 2013-03-13T14:58:32.080 に答える