70以上のSQLServer2008データベースがあり、OLTP環境から別のレポートサーバーにコピーする必要があります。DBがコピーされたら、非正規化、行レベルのセキュリティなど、部分的なデータ変換を行います。SSRSレポートは、これらの静的な非正規化テーブルとビューに基づいて書き込まれます。
70のデータベースすべてをコピーおよび変換するための小さな夜間ウィンドウがあります(3時間)。現在、データベースの平均は約10GBです。
オプション:
1.トランザクションレプリケーション: 各レポートデータベースに100以上の静的非正規化テーブルを作成する必要があります。70のデータベースすべてに対してこれを行うと、ほぼ1晩の制限時間に達します。データベースが大きくなるにつれて、制限時間を超えます。変換を高速化するために、非正規化されたテーブルとビューを混在させることを考えました。しかし、その場合、使用できるソリューションではない動的データと静的データがあります。また、トランザクションレプリケーションを使用する70のデータベースでは、帯域幅の使用が懸念されます。
2.スナップショットレプリケーション: データベース全体を毎晩コピーします。これは、非正規化されたテーブルとビューを混在させることができるため、データ変換プロセスが高速になることを意味します。ただし、スナップショットは完全なデータコピーであるため、DBが大きくなるにつれて、コピーと変換を完了するための制限時間を超えます。
3.ログ配布: 毎晩のウィンドウで、ログ配布を使用してレポートデータベースを更新し、非正規化されたテーブルを切り捨てて再入力し、いくつかのビューを使用できます。ただし、ログ配布では、サブスクライブしているデータベースに追加のテーブルとビューを追加できないことを理解しています。
4.ミラーリング: ミラーリングは非推奨になりましたが、フェイルオーバーまでDBはレポートに対してアクティブではありません。
5. SQLServer2012AlwaysOn。 SQL Server 2012はまだありませんが、リアルタイムではなく1日1回更新するように構成できますか?また、サブスクライブしているデータベース(レポートデータベース)に追加のテーブルとビューを作成できますか?
6.マージレプリケーション: これは、複数のデータソースを1つのデータベースに結合するためのものです。ただし、スケジュールされた更新(1日1回)が可能であり、スナップショット全体を実行するのではなく、サブスクライバDBを最新の変更でのみ更新するように見えます。すべてのテーブルにrowversion列を追加する必要がありますが、これを処理できます。また、このソリューションを使用すると、更新が同期しなくなることなく、サブスクライバデータベースに追加のテーブルを作成できますか?
- 最後のオプションは、SSISを使用して、OLTPデータベースから必要なデータのみを選択することです。非正規化されたテーブルを毎日削除して再作成するのではなく、非正規化されたテーブルへの挿入/更新/削除を処理する必要があるため、このオプションはより多くのリスクを生み出すと思います。
私たちのオプションに関する助けをいただければ幸いです。私が間違った仮定をした場合は、言ってください。