2016-08-18 15 views
1
  1. 私は1台のMySQLサーバと1台のPostgreSQLサーバを持っています。
  2. MySQLの マルチプルテーブルのデータセットをレプリケートまたは再挿入する必要があります。これは、PostgreSQLのテーブルにStreamed/Syncedされます。PostgreSQLのテーブル/テーブルでMySQLテーブル/テーブル(結合テーブル)を同期/ストリーミングする

  3. このレプリケーションは、時間(同期)またはイベント(テーブルの新しい挿入 など)に基づいている可能性があります。

    私は以下のレプリケーションツールを使用してみましたが、これらのツールはすべてテーブルをテーブルに同期させることができます。ソースデータベース(MySQL)の異なるテーブルから列を選択し、デスティネーションデータベース(PostgreSQL)。

    • SymmetricDSは
    • ます。dbconvert
    • pgloader
    • PostgresqlのFDW

    今私は、MySQL からのデータを照会し、cronジョブとしてのPostgreSQLに挿入するアプリケーションを記述する必要があります。 データを同期するのが面倒でエラーが発生しやすいです。 これは、リアルタイムレプリケーションのデータをストリーミング(イベントベース)できません。

    すでにこの問題を解決しているツールがあれば素晴らしいことでしょう。 オープンソースのライブラリがあるかどうか教えてください。

    ありがとうございます。

    PostgreSQLで別のスキーマを作成し、彼らは完全にMySQLのテーブルの構造をコピーするようにビューを追加します。あなたは次の操作を行うことができ、提案ツールの一つでレプリケーションを実現するために

答えて

1

。ビューにルールやトリガを追加して、挿入/更新/削除を処理し、選択したテーブルにリダイレクトします。

この方法では、レプリケーション中にデータを自由に変換できますが、それでも共通のツールを使用します。

+0

こんにちはボリス、私はその素晴らしいアイデアだと思っています。レプリケーションテーブルをVIEWまたはPostgreSQLに保持する必要があるのですか、それともテーブル自体に保持できますか? – stallion

+1

PostgreSQLのビューとテーブルの動作はほぼ同じです。もちろん、テーブルでもそれを達成することができます。次に、ビューが自動的にそれを処理するのに対し、いくつかの読み込み機能(PostgreSQL側でテーブルのデータを最新に保つ)を提供する必要があります。 –

0

多分、このツールはあなたを助けることができます。 https://github.com/the4thdoctor/pg_chameleon

Pg_chameleonはPython 2.7/3.5で開発されたMySQLからPostgreSQLへの複製ツールです。システムはmysql-replicationライブラリを利用してMySQLから変更を取り出し、それらをjsonbオブジェクトに変換します。 plpgsql関数はjsonbをデコードし、変更をPostgreSQLデータベースに再生します。

ツールはMySQLからデータを引き出すレプリカを初期化できますが、これにはFLUSH TABLE WITH READ LOCKが必要です。適切に動作するようにします。

MySQLスレーブがlog-slave-updatesで設定されている場合、このツールはカスケードレプリカからデータをプルすることができます。

関連する問題