2012-01-15 6 views
0

これはあまりにも主観的なstackoverflowの質問かもしれませんが、とにかくそれをやってもらえますか?アプリケーション間のデータ変換のベストプラクティスは何ですか

アプリケーション間のデータ移行に共通の/ベストプラクティスはありますか?私はアプリケーションAをJava/J2EEで書かれていて、PostgreSQLデータベースに接続していて、アプリケーションBはRuby/Railsで書かれ、MySQLデータベースに接続されているとします。

アプリケーションAからアプリケーションBにデータを移行する場合、テーブル構造とAのデータモデルはBとはまったく異なります。したがって、Aから情報を抽出し、その構造を変更してBに挿入します。

また、私は両方のアプリケーションで

を共通IDに例えば基づいて、アプリケーションAからの情報との関係を持っているアプリケーションBの情報を、既存している私はいくつかの空想のSQLスクリプトを書いてみましたが、それはどこにも高速になります。

私がこのようなプロジェクトに直面した最後は、移行を処理するための大きなコードを書いたばかりです。これは私にとって不思議なベストプラクティスですか?私はこれが開発者によって非常に頻繁に行われた仕事だと思っています。多分、利用可能なツールやフレームワークがありますか?

+0

*マニュアル*または*プログラムによる移行を意味しますか? –

+0

プログラムによる移行 –

+1

あまりにも幅広く、この分野でベストプラクティスが存在するのはなぜですか? –

答えて

0

おそらく単一のベストプラクティスではなく、一度アプローチを選択すると、ベストプラクティスのコレクションになります。

1つの戦略は、データを宛先プラットフォームで同じモデル(または非常に近いデータ)にし、宛先プラットフォーム内で変換することです。

たとえば、宛先がSQL Serverの場合、宛先サーバー上にテーブルからテーブルへの直接データコピーを持つ別のデータベースを作成します(データ型は、そこを見ている主なものです) database2.user.table_namesを使用して、宛先データ・モデルにデータを設定します。

ETLツールを使用している場合でも、異種のソース/デスティネーションの問題を排除し、変換に最適なデータベース2の追加インデックスを作成できるようにします。

また、変換はまっすぐなSQLになるため、サーバ間の待ち時間や帯域幅がなくても、ソースと宛先の両方に同時にジョインできます。

テーブルにバイナリデータなどがある場合は、明らかに状況がかなり複雑になります。

0

広い質問、広範な回答?

  • プロセスを

    1. 自動インクリメントなしDatabaseBでデータモデルを、再作成など
    2. をすべてコピーし、適切なデータを、あなたの心のコンテンツに、など、自動化されたプロセスへ

    スケールを操作ステップ1をオリジナルとコピーの両方の現在の内容に基づいて行うことができます。

  • 関連する問題