29

29. 使用 Microsoft SQL Server 分析服務

Analysis Services概觀

安裝Analysis Services

使用Analysis Services

本章總結

Microsoft SQL Server 2000 Analysis Services（過去被稱為 OLAP Services），是 SQL Server 2000 中設計來協助您從事 線上分析處理（online analytical processing，OLAP） 的一個元件，利用這個元件可讓您在您的資料倉儲與資料超市中存取與採擷資料。在本章中，您可學習到何謂 Analysis Services 元件，如何安裝以及如何使用這些元件；此外，您也會學習到 SQL Server 2000 中 Analysis Service 新增的功能。由於本書主要是寫給 SQL Server 管理員而非應用程式開發人員，因此我們的討論將僅止於安裝、設定與管理 Analysis Services 等主題，應用程式開發的部分則不在討論範圍之內。

說明

在本章中，我們可能會不斷的提到 資料倉儲（data warehouse） 與 資料超市（data mart） 這兩個專有名詞。資料倉儲可以從幾個不同的方向來定義，其中之一是把它視為一個商業資料的倉庫，其儲存了從公司 線上交易處理（online transaction processing，OLTP） 系統所獲得的歷史資料以及當前資料。資料超市類似於資料倉儲，不過其所包含的資料僅與公司的某一方面有關。舉例來說，公司可能擁有一個資料倉儲，內含應付帳款、應收帳款以及人力資源等資料，以及一個資料超市，內含應付帳款資料。組成資料倉儲與資料超市的資料通常被規劃成星狀結構描述或雪花狀結構描述，這些在本章稍後都會有所說明。本章所討論的概念大部份均能用在資料倉儲與資料超市，因此除非特別說明，我們使用資料倉儲來同時代表這兩種資料庫。

Analysis Services 概觀

Analysis Services 是一套工具，可用來協助您開發與管理用於線上分析處理的資料。Analysis Services 由 Analysis Service 伺服器、English Query 以及其他支援元件所組成。Analysis Service 伺服器建構資料的 cube 協助您進行多維度分析，Cube一詞是用來描述一個彙總或摘要的資料集合，藉以處理複雜的分析查詢，如每月銷售結果與銷售計劃。（Cube 會在本章稍後

〈OLAP Cubes〉 一節中詳細說明。）

在多維度分析中，多個查詢會從不同的觀點或維度來搜尋資料庫。舉例來說，假設現有一個自行車商資料庫，其中仍保持著去年的銷售資料。在多維度分析作業中的一個查詢可能正在搜尋客戶購買習慣，另一個查詢搜尋的卻是每月銷售量，同時更有一個查詢找的是某一特定款式的自行車或元件的銷售成績。雖然資料是分享給所有的查詢，但每個查詢卻以不同的觀點（維度）來看待資料。

Analysis Service 元件

Analysis Services 提供了一些工具與精靈，讓您可用來存取多維度資料。Analysis Service 由下列元件組成：

- 分析管理員 ：提供一個 GUI 來使用 Analysis Service，如建立 Cube、管理安全性以及瀏覽資料來源。
- 資料倉儲架構 ：一組實作 SQL Server 2000 資料倉儲功能的元件與 API。
- 資料轉換服務（DTS） ：協助載入及轉換資料到資料超市或資料倉儲。DTS 是由匯入精靈與匯出精靈組成，可用來遷移資料及轉換資料。DTS 的細節介紹請參閱 第24章 。
- 儲存機制（Repository） ：包含一些介面、資料庫結構描述模型，以及預先定義的資料轉換方式以符合資料倉儲架構。因為資料轉換是建立在有規則的基礎上，所以它們的定義可以儲存起來，以供將來重新使用。
- 資料採擷（Data Mining） ：提供了定義與實作多維度 cube 的演算法。
- English Query ：英文語系的問題轉換為可以在資料庫上執行的 SQL 陳述式。
- 延伸標記語言（XML） ：提供一個標準格式化與資料呈現的語言。XML 是應用程式對應用程式之間資料轉換的重要元件，並可用來將資料出版至網際網路。

在本章中，我們會將這些元件組合在一起，猶如組合拼圖的各個部分，藉以提供一個統合的工具。

OLAP Cube

在 Analysis Services 中資料的主要表現形式是 OLAP cube。 Cube 是詳細資料以及摘要資料的多維度表現形式， 詳細資料 是特定資料列的資料，而 摘要資料 是彙總資料。Cube 是基於資料自身的分析需求而設計的。每一個 cube 代表一個不同的商務實體，如銷售額、存貨等等。Cube 的每一個面表示資料中不同維度的情狀。換言之，cube 是由資料許多不同的面向所組成，所以稱為一個「資料 cube」。

