3

仮定のmysqlデータベースからpostgresデータベースにデータを移動する方法は?

シナリオ: 2 つの類似したアプリケーション。ユーザーは、あるアプリケーションから別のアプリケーションに切り替えたいと考えています。しかし、彼は mysql データベースを使用する以前のアプリケーションで特定のデータ情報を保持していました。アプリケーションを切り替えるとき、古いアプリケーションから postgres を使用する新しいアプリケーションにデータを移動する必要があります。

両方のデータベースは、構造とテーブルとテーブルの関係が異なり、テーブルの数とその下の列も異なります。

しかし、あるデータベースから別のデータベースに日付を移動する方法は?

これを行うツールはありますか?もしそうなら、誰もがそのようなツールを提案できます..

4

6 に答える 6

2

必要なものではないかもしれませんが、このページには

「ダウンロード可能な Magic drupal-mysql2pgsql.pl スクリプト」

データ移行の難しさについての議論。

Drupalデータベースのみを移行する可能性があるため、不適切である可能性があります(また、どのアプリケーションが関与しているかは言及していません)

あなたの最善の策は、MySQL データを単純なテキスト形式でエクスポート/バックアップし、それを PostgreSQL 形式に変換してインポートすることです。これには、スクリプト作成/編集が必要です。

もちろん、それがあなたが仕事のためのツールを求めた理由です。

于 2009-10-15T09:35:10.410 に答える
1

また、この種の仕事には ETL ツールを使用することをお勧めします。さまざまな機能を適用すると、移行が 100% 成功します。ビジネス ユーザーには Apatar (apatar.com)、テクニカル ユーザーには Talend (talend.com) などのオープン ソース ツールを使用することをお勧めします。

于 2009-10-30T11:00:35.033 に答える
1

私は次のようにします:

(データベース ツールのみを使用)

  • MySQL で新しいデータベースを作成し、それに空のテーブルを設定します。リレーションは、移行する必要があるものとまったく同じです (postgres)
  • ステートメントを使用して、元のMySQLデータベースから新しいデータベースにデータをコピーしますSELECT(新しいテーブルは古いテーブルとの組み合わせであるため)、またはいくつかのストアドプロシージャである可能性があります...
  • 次に、新しいデータベース用の SQL スクリプトを生成するダンプ ツールを使用して、別の場所に作成します。MySQL の場合、このツールにはmysqldumppostgres 互換スクリプトを生成するオプションがあり--compatible=postgres、その他多くの非常に興味深いオプションがあります。
  • これらのスクリプトを新しいデータベースで実行する
  • 矛盾がないか確認し、修正してください...

(カスタムメイドのアプリケーション + ORM (例: C#、NHibernate) を使用 -- 実装にはさらに時間がかかります):

  • 新しい DBMS に新しいデータベースを作成する
  • 元のデータベースの OR マッピングを作成する
  • 新しいデータベースの OR マッピングを作成する
  • ORM を使用して元のデータをインポートする
  • 新しいデータベースに適合するようにデータを変換し、ORM に挿入します

(既知のツールを使用):

申し訳ありませんが、これを行うことができるツールがあるかどうかはわかりません!

于 2009-10-15T09:38:03.983 に答える
1

あなたが説明している問題は、データ ウェアハウスの世界で最も一般的な問題の 1 つであり、アプリケーション データベース (通常は従来のリレーショナル データ モデル) からデータを取得し、異なる構造のデータ ウェアハウスに統合して集中化する必要があります (ほとんどの場合、次元データ・モデル)。ETL ジョブ (Extract Transform Load) が行うことです。

それらを手動または自動で実行する SQL スクリプトとして使用できます。確立する必要があるのは変換ロジックであり、それを SQL スクリプトとして実装します。

専用の ETL ツールがありますが、あなたのケースではあまり価値がないと思います。

于 2009-10-15T09:50:09.990 に答える
0

わずかな違いはありますが、他のパスと同じパスをお勧めします。これを行うには、ETL ツールを使用します。ETL ツールのほとんどは、今説明した仕事を行います。「ETL」ツールの購入にお金をかけたくない場合は、Talend オープン ソース ETL ツールに投票します。使ってみましたがかなり強力です。ドキュメントと例はhttp://www.talend.comで入手できます。

于 2009-10-21T14:11:30.230 に答える
0

これらのシナリオ向けのツールは、業界全体で存在します。「ETL」と、おそらく扱っているデータベース ベンダー名を Google で検索すると、妥当な時間内に評価できるよりも多くのソリューションが見つかる可能性があります。

于 2009-10-15T09:46:02.883 に答える