データ ウェアハウス アーキテクチャについて
更新 : 2007 年 11 月
Team Foundation のレポート ウェアハウスは、近似スター スキーマで編成されたリレーショナル データベースと、リレーショナル データベース上に構築された OLAP データベースから成る、従来のデータ ウェアハウスです。次の図は、Team Foundation データ ウェアハウスの高レベルなアーキテクチャと、運営ストア、データ ウェアハウス、およびチーム レポート間のリレーションシップを示しています。
運営ストア
Team Foundation の各ツールやプラグインは、Microsoft SQL Server 2005 のリレーショナル データベースを使用して、ツールが日常の操作で使用するデータを格納します。このリレーショナル データベースは、運営ストアと呼ばれることもあります。Team Foundation の運営ストアには、次のものがあります。
共通構造体データベース (TfsIntegration および TfsActivityLogging)
作業項目トラッキング データベース (TfsWorkItemTracking および TfsWorkItemTrackingAttachments)
ソース管理データベース (TfsVersionControl)
Team Foundation ビルド データベース (TfsBuild)
チーム テスト データベース (TfsBuild)
場合によっては、サードパーティ ツール用に作成された運営ストアもあります。
多くの運営ストアと同様、リレーショナル データベースのスキーマは、データのオンライン トランザクション処理用に設計および最適化されます。ツールやプラグインが処理を実行すると、最新の情報が運営ストアに書き込まれます。そのため、運営ストア内のデータは絶えず更新されており、すべてのデータが最新となります。
ウェアハウス アダプタ
各ツールやプラグインには独自のスキーマ要件があり、トランザクション処理を最適化するためにデータは運営ストアに格納されるため、ウェアハウス アダプタの目的は、運営データを、データ ウェアハウスが使用できる形式にすることです。ウェアハウス アダプタは、運営ストアからデータを取得し、データをウェアハウスと互換性のある標準化形式に変換し、変換後のデータをウェアハウス リレーショナル データベースに書き込むマネージ アセンブリです。運営データ ストアごとに別個のアダプタがあります。
ウェアハウス アダプタは、基本のウェアハウス構成またはチーム プロジェクトの新規作成時に使用されるプロセス テンプレートで指定されるデータ フィールドをコピーおよび変換します。この後でプロセス テンプレートを変更し、データ ウェアハウスに書き込まれるデータ フィールドを追加または削除すると、その変更は、アダプタの次の実行時に検出されます。アダプタは、RunIntervalSeconds プロパティで設定される間隔で定期的に実行されます。更新間隔の既定値は 3,600 秒なので、自分の環境に適した更新間隔について十分に検討してください。更新間隔の変更の詳細については、「方法 : Team System 用データ ウェアハウスの更新間隔を変更する」を参照してください。
リレーショナル データベース自体が運営ストアから更新されている場合は、リレーショナル データベースからデータ キューブにデータが書き込まれないことに注意してください。データの読み取りと書き込みの競合を回避するために、データをプッシュおよびプルするウェアハウス アダプタは同期をとります。アダプタが呼び出しを完了した後で、キューブが再処理されます。
ウェアハウス リレーショナル データベース
各ツールは、データ ウェアハウスに対する処理を XML スキーマで記述します。スキーマは、リレーショナル データベースに書き込むフィールドを、ディメンション、メジャー、および詳細で指定します。スキーマは、OLAP データベースにも直接割り当てられます。
ウェアハウス内のデータは、スター スキーマで編成されるテーブルのセットに格納されます。スター スキーマの中心テーブルはファクト テーブルと呼ばれ、関連テーブルがディメンションに相当します。ディメンションは、レポートを小さな要素に分割する手段です。通常、ファクト テーブル内の行には、メジャーの値、またはディメンション テーブルへの外部キー参照が格納されています。行は、ファクト テーブルに含まれるすべての項目の現在の状態を表します。たとえば、"作業項目" ファクト テーブルには、"作業項目" 運営ストアに格納されている作業項目ごとに 1 つの行が含まれています。
ディメンション テーブルは、指定のディメンションに対して存在する値のセットを格納しています。ディメンションは、異なるファクト テーブルおよびキューブ間で共有されることもあれば、1 つのファクト テーブルまたはデータ キューブによって参照されることもあります。たとえば、"人" ディメンションは、"担当者"、"開いたユーザー"、"解決者"、"終了者" の各プロパティについて "作業項目" ファクト テーブルによって参照され、"チェックインしたユーザー" プロパティについて "コード チャーン" ファクト テーブルによって参照されます。
メジャーは、運営データから取得した値です。たとえば、"変更コード合計" は、選択された変更セット内のソース コードの変更の数を表すメジャーです。"カウント" は、カウントされる各項目に 1 つのレコードが対応している限りは暗黙であることが可能な特別なメジャーです。ファクト テーブルで定義されるメジャーは、キューブ内のメジャー グループを形成します。
データ ウェアハウス内のファクト、ディメンション、およびメジャーの詳細については、「データ ウェアハウス キューブの構造について」を参照してください。
ウェアハウス OLAP キューブ
ファクト テーブルは、問題の現在の状態を示すレポートの情報源として優れています。しかし、時間と共に変化するデータの傾向を報告するには、レポートする時間の増分ごとに同じデータを複製する必要があります。たとえば、作業項目またはテスト結果の日単位の傾向を報告するには、ウェアハウスがすべての項目の状態を日単位で保持する必要があります。これによって、データ キューブは、メジャーを日単位で集計できます。ウェアハウス OLAP データ キューブは、基になるスター スキーマのデータと時間データの両方を、多次元構造体に集めます。
データ キューブが処理されるたびに、リレーショナル データベース内にスター スキーマで格納されているデータが OLAP キューブにプルされて、集計および格納されます。キューブ内のデータは集計されて、高レベルなレポートが単純な SELECT ステートメントになります。集計されないと、スター スキーマを使用する複雑な処理が必要になります。キューブによって、各運営ストアのスキーマを知らなくても、また、各ストアに個別にアクセスしなくても、レポートのデータを取得するための一元的な場所が提供されます。
レポート デザイナ レポート
レポート デザイナは Visual Studio のコンポーネントであり、これを使用すると、Team Foundation データ ウェアハウスをデータ ソースとして定義し、レポートを対話形式でデザインできます。レポート デザイナは [データ]、[レイアウト]、および [プレビュー] というタブ付きウィンドウを備えており、データセットを追加して新しいレポート デザインのアイデアを実現したり、プレビューの結果に基づいてレポートのレイアウトを調整したりできます。レポート デザイナには、[データ]、[レイアウト]、および [プレビュー] というデザイン領域に加えて、クエリ ビルダ、式エディタ、およびウィザードも用意されており、イメージを配置したり、単純なレポートを作成する処理を手順に従って実行できます。レポート デザイナの使用方法の詳細については、「Team System のカスタム レポートについて」を参照してください。
Excel レポート
Team Foundation は Microsoft Excel と統合されており、Microsoft Excel を使用してプロジェクトの管理およびレポートの作成を行うことができます。Microsoft Excel には、多次元データを表示および分析するピボットテーブルとピボットグラフが用意されています。これらのピボットテーブルは Team Foundation の OLAP キューブに直接バインドできるため、キューブ内のデータを操作できます。レポートでの Microsoft Excel の使用方法の詳細については、「Team Foundation Server のレポート作成での Microsoft Excel の使用」を参照してください。
セキュリティ
チーム レポートのセキュリティはチーム プロジェクト レベルであるのに対して、Team Foundation データ ウェアハウスのセキュリティはデータベース レベルで定義されます。Team Foundation Server 管理者は、ユーザーのアカウントにアクセス許可を付与または禁止することにより、データ ウェアハウス内のデータにアクセスできるユーザーを決定します。既定では、ウェアハウスへの書き込みアクセスは、ウェアハウス サービスが実行されるサービス アカウントに限定されます。各ツール アダプタはこのセキュリティ コンテキストで実行するため、データ ウェアハウスへの書き込みアクセス許可を持ちます。読み取り専用アクセス許可は、管理者によって個々のユーザーまたはユーザー グループに付与されます。特定のチーム プロジェクトのウェアハウス内のデータを表示できるアクセス許可を持つユーザーは、そのプロジェクトのすべてのデータにフル アクセスできます。しかし、1 つのチーム プロジェクトのデータを表示できるアクセス許可を持つユーザーが、別のチーム プロジェクトのデータを自動的に表示することはできません。データ ウェアハウスへの読み取り専用アクセス許可の付与または拒否の詳細については、「方法 : Team System 用データ ウェアハウスのセキュリティ設定を変更する」を参照してください。