Analysis Services cube 可透過兩種資料庫結構描述來建立：星狀結構描述和雪花結構描述。 結構描述（Schemas） 事實上是一個發展中的論題，但為了適當的描述 Analysis Services，我們在這裡簡單的了解一下結構描述。這兩種結構描述都是由事實資料表和維度資料表構成。Analysis Services 在資料表中彙總這些資料以建立 cube。讓我們更詳細一點來看這個過程。

事實資料表

事實資料表（fact table） 是資料倉儲中儲存歷史資料的資料表，這些歷史資料是資料倉儲的核心資訊。在我們的自行車商範例中，這個資訊是一個發生在自行車商行的交易記錄（包括資料庫交易與銷售交易）。這個記錄內的資料涵蓋了交易日期、交易類型、銷售項目、交易的總金額、顧客姓名、銷售員姓名等等。這個記錄可用來作為多維度分析的基礎。

正如您所看到的，事實資料表的資料是以商業交易為中心的資料。這些交易可以是某物品的銷售、信用卡交易和利潤等等。基本上，事實資料表記錄著一些商業事件的類型。

資料倉儲中的事實資料表是資料庫中最大的資料表，並且也是操作最頻繁的資料表。您可能想像得到，事實資料表可以包括數百萬個記錄，且能夠佔據超過 1TB（或 1024 GB）的空間。

維度資料表

維度資料表（dimension table） 用來定義事實資料表中的欄位，例如售貨員姓名、交易類型或是項目等等。這個過程與 正規化（normalization） 過程相類似，兩者都是揀取有用的資料以加快處理的效率。事實資料表包含交易的歷史資訊，而維度資料表所包含的資訊，則指出如何從事實資料表中取得有用的材料。換言之，維度資料表是用來載明事實資料表中所包含的資料的意義。

舉例來說，對於一個包含著銷售記錄的事實資料表而言，可能有一個維度資料表包含著與銷售代表有關的資訊，可用來建立像是每個業務員的月份銷售額這類摘要資料；而另一個維度資料表則是包含著地區資訊，可用來建立每地區月份銷售額這類摘要資料。

維度資料表並不像事實資料表那般龐大，相反的是維度資料表通常很小且往往僅含有幾個資料列。資料倉儲一般說來只會有一個到兩個事實資料表，但卻有好幾個維度資料表。

結構描述

星狀結構描述（star schema） 是相當常見的一種資料倉儲架構，它由一個事實資料表和一些維度資料表組成。星狀結構描述意味著一個事實資料表被維度資料表所環繞，呈一顆星的形狀。每一個維度資料表相當於事實資料表中的一個資料行。這些維度資料表是用來架構分析的基礎，以便我們對事實資料表中的資料進行分析。

雪花結構描述（snowflake schema） 中，幾個維度資料表在聯結到事實資料表之前相互聯結，換句話說，先建立一些維度資料表的階層，每一層相當於事實資料表中的一個資料行。圖 29-1 顯示了星狀結構描述與雪花結構描述。

圖29-1　星狀與雪花結構描述

資料彙總

Analysis Services 是以維度資料表內的資料為基礎，從而建立事實資料表內資料行的彙總。舉例來說，與員工相關的維度資料表可用來建立以員工為基礎的銷售資料摘要資訊。與項目相關的維度資料表可用來建立以項目為基礎的資料的摘要資訊。因為彙總是基於維度資料表來建立資料的不同切面（也就是維度），所以可構造一個資料的虛擬 cube，如前所述。

由 Analysis Services 建立的 OLAP cube，本質上就是依照星狀或雪花結構描述來進行計算的彙總函數。您使用 Analysis Services 精靈來建立這些彙總，進而利用彙總來建立商業模型，做出商業決策。

中繼資料（Metadata）

「中繼資料」是用來描述與資料相關的資料，因此，用來描述資料庫資料的摘要與詳細資料便被稱為中繼資料。以我們剛剛的例子來說，銷售資料表即周圍的維度資料表表現了資料的狀態。我們建立的摘要資訊（業務員的銷售資料、各項物品的銷售資料）便是中繼資料。Analysis Services 的主要益處便是建立中繼資料（摘要資料表或彙總）的能力，利用 Analysis Services，您可以簡單地建立中繼資料隨後應用於各種工作，而不用很麻煩的親手維護這些資料。

SQL Server 2000 資料分析增強功能

SQL Server 2000 在資料分析及資料倉儲上提供了不少新增功能，這些新增或增強功能包括了一些工具與資訊，能用來增進資料分析的處理。在本節中，您會學習到這些新增功能中最主要的部分。

資料採擷增強功能

Analysis Services 已整合了新的資料採擷技術，可用來發現關聯式資料庫與 OLAP cube 之間的資料關聯性。這些關聯性可被加入到現有的 OLAP cube 已提供額外的資料分析。其中一個獨一無二的資料採擷新功能是 Microsoft Decision Tree。Microsoft Decision Tree 使用精密的分類技術與演算法來分析資料，接著它會建構一或多個決策樹，可用來針對新資料進行預測分析。舉例來說，我們的自行車商行便可透過這項技術建構決策樹來分析潛在客戶的信用歷史資料與交易歷史資料，由此預測該客戶的信用風險。

