現行システムに BI を追加したいので、どのような構成にするか考えてみた
今回やることを説明してみる
データベースミラーリングで構築された現行システムに対して、BI 機能をアドインするので、少し構成を考えてみたいと思います。
※BI はまったくもって、知識がありません。いい機会なので、少し勉強してみたいと思います。ちなみに、BI 色一切ありません。
使用する環境を説明してみる
今回は構成を考えてみるだけです。実際の内容については、次回書きたいと思います。
現在の構成を説明してみる
SQL Server 2008R2 で動作しており、可用性を担保するため、データベースミラーリングを使用しています。
現在の構成に BI を足した構成を説明してみる
BIサーバを追加しようと思っています。ここで問題になるのがデータの同期方法です。
問題解決可能な構成をいくつか考えてみる
SQL Server のデータベース同期方法はいくつかありますが、今回は3つのパターンを説明します。
※説明図はかなり省略した図になっています。
- ログ配布
バックアップ、コピー、リストアといったジョブを SQL Server Agent でジョブ化します。それらを定期実行することで、プライマリサイトとセカンダリサイトのデータベースを同期します。 - レプリケーション
レプリケーションの種類はいくつか存在しますが、ここでは通常よく使用される(されていた)、トランザクションレプリケーションを説明します。ログ配布と異なり、テーブル単位のレプリケーションが可能です。パブリッシャ(情報の発信)、ディストリビューター(パブリッシャーの情報の配信)、サブスクライバ(ディストリビューターからの情報の購読)というジョブが、SQL Server Agent で動作し、レプリケーションを行います。雑誌の流通みたいなものでしょうか。
※上図は、トランザクションレプリケーションのプッシュ型です。 - Change Data Capture
CDC は SQL Server 2008から導入されたものです。追跡対象のテーブルを設定し、その変更内容をトランザクションログからキャプチャします。キャプチャしたデータは変更差分テーブルに格納されます。差分テーブルに格納されたデータは変更差分を取得するための関数を使用して取得します。
おわりに何かいってみる
さて、どれにしましょうか?それぞれ構成、得手不得手ありますよね。次回は、実際に構成を組んでみたいと思います。