web-dev-qa-db-ja.com

レポートと分析のために、複数のデータベースから中央データベースにデータをコピーする

8つを超えるデータベースがあり、すべてSQL Server環境にあります。各データベースの特定のテーブル(50を超えるテーブル)からデータを抽出し、レポートおよび分析(一方向転送)のために中央データベースにダンプする必要があります。

テーブル構造はすべてのデータベースで同じです。別のサーバー上にある中央データベースを除いて、すべてのデータベースが同じサーバー上にあることに注意してください。私はいくつかのオプションを評価しました。私の現在の考えと関連する質問は以下のとおりです。

  1. [〜#〜] ssis [〜#〜]

    SSISを使用すると、ソースデータベースから宛先データベースにデータを転送できます。ただし、変更の追跡はありません。自分で変更を追跡し、データを手動で抽出してプッシュする必要があります。これとは別に、将来管理が困難になるデータソースが異なるため、多くの制御フローと関連データフローを作成することになります。

  2. レプリケーション

    レプリケーションには変更の追跡があるため、データ転送は十分に高速です。ただし、私は各データベースに対してこれらの多くのパブリッシャーを作成する必要があります。このため、サーバーのパフォーマンスに影響があると思います。また、使用するレプリケーションの種類や、パフォーマンスの問題をより適切な構成で処理できるかどうかもわかりません。毎晩の更新で大丈夫です。データ転送はリアルタイムである必要はありません。

ここからどうすればいいですか?

5
user3530778

8つを超えるデータベースがあり、すべてSQL Server環境にあります。各データベースの特定のテーブル(50を超えるテーブル)からデータを抽出し、レポートおよび分析(一方向転送)のために中央データベースにダンプする必要があります。

テーブル構造はすべてのデータベースで同じです。

REPLICATION:レプリケートするオブジェクト(テーブル)でスキーマが頻繁に変更されない場合は、-を使用できます。 T-Repを使用した多対1のレプリケーション(これは、スクリプトと最終結果で書いた非常に徹底した回答です)提供テーブルスキーマをわずかに変更できます。これにより、中央サーバーへのnear-to-realtimeデータ転送が提供されます。

[〜#〜] ssis [〜#〜]:リアルタイムに近いデータ転送が必要ない場合は、SSISを調べることができます- Lookup変換 を使用した増分負荷 増分負荷での行の更新– Integration Servicesへの階段のレベル4 で説明されています。また、この優れたシリーズを参照してください。詳細については、 統合サービスへの階段 を参照してください。または、テスト 変更データキャプチャ(SSIS) (@srutzkyが推奨).

3
Kin Shah

SSISを使用します。 BIMLを使用してSSISパッケージを作成します。 [〜#〜] cdc [〜#〜] または [〜#〜] ct [〜#〜] のどちらか適切な方をオンにします。

複製は概念的にはすばらしいですが、実際には複雑な問題が生じます。もう1つは、より回復力のあるアプローチです。

0
Michael Green