資料採擷的另一個新功能是叢集的使用。用於資料採擷的叢集技術與

第12章 中所描述的叢集類型不並相同。當 Analysis Services 執行叢集時，它會使用一種被稱為最鄰近法的演算法將資料錄分組成具有類似特性的叢集。許多時候，這些關聯性都會被隱藏或不易被察覺。因此，叢集技術可以說打開了資料分析的另一扇大門。

此外，SQL Server 資料採擷元件也包含了一些新的精靈與對話方塊，讓資料採擷變得更易於利用。這些新增功能讓 DBA 在建立與維護資料超市或資料倉儲時，可以更快地執行大部分相關的工作。

維度增強功能

SQL Seever 包含了數種新增的維度資料表。SQL Server 現在支援父子式維度、關聯式 OLAP（ROLAP）維度以及可寫入的維度。

父子式維度允許來源資料表中成員之間父子式連結的階層架構定義。父子式關聯性的一個例子是一個來自各部分的元件組合結構。父代為單一的部份，可以擁有許多的子元件，即子代。當進行資料分析時，可使用父子式維度來加強子元件與該部份的連繫。

ROLAP 維度可用來解決 Analysis Services 使用的標準多維度 OLAP（MOLAP）模式的容量限制問題。MOLAP 模式允許維度可包含近乎 500 萬個成員。一旦成員的成長超過了這個限度，就需要 ROLAP 維度。ROLAP 維度可成長得極為龐大，不過在查詢成員集時 MOLAP 模式的效能卻比 ROLAP 要好很多。因此，只有在維度非常龐大時才應定義為 ROLAP 模式。

當您使用可寫入維度（write-enabled dimension）時，維度的成員可透過分析管理員以及支援回寫的用戶端應用程式來更新。可使用 SQL Server 角色來控制用戶端應用程式對維度的寫入存取。SQL Server 角色將在 第34章 介紹。

安全性增強功能

SQL Server 2000 也包含了安全性的增強功能，可針對您用於商務分析的資料提供更佳的保護，畢竟這些資料有可能相當敏感。這些新增功能包括了變更維度資料表的安全性、資料格安全功能、以及支援額外的驗證技術。

維度資料表如今是在 SQL Server 的角色基礎（role-based）安全性模式中進行操作。依照每一個角色的定義，您可以限制其存取個別的維度、層級及成員。此外，您也可設定這些資源的讀取與讀／寫權限。SQL Server 2000 同時支援 FAT 及 NTFS 兩種系統的角色基礎安全性。

SQL Server 2000 允許您在 cube 的資料格層級實施角色。分析管理員包含了定義資料格安全性的對話方塊，您可以控制角色對任何 Cube 資料格組合的存取。此外，每個角色的讀取與讀／寫權限可以不同。

由於 SQL Server 2000 包括了 Windows 2000 安全性模式，當使用者或應用程式需要存取 cube 及其資料時，SQL Server 2000 支援 Kerberos 通訊協定、NT License Manager Security Support Provider、或是其他任何使用 安全性使用者提供介面（Security Support Provider Interface，SSPI） 的提供者來執行驗證動作。這讓您可以在 SQL Server 安裝的所有層級上均有整體一致的安全性。

English Query 增強功能

在 SQL Server 2000 中 English Query 的功能已經增強，可更完整的整合 Microsoft Visual Studio 6.0 等套裝產品。English Query 讓程式開發人員可以將英文敘述整合到應用程式中，而不是 T-SQL 陳述式。此外，新的圖形化使用者介面工具也對開發 English Query 陳述式提供了相當大的幫助。SQL Server 還內含了 SQL 專案精靈，可自動地建立基礎資料庫結構以支援 English Query，讓 English Query 環境更易於設定與使用。這個精靈會掃描資料庫的資料表並建立相關的 SQL Server 元件。

安裝 Analysis Services

Analysis Services 是 SQL Server 2000 的一個元件，要安裝 Analysis Services，請遵循下列步驟：

1. 從裝選單中，按一下 SQL Server 2000的元件 ，然後按一下 安裝 Analysis Services ，出現歡迎畫面。
2. 按 下一步 進入 軟體授權合約 對話方塊。在您閱讀並同意該授權之後，按 是 。
3. 出現 選擇元件 對話方塊，如圖 29-2。在這個對話方塊中，您可以選擇您要安裝的 Analysis Services 元件。按一下每個元件名稱前的核取方塊以選擇所有的元件。如果元件之前已經完成安裝，您將無法改變它核取方塊的狀態。要選擇新的位置來安裝 Analysis Services，請按 瀏覽 。在您選好目的資料夾後，按 下一步 。

   圖29-2　「選擇元件」對話方塊

