web-dev-qa-db-ja.com

複数のデータベースを単一のデータベースにマージする

すべて、基本的なスキーマを持つ単一のデータベースを作成する必要があります。このデータベースは大きくなり(100GB以上)、データウェアハウスとして使用されます。現在、このデータベースの作成は現在、C#コードを介して「ワンヒット」で実行されています。さまざまなソースからデータを取得します。大量のデータがあるため、この作成はいくつかの問題を引き起こしています。一度に単一のデータベースを作成する代わりに、に

  1. コアデータテーブルを含むいくつかの小さなデータベースを作成します。
  2. 小さなデータベースを単一の大きなデータベースにマージします。
  3. スキーマを構築/関連する制約を追加します。

私の質問は2つあります。

1。複数のデータベース(同じスキーマ/テーブル構造)をマージする最良の方法は何ですか?

2。このデータウェアハウス(非常に大規模なデータベース)を作成するより良い方法はありますか?

御時間ありがとうございます。

15
MoonKnight

最初の質問:同一のスキーマとテーブル構造について言及しましたが、その場合、1つのDBテーブル(小さなDB)から別のDBテーブル(大きなDB)にデータを移動するだけです。このために確保する必要があります

1)データの重複はありませんでした(PKフィールドで少なくとも)

2)SQLサーバーの参照のために、あるデータベースから別のデータベースにデータを移動する

あるデータベースから別のデータベースにデータを転送する

7
solaimuruganv

SQL-Hub( http://sql-hub.com )を使用すると、同じスキーマを持つ複数のデータベースを単一のデータベースにマージできます。プロセスを自動的に実行するようにスケジュールする場合は、ライセンスの支払いが必要になる場合がありますが、UIからこれを行うことができる無料のライセンスがあります。ただし、非常に大量のデータがある場合は、達成したいことに対して少し遅いかもしれません-試してみることもできます。

これらの種類の問題に対する他のいくつかのオプションを調べる記事 here もあります。

6
Alan Hickman

solaの答えは良好で、うまくいきます。別の選択肢があります。まったくマージしないでください。インポートによって作成される複数のベーステーブルの上に、ユニオンオールビューを作成します。これにより、データの移動が大幅に節約されます。このようなビューは パーティションビュー と呼ばれます。

5
usr