了解資料倉儲架構
更新:2007 年 11 月
Team Foundation 報表倉儲是傳統的資料倉儲,由近似星狀結構描述和 OLAP 資料庫為基礎建立在關聯式資料庫之上所組成。下列圖表顯示 Team Foundation 資料倉儲的高階架構,以及作業存放區、資料倉儲和 Team 報表之間的關聯性 (Relationship)。
作業存放區
Team Foundation 中的每個工具或外掛程式都會在 Microsoft SQL Server 2005 中使用關聯式資料庫來儲存該工具在每天的作業中所使用的資料。這個關聯式資料庫通常稱為作業存放區。Team Foundation 的作業存放區包括:
通用結構資料庫 (TfsIntegration 和 TfsActivityLogging)
工作項目追蹤資料庫 (TfsWorkItemTracking 和 TfsWorkItemTrackingAttachments)
原始檔控制資料庫 (TfsVersionControl)
Team Foundation Build 資料庫 (TfsBuild)
Team 測試資料庫 (TfsBuild)
您也許還有針對協力廠商工具所建立的作業存放區。
與大多數的作業存放區類似,關聯式資料庫的結構描述是針對資料的線上交易處理而設計和最佳化。當工具或外掛程式執行活動時,會將最新的資訊寫入作業存放區,因此作業存放區中的資料會不斷地變更和更新,所有的資料都會保持最新狀態。
倉儲配置器
由於每個工具或外掛程式都具有本身的結構描述需求,而資料會儲存在作業存取區中以針對交易處理作業進行最佳化,所以倉儲配置器的目的就是將作業資料呈現為資料倉儲可以使用的形式。倉儲配置器是 Managed 組件 (Assembly),會從作業存放區擷取資料、將資料轉換為與倉儲相容的標準化格式,並將轉換後的資料寫入倉儲關聯式資料庫。每個作業存放區都有各自的配置器。
倉儲配置器會複製並轉換在基本倉儲設定中所指定的資料欄位,或在建立新 Team 專案時所使用的流程範本中指定的資料欄位。如果之後因為加入或刪除寫入資料倉儲的資料欄位而變更了流程範本,則下次執行配置器時就會偵測到這些變更。配置器會以 RunIntervalSeconds 屬性所設定的頻率定期執行。重新整理頻率的預設設定為 3,600 秒,所以請針對您的安裝仔細考慮適當的重新整理頻率。如需變更重新整理頻率的詳細資訊,請參閱 HOW TO:變更 Team System 資料倉儲的重新整理頻率。
當關聯式資料庫本身從作業存放區進行更新時,不能將資料從關聯式資料庫寫入資料 Cube,這點很重要。若要避免讀寫資料時發生衝突,發送和提取資料的倉儲配置器必須進行同步處理。在配置器完成其呼叫之後,就會重新處理 Cube。
倉儲關聯式資料庫
每個工具都會以 XML 結構描述來描述它提供給資料倉儲的資料。結構描述會將寫入關聯式資料庫的欄位指定為維度 (Dimension)、測量和詳細資料,也會直接對應到 OLAP 資料庫中。
倉儲中的資料會儲存在其結構描述為星狀的一組資料表中。此星狀結構描述的中央資料表稱為事實資料表,而相關的資料表則代表維度。維度可以用來將報表分解為較小的部分。事實資料表中的資料列通常會包含測量的值或是維度資料表的外部索引鍵參考,該資料列代表事實資料表所涵蓋的每個項目的目前狀態。例如,Work Item 事實資料表就針對儲存在工作項目作業存放區中的每個工作項目具有一個資料列。
維度資料表會儲存指定之維度所具有的一組值。不同事實資料表和 Cube 可以共用維度,而且可以由單一事實資料表或資料 Cube 參考維度。舉例而言,Person 維度可由 Work Item 事實資料表用來參考 Assigned To、Opened By、Resolved By 和 Closed By properties 等屬性,也可由 Code Churn 事實資料表用來參考 Checked In By 屬性。
測量是取自作業資料的值。例如,Total Churn 這個測量會指出在選取的變更集中對來源程式碼進行了多少次變更。Count 是一個特殊的測量,因為它可以是隱含的,只要每個計數的項目都擁有一筆記錄即可。在事實資料表中定義的測量會構成 Cube 中的測量群組。
如需資料倉儲中的事實 (Fact)、維度和測量的詳細資訊,請參閱了解資料倉儲 Cube 的結構。
倉儲 OLAP Cube
事實資料表對於顯示目前事務狀態的報表而言,是很好的資訊來源,不過,如果要報告會隨時間變化之資料的趨勢,則需要針對要報告的每段時間複製相同的資料。例如,若要報告工作項目或測試結果的每日趨勢,則倉儲需要保留每天每個項目的狀態。這樣可以讓資料 Cube 每天彙總 (Aggregate) 測量。倉儲 OLAP 資料 Cube 則會將基礎星形結構描述的資料和時間資料彙總為多維結構。
每次在處理資料 Cube 時,儲存在關聯式資料庫星形結構描述中的資料就會提取到 OLAP Cube 中,並加以彙總和儲存。Cube 中的資料會進行彙總,如此一來,高階的報表就成了簡單的 Select 陳述式,再也不需要使用星形結構描述進行複雜的處理。這個 Cube 可提供取得報表資料的集中位置,您不需要知道每個作業存放區的結構描述,也不必個別存取每個存放區。
報表設計工具報表
[報表設計工具] 是 Visual Studio 的一個元件,可以用來將 Team Foundation 資料倉儲定義為資料來源,並以互動方式設計報表。[報表設計工具] 提供資料、配置和預覽索引視窗,您可以加入資料集以提供新的報表設計概念,或者根據預覽結果來調整報表的配置。除了資料、配置和預覽等設計介面外,[報表設計工具] 還提供查詢產生器、運算式編輯器,以及協助您放置影像或逐步建立簡單報表的精靈。如需使用 [報表設計工具] 的詳細資訊,請參閱Team System 自訂報表入門。
Excel 報表
Team Foundation 結合 Microsoft Excel,讓您使用 Microsoft Excel 來管理專案並產生報表。Microsoft Excel 提供樞紐分析表和圖表,可以用來檢視和分析多維資料。您可以將這些樞紐分析表直接繫結至 Team Foundation OLAP Cube,如此就可以與 Cube 中的資料互動。如需使用 Microsoft Excel 製作報表的詳細資訊,請參閱使用 Microsoft Excel 製作 Team Foundation Server 報告。
安全性
Team Foundation 資料倉儲的安全性是定義於資料庫層級,而 Team 報表的安全性則是定義於 Team 專案層級。Team Foundation Server 系統管理員藉由授與或撤銷使用者帳戶的權限,決定誰能存取資料倉儲中的資料。根據預設,只有執行倉儲服務的服務帳戶才擁有倉儲的寫入權限。每個工具配置器都具有資料倉儲的寫入權限,因為它是在這個安全性內容中執行。系統管理員會將唯讀權限授與個別的使用者或使用者群組。具有檢視倉儲中特定 Team 專案資料之權限的使用者,便具有該專案所有資料的完整存取權限,不過,具有檢視某 Team 專案資料之權限的使用者,並不一定能檢視另一個 Team 專案的資料。如需授與或拒絕資料倉儲之唯讀存取權的詳細資訊,請參閱 HOW TO:變更 Team System 資料倉儲的安全性設定。