4. 出現 儲存資料的資料夾位置 對話方塊，如圖 29-3。這個對話方塊與 選擇目的資料夾 對話方塊很類似，不過，此處您要選擇的是儲存資料的資料夾位置。您可以按 瀏覽 來指定一個有別於預設值的位置。在您選好資料的資料夾位置後，按 下一步 。

   圖29-3　「儲存資料的資料夾位置」對話方塊

5. 出現 選擇程式資料夾 對話方塊，如圖 29-4。此處您可以選擇要放置 Analysis Services 的程式資料夾（也就是開始功能表上 Analysis Services 出現的位置）。預設值一般說來都可以接受。按 下一步 完成安裝。

   圖29-4　「選擇程式資料夾」對話方塊

在您完成 Analysis Services 的安裝後，可以安裝 English Query。雖然 English Query 可以說是 Analysis Services 整體服務的一部分，不過它們的安裝卻是分開的。您並不一定要安裝 English Query 才能使用 Analysis Services。要安裝 English Query，請遵循下列步驟：

1. 從 SQL Server 2000 安裝選單中，按一下 SQL Server 2000 的元件 ，然後按一下 安裝 English Query 。安裝程序會先安裝 Microsoft Data Access Components （MDAC） 及 Microsoft Visual Studio 元件。在這些元件完成安裝後，會出現歡迎畫面。按 Continue 繼續安裝。
2. 出現 Microsoft English Query 2000 的軟體授權合約對話方塊。在您閱讀同意後，按 I Agree 。
3. 出現 Microsoft English Query 2000 Setup 對話方塊，如圖 29-5。此處您可選擇您需要的安裝類型－ Complete 或 Run-time Only 。 Complete 會安裝所有的元件， Run-time Only 則允許您指定要安裝哪些元件。您也可以指定安裝的資料夾，不過預設資料夾通常可以接受。除非您是 English Query 的專家，否則按 Complete 即可。接著會安裝 English Query Components 元件。按 OK 完成安裝。

   圖29-5　「Microsoft English Query 2000 Setup」 對話方塊

在您完成安裝後，若要使用 Analysis Services 及 English Query元 件，請按 開始 ／ 程式集 ／ Microsoft SQL Server ／ Analysis Services 。在 Analysis Services 的子目錄中，您有下列 3 個選項：

- 分析管理員 ：啟用 Analysis Services 的主要元件。這個元件包括了一些精靈與公用程式，可讓您開始 Analysis Services 服務。
- 線上叢書 ：啟用 Analysis Services 線上文件。
- MDX Sample Application ：啟用 Analysis Services 提供的一個應用程式範例。

使用 Analysis Services

現在我們已介紹了 Analysis Services 及其安裝的程序，接著讓我們來看一下如何使用它所提供的服務來建立並管理您的資料倉儲。在本節中，我們要先設定一個資料來源，接著在該資料來源上建立一個 OLAP 資料庫，最後在資料庫上建立一個 cube。

設定資料來源

要將 Analysis Services 連接至 SQL Server 資料庫，首要步驟是為伺服器設定一個 ODBC 系統資料來源。您可以利用 系統管理工具 中的 ODBD 資料來源 公用程式來完成這個工作。要設定系統資料來源，遵循下列步驟：

1. 按 開始 ／ 程式集 ／ 系統管理工具 ／ 資料來源（ODBC） ，出現 ODBC 資料來源管理員 對話方塊，如圖 29-6。

   圖29-6　「ODBC 資料來源管理員」對話方塊

2. 按一下 系統資料來源名稱 標籤，如圖 29-7，您會發現在 系統資料來源 方塊中列出了一些已有的資料來源清單。這些資料來源中有些已定義為連線至 SQL Server。依資料庫使用方式的不同，有時我們會需要多個 ODBC 資料來源參照同一個資料庫，這當然是允許的。在本例中，我們要建立一個參照 Northwind 資料庫的 ODBC 資料來源。

   圖29-7　「ODBC 資料來源管理員」的「系統資料來源名稱」標籤

3. 按一下 新增 ，出現 建立新資料來源 對話方塊，如圖 29-8。在選單方塊中，選擇 SQL Server ，然後按 完成 。

   圖29-8　「建立新資料來源」對話方塊

4. 出現 建立新的資料來源至 SQL Server 對話方塊，如圖 29-9。此處您必須給定資料來源的名稱，並給予說明，且須指定要連線的 SQL Server。按 下一步 繼續。

   圖29-9　「建立新的資料來源至 SQL Server」對話方塊

5. 接下來的對話方塊如圖 29-10，您可指定當使用者連線至 SQL Server 時要採用的驗證模式。您可選擇 以網路登入識別碼進行 Windows NT 認證 或是 以登入識別碼及由使用者輸入密碼進行 SQL Server 認證 。（使用者驗證模式在

