上一篇我們已經完成所有的准備工作,現在我們就開始動手,通過接下來的三篇文章創建第一個多維數據集。
傳統的維度和多維數據集設計方法主要是基於現有的單源數據集。
在現實世界中,當開發商業智能應用程序時,很可能需要處理多個關系數據源。
我們可以通過創建一個DSV提供一個整合的單源視圖,其中僅包括你定義的一個或多個數據源中感興趣的數據。數據源和數據源視圖構成了后面要介紹的維度和多維數據集等結構的基礎。
AS2012 支持的主要關系數據源包括SQL SERVER, Oracle, DB2,Teradata等。
對於某種特定的數據源,可能需要安裝數據提供程序的其他客戶端組件,以便可以在計算機上使用適用於該特定數據源的OLE DB提供程序或.NET提供程序。
這些客戶端組件應該不僅可以在使用SSDT設計數據庫的開發計算機上使用,還必須可以在運行AS實例的服務器計算機上使用。
另外,創建數據源時還可以通過Connection Manager對話框指定其他連接屬性,例如連接查詢超時、隔離級別以及最大連接數等。
本篇我們先准備好多維數據集要使用的數據源,為后續創建多維數據集打下基礎。
文章提綱
-
主要步驟
-
新建項目及IDE中結構介紹
-
創建數據源
-
創建數據源視圖(DSV,作為多維數據集的構建基礎)
-
-
關於DSV必須掌握的六點
-
總結
緊接着上篇文章,我們打開SSDT后,按照如下步驟進行。
主要步驟
一、新建項目及IDE結構介紹
1. 主菜單中, File à New à Project
2. 選擇 Analysis Services Multidimensional and Data Mining Project 模板
3. 輸入ASMultidimensionalPOC名稱,點擊OK創建此項目。
SSDT環境包括多個工具窗口,需要重點關注 Solution Explorer, Properties, Output 窗口。
其中Solution Explorer 窗口需要說明下。
包括8個文件夾:
-
Data Sources:數據源
-
Data Source Views :數據源視圖,后面簡稱為DSV,可包含一個或多個數據源的表
-
Cubes :分析的基礎。一個Cube(多維數據集)由一個度量值組集合和一個維度集合構成。
-
Dimensions:維度,指的是對數據進行切片以查看感興趣的特定數量數據時所依據的類別。
說明:
每個維度包含一個或多個層次結構。存在兩種類型的層次結構:特性層次結構和用戶層次結構。
約定:后面特性層次結構被稱為特性,用戶層次結構被稱為層次結構。特性對應於維度表中的列,而層次結構是通過組合若干相關特性(列)構成的。例如, 絕大多數數據集都具有Time維度。通常情況下,Time維度包含Year、Month、Date和Day特性,以及一個Year – Month – Date 層次結構。
-
Roles (先不討論)
-
Assemblies (先不討論)
-
Miscellaneous (先不討論)
二、創建數據源
使用微軟示例數據庫AdventureWorksDW2012為數據源,下載地址
http://msftdbprodsamples.codeplex.com/downloads/get/165405
下載完直接附加一下就可以了。
創建順序基本按照Solution Explorer 窗口里面文件夾的順序
右鍵 Data Sources à New Data Source…
新建一個源,參考下圖進行填寫。(注意選中Save my password)
指向我們事先准備的AdventureWorksDW2012, 點擊Test Connection通過后點擊OK
可以看到新建的數據源,繼續點擊 Next
選擇 Use a specific Windows user name and password選項,輸入對AdventureWorksDW數據庫具有訪問權限的賬戶憑證,單擊 Next
最后一個頁面,可以更改Data source name,我們使用默認名稱, 點擊Finish就完成了數據源的創建。
三、創建數據源視圖
DSV提供了在OLAP數據庫中使用的表的邏輯視圖。DSV可以包含來自一個或多個數據源的表和視圖。因為多維數據集和維度是從DSV創建的,而不是直接從數據源對象創建的,我們需要在AS數據庫中創建DSV.
步驟:
右鍵 Data Source Views à New Data Source View…
點擊 Next進入下一步
選擇之前我們創建的數據源,下一步。
從左邊Available objects選擇需要的表移至右邊 Included objects中。
下一步
使用默認提供的名字,點擊Finish完成DSV的創建。
完成創建后會自動打開DSV.
DSV設計器包含三個窗格: Diagram Organizer, Tables, Diagram View.
可以通過在DSV設計器中添加、刪除以及修改表和視圖來對DSV進行更改。
下面我們分別介紹這三個窗格:
最右側是 Diagram View 窗格。
Diagram View顯示表及其關系的圖形表示形式。顯示的每個表都包含相應的列及是否有主外鍵標志的指示。表之間關系是通過連接兩個表的線條表示的, 小鑰匙表示主鍵列。連接線顯示表之間的關系。如果雙擊某個連接線,可以找到用於構成該關系的聯接的每個表的列。
若要查看DSV所指定的數據樣本,右擊表,選擇Explore Data, 默認查詢前5000行。通過單擊Sampling Options更改檢索的行數。
左上是Diagram Organizer(關系圖組織程序) 。對關系圖中的表所做的操作會實時反映在整個DSV中。默認情況下,有一個稱為All Tables的關系圖會包含DSV中的所有對象。
左下是Tables窗格,其中顯示DSV中所有表的樹視圖,以及這些表及其他表的關系。
可以看到,主鍵是CurrencyKey
展開Relationships文件夾,DimCurrency通過CurrencyKey列聯接到兩個Fact表
右鍵Relationships à FactInternetSales(using CurrencyKey),選擇Edit Relationship… 可以看到主外鍵關系
關於DSV必須掌握的六點
關於數據源視圖的一些常用功能(針對三個窗格進行操作)需要掌握:
一、在DSV中添加/刪除表
如果一開始表沒有添加完全或需要刪除一些表, 可以右擊 Diagram View 窗格, 選擇Add/Remove Tables 可以進行修改。
二、在DSV中指定主鍵和關系
DSV向導可以提取在基礎關系數據庫中指定的主鍵和關系,並將它們添加到DSV中。但是,你使用的某些OLTP數據可能並沒有為相關表指定主鍵和關系。
DSV設計器提供了針對沒有定義主鍵的表指定邏輯主鍵的功能。通過這種方式,可以高效的修改DSV中表之間的關系,或者在表之間添加新的關系。
若要為某個表設立邏輯主鍵,有兩種方式
1. 在表中選擇要指定為邏輯主鍵的一列或多列,右擊並選擇Set Logical Primary Key
2. 可以通過拖拽的方式設立主外鍵關系。(起點為外鍵, 目標是主鍵)
三、在DSV中添加一個基於命名查詢的表
當現有物理表不能滿足我們要求時,可以直接在DSV 設計器中通過SQL語句查詢已有的表,產生自定義表。
如下圖,在DSV設計器的關系圖窗格中右擊,選擇 New Named Query,直接用一個SQL查詢創建新表。
四、在某些情況下可能要在已有表中創建新列。
例如,員工的首名、中間名和姓氏創建一個包含該員工全名的列。
可以直接右擊Employee,然后選擇New Named Calculation
DSV在AS數據庫的元數據中維護命名計算定義;不會將定義寫到基礎表中。
五、在Diagram Organizer中創建新的視圖
數據倉庫設計由一個或多個事實表以及關聯的維度表構成。
小型數據倉庫通常包含10~20個表, 而較大的數據倉庫可能會包含一百多個表。
DSV中包含非常多的表肯定會在一定程度上增加導航和使用的復雜性。
可以按照主題新建一些自定義的視圖以方便使用。
如下圖方框處默認會創建一個<All Tables>關系圖,你可以增加其他的,如HR主題,財務主題等。
若要創建新的關系圖,請執行以下操作:
1.右擊Diagram Organizer窗格,然后選擇New Diagram
2.將新的關系圖命名為Internet Sales
3.右擊Diagram窗格並選擇Show Tables,選擇需要包含的表。
4.選擇FactInternetSales表,單擊OK
5.右擊剛剛添加的表的標題,然后選擇Show Related Tables.
上述操作可以獲得一個包含FactInternetSales事實表以及相關維度表的關系圖。
如果不想看到某個關系圖中的某個特定表,可以右擊該表並選擇Hide
如果要添加單個表,也可以直接從左下Tables窗格拖拽到Diagram窗格。
六、查看數據源視圖屬性
AS項目中每個對象(表,視圖,列和關系)都具有特定的屬性。
這些屬性就不一一講述了,大家可以自己打開看看。
有幾個簡單提一下。
1. 普通列有Length屬性,僅適用於字符串數據類型,其他數據類型均為 -1.
2. 不能更改的屬性,顯示為灰色(只讀屬性)
3. 可以更改FriendlyName屬性,DSV關系圖視圖中右擊,通過選擇Show FriendlyName選項在用戶友好名稱和原始列名稱直接切換。
4. 命名計算列不包含FriendlyName屬性。
5. 表屬性中TableType顯示基礎數據源時表還是視圖。
總結
現在,你已經成功使用SSDT創建了一個DSV,可以使用這些表來構建多維數據集和維度,后續將會圍繞這個例子繼續進行擴展。
另外說明一下,我們示例中DSV的表都來自於一個數據源,DSV設計器可以在單個DSV中包含來自多個數據源的表。
新增不同源表的步驟類似,只需要將我們提到的步驟稍加組合,簡單說明一下:
首先, 使用數據源向導定義涉及的各個表的數據源。
完成該操作后,可以創建一個DSV, 並在其中包含來自上述數據源之一的表。
這第一個數據源被稱為主要數據源,要求必須是SQL Server數據源。
然后,在DSV設計器中可以選擇其他數據源來添加表(通過Add/Remove Tables)
歡迎大家多多評論與支持, 祝學習進步:)
相關文章列表:
- BI之SSAS完整實戰教程4 -- 部署至SSAS進行簡單分析 @20160908
- BI之SSAS完整實戰教程3 -- 創建第一個多維數據集 @20160907
- BI之SSAS完整實戰教程2 -- 開發環境介紹及多維數據集數據源准備 @20160823
- BI之SSAS完整實戰教程1 -- 開篇, BI簡介 & SSAS簡介 @20160816