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