第34章 中介紹。）在對話方塊下方，您會看到一個預設為選取的核取方塊。如果您不需要在此時連線至 SQL Server 以獲得其他選項的預設設定，將核取方塊改為不選取的狀態。按 下一步 繼續。

圖29-10　指定驗證模式

- 接下來的對話方塊如圖 29-11，您可指定要使用的資料庫、資料庫名稱及 ANSI 模式。Analysis Services 會允許您選擇所要連線的資料庫，因此並不需要提供一個預設的資料庫名稱。不過，指定一個預設資料庫並不會有什麼大礙，因為其他的應用程式也有可能會用到這個資料來源名稱（DSN）。當您完成後，按 下一步 。

圖29-11　指定預設資料庫

- 接下來的對話方塊如圖 29-12，您可以變更 SQL Server 系統訊息的語言為其他的語言，開啟轉譯功能，指定地區設定，指定長時間執行的查詢及驅動程式統計資料的記錄檔位置。當您完成設定後，按 完成 。

圖29-12　指定語言及其他設定

- 出現 ODBC Microsoft SQL Server 設定 對話方塊，如圖 29-13。這個對話方塊說明了將會建立一個新的 ODBC 資料來源並列出您為該資料來源所選擇的所有設定。

圖29-13　「ODBC Microsoft SQL Server 設定」摘要對話方塊

- 您應該按 測試資料來源 以測試一下您的設定。當您按下後，就會開始測試到資料庫的連線。一旦您成功地完成連線測試，按 確定 ，則這個 DSN 就可開始使用。

說明

SQL Server 必須處於執行的狀態才可以設定並測試資料來源。

建立 OLAP 資料庫

現在您已設定並測試了 ODBC 資料來源，接著可以準備來建立一個 OLAP 資料庫。建立 OLAP 資料庫也包括將一個現存的資料庫設定為 OLAP 資料庫。您必須準備指定哪些資料表要用來作為事實資料表，哪些要作為維度資料表。

說明

在本節中，我們會將 Northwind 資料庫設定為一個 OLAP 資料庫。這個資料庫並不具有資料超市或是資料倉儲的所有屬性，不過我們會利用它來作示範，因為它是內建於 SQL Server，並且這個示範過程可以簡單地讓您套用在實際應用之中。

在建立 OLAP 資料庫的過程中，您會用到分析管理員、Cube 建立精靈、維度建立精靈以及儲存設計精靈。要建立該資料庫，遵循下列步驟：

1. 按 開始 ／ 程式集 ／ Microsoft SQL Server ／ Analysis Services ／ 分析管理員 ，出現 分析管理員 視窗，如圖 29-14。

   圖29-14　「分析管理員」視窗

2. 在左邊窗格中展開 Analysis Servers 資料夾，然後展開您的伺服器名稱資料夾。在伺服器名稱上按滑鼠右鍵，並在快顯功能表中選擇 新增資料庫 ，出現 資料庫 對話方塊，如圖 29-15。請輸入資料庫名稱並給它一個簡介說明。在本例中，我們將資料庫命名為 Northwind_OLAP 。

   圖29-15　「資料庫」對話方塊

   說明

   當您展開您的伺服器名稱資料夾時，會發現分析管理員中已安裝了一個範例資料庫。如果您在安裝 Analysis Services 的過程時，在 選擇安裝元件 對話方塊中有選取 範例應用程式 核取方塊的話，就會自動安裝這個名為 FoodMart 2000 的資料庫。

3. 按 確定 回到分析管理員視窗。如果您展開 Analysis Servers 資料夾並展開您的伺服器名稱資料夾，會看到一個新的資料庫已被新增進去。（這個資料庫已經命名，不過尚未連線至 SQL Server 資料來源，不過別緊張，我們等一下就會開始連線。）展開資料庫資料夾（在本例為 Northwind_OLAP 資料夾）可顯示資料來源、Cube、共用維度、採擷模型及資料庫角色，如圖 29-16。

   圖29-16　展開 OLAP 資料庫

4. 在 Cube 資料夾上按滑鼠右鍵，在快顯功能表中將游標移到 新增 Cube ，並在子選單中選擇 精靈 。出現 Cube 建立精靈 歡迎畫面，如圖 29-17。這個精靈是用來選擇要在 Cube 層級上指定的資料來源。

   圖29-17　「Cube 建立精靈」的歡迎畫面

5. 按 下一步 出現 從資料來源選擇一個事實資料表 畫面，如圖 29-18。要選擇 SQL Server 資料庫，按 新增資料來源 。

   圖29-18　「從資料來源選擇一個事實資料表」畫面

6. 出現 資料連結內容 視窗，如圖 29-19。您可在 提供者 標籤中為這個 cube 指定資料來源；不過，在本例中我們要使用 連線 標籤來選擇我們剛才建立的資料來源。

   圖29-19　「資料連結內容」視窗的「提供者」標籤

7. 在 資料連結內容 視窗的 連線 標籤（圖29-20）中選擇資料來源名稱（本例為 DataSourceExample），鍵入連線使用者名稱與密碼，並輸入要使用的初始目錄。如果您沒有管理員密碼（如果您在網路上應該會有），選取 空白密碼 核取方塊。

   圖29-20　「資料連結內容」視窗的「連線」標籤

8. 此時您應按一下 測試連線 來測試連線狀況。如果測試成功，會有一個連線成功的訊息，如果測試失敗，您可能有些部分的輸入錯誤。在連線測試成功後，按 確定 回到 Cube 建立精靈 的 從資料來源選擇一個事實資料表 畫面，如圖 29-21。

   圖29-21　已有資料來源及資料表的「Cube 建立精靈」之「從資料來源選擇一個事實資料表」畫面

9. 在這個畫面的 資料來源和資料表 清單中，在您要用來作為 cube 資料來源的資料表上按兩下。在本例中，我們在 Orders 資料表上按兩下，即使 Orders 資料表實際上並不是一個事實資料表，不過它已經很接近。（此處選擇這個資料表主要是讓一般使用者可以透過這個範例來練習操作。）
10. 按 下一步 出現 選擇定義量值的數字資料行 畫面，如圖 29-22。此處您可選擇一個或一個以上的資料行，以定義為 cube 的數字量值；在彙總時會用到這些資料行。在本例中，選擇 OrderID 與 Freight ，您可在這兩個資料行上按兩下或是按一下向右的箭頭選擇這兩個資料行。

    圖29-22　「選擇定義量值的數字資料行」畫面

11. 按 下一步 出現 選擇 cube 的維度 畫面，如圖 29-23。此處您可選擇要用於 cube 的維度資料表。在本例中，我們要建立一個維度資料表。

    圖29-23　「選擇 cube 的維度」畫面

12. 按 新增維度 出現 維度建立精靈 歡迎畫面，如圖 29-24。

    圖29-24　「維度建立精靈」歡迎畫面

13. 按 下一步 繼續。出現 選擇要如何建立維度 畫面，如圖 29-25。在這個畫面中，您可指定要建立維度的方式。您可選擇星狀結構描述、雪花結構描述、父子式關聯、虛擬維度、或是採擷模型。在本例中，選擇星狀結構描述。

    圖29-25　「選擇要如何建立維度」畫面

14. 按 下一步 出現 選擇維度資料表 畫面，如圖 29-26。本例中我們選擇 Employees 資料表作為維度資料表。

    圖29-26　「選擇維度資料表」畫面

15. 按 下一步 出現 選擇維度類型 畫面，如圖 29-27。此處您可選擇要使用標準維度還是時間維度。在本例中我們選擇 標準維度 。

    圖29-27　「選擇維度類型」畫面

16. 按 下一步 出現 選擇維度的層級 畫面，如圖 29-28。在這個畫面中，您可選取數個彙總的層級，不過在這個簡單的範例中我們只選取一個層級－ Employee Id 。要選擇一個層級，可以在要選取的資料行上按兩下，或是先選取資料行然後按向右的箭頭。
17. 按 下一步 出現 指定成員索引鍵資料行 畫面，如圖 29-29。如果您是從多個資料表建立 cube，可在此處指定資料表索引鍵資料行。

    圖29-28　「選擇維度的層級」畫面

    圖29-29　「指定成員索引鍵資料行」畫面

18. 按 下一步 出現 選擇進階選項 畫面，如圖 29-30。此處您可變更維度、指定成員的排序方式、以及定義儲存模式。如果您正在建立的 cube 非常龐大，您應指定 ROLAP 儲存模式，就如本章之前所討論的一般。如果您選取了其中任何一個選項，精靈就會顯示出適當的畫面來幫助您做決定。此處我們不討論這些畫面。

    圖29-30　「選擇進階選項」畫面

19. 按 下一步 出現 完成維度建立精靈 畫面，如圖 29-31。為維度命名後按 完成 。

    圖29-31　「完成維度建立精靈」畫面

20. 一旦您完成了 維度建立精靈 ，就會回到 Cube 建立精靈 的 選擇 cube 的維度 畫面（如剛剛的圖 29-23 所示），新的維度會出現在 Cube 維度 方塊中。在此處，您可選取要用來在事實資料表上建立摘要資料的維度資料表，或是按 新增維度 執行 維度建立精靈 繼續建立更多的維度資料表。

    按 下一步 繼續。如果出現訊息問您是否要計算資料行，按 是 。接著會出現 完成 Cube 建立精靈 畫面，如圖 29-32。為 cube 命名後按 完成 即可將我們在精靈中所做的一切設定保留下來。

    圖29-32　「完成 Cube 建立精靈」畫面

21. 按 完成 後會帶您到 Cube 編輯器 視窗，如圖 29-33。依照需求來編輯 cube，或是按關閉按鈕來離開 Cube 編輯器 視窗。一般說來編輯動作並不需要。

    圖29-33　「Cube 編輯器」視窗

22. 當您離開 Cube 編輯器 視窗時，會出現一個訊息問您是否要為這個 cube 建立儲存體選項，請按 是 ，會出現 儲存體設計精靈 歡迎畫面，如圖 29-34。

    圖29-34　「儲存體設計精靈」歡迎畫面

23. 按 下一步 出現 選擇資料儲存類型 畫面，如圖 29-35。此處您可指定資料儲存體為多維度、關聯式還是使用兩種資料型態合併的方式，本例中我們選擇 MOLAP 將資料儲存在 Analysis Services 的資料結構中。如果您選擇關聯式OLAP（ROLAP），新的資料表就會儲存在您工作的資料庫中（本例為 Northwind 資料庫）。最後一個選項是 HOLAP（混合式 OLAP），若選取這個選項則資料會留在關聯式資料表中，彙總儲存於多維度結構中。

    圖29-35　「選擇資料儲存類型」畫面

24. 按 下一步 出現 設定彙總選項 畫面，如圖 29-36。此處您可指定盡力彙總的方式。在本例中，接受預設值 100MB，按 開始 建立彙總。

    圖29-36　「設定彙總選項」畫面

    由於我們在本例中使用的資料表相當小，因此計算彙總只需要幾秒鐘。彙總結果會被繪製成圖表， 設定彙總選項 畫面也會再度出現（如圖 29-37）。注意在本例中我們還沒有作更多的製圖，所以這個曲線圖只是圖表上左側的一根垂直線。

    圖29-37　已繪製彙總圖表的「設定彙總選項」畫面

25. 按 下一步 出現 完成設計體精靈 畫面，如圖 29-38。此處您可指定立即完成 儲存體設計精靈 或保存設定並等待一些時間。如果您想等到工作時間之後，系統處於低負載時再來建立儲存體，這個選項就很有用。在本例中，我們選擇 立即處理 。

    圖29-38　「完成設計體精靈」畫面

26. 按 完成 。出現 處理 對話方塊，如圖 29-39。建立 cube 儲存體的作業完成後，畫面底部會出現一個訊息，告訴您處理程序已成功地完成了。按 關閉 結束這個程序。

    圖29-39　「處理」對話方塊

修改現存的 OLAP 資料庫

您可以利用與上述類似的方法，透過分析管理員來修改一個 OLAP 資料庫。在本節中，我們將修改 FoodMart 2000 資料庫。FoodMart 2000 資料庫是 Analysis Services 安裝的一部分（如果您在安裝過程中有選取 範例應用程式 核取方塊的話）。要在 FoodMart 2000 資料庫中編輯 cube，遵循下列步驟：

1. 在 分析管理員 視窗中，展開 Analysis Servers 資料夾，展開您的伺服器，展開 FoodMart 2000 資料夾，然後展開 Cubes 資料夾，如圖 29-40 所示。

   圖29-40　「分析管理員」視窗

2. 在 Sales 資料夾上按滑鼠右鍵，然後從快顯功能表中選擇 編輯 。這會開啟 Cube 編輯器 視窗，如圖 29-41。這個視窗顯示了該 cube 中維度資料表與事實資料表的關聯性。

   在 Cube 編輯器 視窗中，您可使用列選項來編輯 cube：

   - 新增維度 ：您可在 維度 資料夾或左邊窗格中任何一個維度名稱上按滑鼠右鍵，並在快顯功能表中選擇 現有的維度 ，即可開啟 維度管理員 。 維度管理員 類似於您在本章之前看到的 維度建立精靈 ，可用來新增維度或移除現有的維度。
   - 移除維度 ：您可以在要移除的維度名稱上按滑鼠右鍵並選擇 移除 ，如此便可將維度從資料庫中永久移除。
   - 新增、刪除或重新命名量值 ：在量值名稱上按滑鼠右鍵選擇 新增量值 、 刪除 或 重新命名 。
   - 增導出成員 ：在 導出成員 資料夾或任一個導出成員名稱上按滑鼠右鍵，選擇 新增導出成員 。
   - 編輯、刪除、重新命名導出成員 ：在導出成員名稱上按滑鼠右鍵並選擇 編輯 、 刪除 或 重新命名 。

   在右邊窗格的 結構描述 標籤中，您可在維度資料表或事實資料表的標題上按滑鼠右鍵，選擇下列選項：

   - 插入資料表 允許您將資料表新增至資料庫。
   - 變更別名 允許您重新命名現有的 cube 屬性。您可以定義一個以其他 cube 屬性為基礎來取得的 cube 屬性，而不需要改變基礎的屬性。
   - 瀏覽資料 允許您擷取資料表的資料來進行檢視。
   - 取代 允許您選擇不同的資料表來取代已存在資料庫中的資料表。
   - 移除（僅有維度資料表） 允許您從資料庫中移除維度資料表。

   圖29-41　「Cube 編輯器」視窗

3. 在 檢視 功能表中選擇 資料 ，或是在右邊窗格中按一下 資料 標籤，可以看得到 OLAP 系統真正的用處。如圖 29-42所示，在 Cube 編輯器 視窗的 資料 標籤上，有數個下拉式選單，透過選取這些選單，便可觀察以該標準為基礎而取得的摘要資料。這些選單是基於 cube 中的維度來建立。 資料 標籤類似於本章稍後會提到的 Cube 瀏覽器 對話方塊。

   在這個標籤中，您可以選取不同的變數組合以達成對資料的不同分析角度。因為摘要資料已經被計算過，所以可以立即得到結果。如果摘要資料無法使用，您將必須執行個別查詢。在一個大型的資料超市或資料倉儲中，計算彙總可能會需要一段相當可觀的時間。

   圖29-42　「Cube 編輯器」視窗的資料標籤頁

處理資料

一旦您建立了 cube，就可以有數個選項讓您用來檢視及處理資料。這些服務之中，很多可以透過在分析管理員左邊窗格中的 cube 名稱上按滑鼠右鍵來達成。這些選項包括下列各項：

- 處理 用於更新彙總。當基礎資料有所變更時，彙總並不會自動更新，所以必須定期的更新它們。這個處理可能很花時間，因此應當排定執行的週期表（夜間、週末等等）。
- 設計儲存體 開啟 儲存體設計精靈 。允許您修正 OLAP cubes 的基本儲存體屬性。在本章稍早您已經學習過如何使用 儲存體設計精靈 。
- 使用狀況最佳化 開啟 使用狀況最佳化精靈 ，可幫這您基於已經執行的查詢歷史記錄來改善彙總，進而調校 cube。您可以透過檢視已經在資料庫上執行的查詢，並將那些查詢最佳化以完成這個工作。 使用狀況最佳化精靈 會提供一些建議方法來修改那些查詢或對它們自身進行彙總。
- 瀏覽資料 讓您可以檢視彙總。 瀏覽資料 選項會開啟 Cube 瀏覽器 對話方塊，如圖 29-34 所示的 FoodMart 2000 資料庫範例。您可以看到，它和 Cube 編輯器 視窗的 資料 標籤很類似。在 Cube 瀏覽器 對話方塊中，您可以很容易地利用 cube 儲存的彙總建立自訂的結果集。
- 使用狀況分析 開啟 使用狀況分析精靈 ，讓您可以分析那些送往 cube 的查詢。 使用狀況分析精靈 使用的查詢資料，是基於您的標準在 cube 上執行的查詢。這個精靈和 使用狀況最佳化精靈 很相似，允許您選擇基準以判定哪個查詢佔用的時間最長；不過 使用狀況分析精靈 只用來檢視資料。

  Analysis Services 並不會自動更新 OLAP cube，且基礎資料會有所變更，所以您必須依照您的需求來決定更新的頻率，定期為系統更新這些 cube。如果資料更改的很頻繁並且使用者需要最新的資訊，您可能就必須不斷地更新 cube。如果昨天的資料尚可接受，那麼每夜一次更新也許就足夠了。

  您可以在 OLAP 資料庫的 Cube 資料夾上按滑鼠右鍵，並選擇 處理所有的 cube ，如此便可更新所有的 cube。一如之前所說的，如果您要個別更新 cube，可在 cube 名稱上按滑鼠右鍵並在快顯功能表中選擇 處理 。

  SQL Server OLAP cubes 不但能透過一個 OLE DB 應用程式來存取，也可以透過分析管理員來檢視資料，或者設定一個到 OLAP 資料庫的連結。分析管理員的 Cube 瀏覽器 對話方塊是一個很有用的工具，可讓您基於已建立的 cube 來檢視資料。

  圖29-43　「Cube 瀏覽器」對話方塊

  不過，如果您已有一個已經在運作的資料超市或資料倉儲，您可能會發現要將 SQL Server Analysis Services 合併到您現有的工作中有點困難，因為 Analysis Services 必須先基於您使用的資料庫來建立一個新的資料 cube 才能順利工作，並且也須經由一個 OLE DB 介面來存取。如果您現在的應用程式不使用 OLE DB，可能就會無法利用這些服務。

  如果您需要做多維度分析，Analysis Services 在許多不同類型的資料倉儲和資料超市中會是非常有用的。從這些彙總中，您可以使用分析管理員的 Cube 瀏覽器 對話方塊來執行多維度分析。您可依照企業的需求，來決定是否利用 Analysis Services 的服務。

  本章總結

  在本章中，您學習了何謂 Analysis Services，以及如何設定它；也學習到如何建立 cube，以及如何在 SQL Server 資料庫中維護彙總。本章所討論的資訊應該有助於您決定 Analysis Services 是否對您有用。在下一章中，您會學習到與 SQL Server 管理相關的工具與任務。