緩時變維度

  • 緩時變維度

維度是經由時間緩慢的變化。

Type0:Retain Original 假設學生資料表,有兩位在98學年度轉學。

  • 建立Analysis Services專案、維度、Cube

─SQL Server Data Tools For Visual Studio─

  1. 左上點選新增→專案→Analysis Services多維度和資料採礦專案
  2. 新增資料來源:

右邊「方案總管」→資料來源→右鍵新增資料來源→下一步→New…→伺服器名稱:.、資料庫名稱:A123456→OK→下一步→勾「繼承」→下一步→完成

  1. 新增資料來源檢視:

右邊「方案總管」→資料來源檢視→右鍵新增資料來源檢視→下一步→選剛剛建立的資料來源(A123456)→下一步→下一步→選取全部資料表移到右邊「包含的物件」→下一步→完成

  1. 設定邏輯主索引鍵、建立關聯

針對[科目表.科目編號]、[學生表.座號]、[年度段考表.段考代號],右鍵→設定邏輯主索引鍵,並建立資料表關聯(如圖)。

  1. 新增維度:

右邊「方案總管」→維度→右鍵新增維度→下一步→勾「使用現有資料表」→下一步→

主資料表 索引建資料行 名稱資料行 命名為
年度段考表 段考代號 段考代號 段考維度
科目表 科目編號 科目編號 科目維度
學生表 座號 座號 學生維度

→下一步→可用的屬性:全勾→下一步→完成。

  1. 建立階層:

建立「段考階層」:年度>段考。

  1. 新增Cube

右邊「方案總管」→CUBE→右鍵CUBE→下一步→勾”使用現有資料表”→下一步→量值群組資料表:勾選「成績單」→下一步→下一步→下一步→下一步→完成。

左上「處理」。

  • 如果執行撿角,請回去SQL Server授予目前使用者(as)讀取A123456資料庫的權限(db_owner或db_datareader)。

(安全性→登入→選取目前使用者(as)→右鍵”屬性”→左邊”使用者對應”→右邊勾選資料庫和權限)

  • 變更「學生表」資料,新增「學年」欄位與資料

─SQL Server─

  1. 開啟SQL Server 2014 → 伺服器名稱:.、驗證:Windows驗證
  2. 在[A123456].[學生表.dbo]右鍵設計,新增一個欄位:
  • 資料行名稱:學年
  • 資料類型:nvarchar(50)

(必須要跟年度段考表的年度串起來,所以資料類型要相同。)

,左上儲存。

  1. 在[A123456].[學生表.dbo]右鍵編輯前200個資料列,點選左上角空白,全選資料表,複製到EXCEL貼上

─Excel─

  1. 將剛剛複製的「學生表」內容貼上,再到底下貼上一次(共兩次)。
  2. 輸入「年度」欄位的資料:
  • 第一次貼上的部分:97
  • 第二次貼上的部分:98
  1. 把98年最後兩個同學刪除後,整個資料複製回去SQL Server覆蓋。

─SQL Server─

  1. 在[A123456].[學生表.dbo]右鍵編輯前200個資料列,點選左上角空白,全選資料表,右鍵>刪除,右鍵>貼上。
  • 重新處理Cube(解決學生表主索引鍵重複的錯誤)
  • 如果直接去重新整理,把學生維度的年度拉進來後,處理Cube時會發生錯誤。因為座號是主索引鍵,而剛剛複製兩份學生表資料,造成主索引鍵重複。)

─SQL Server Data Tools For Visual Studio─

  1. 到資料來源檢視,學生表最上面按右鍵>新增具名計算
  • 資料行名稱:Key
  • 運算式:年度+cast(座號 AS varchar(10))

把「Key」設定成邏輯主索引鍵,學生表最上面按右鍵>瀏覽資料,確認資料有沒有串起來。

  1. 到「Dim_學生」,把剛剛新增的「Key」加進來,左邊屬性點選「Key」,右下角屬性把「Usage設定成Key」。(可是這樣處理Cube會出錯,所以重新建立學生表的維度。)
  2. 重新建立「Dim_學生」,並新增兩個階層:
  • 年度座號階層:年度>座號
  • 年度姓名階層:年度>姓名

,左上角「處理」。

  • 非對稱性維度
  • 建立Analysis Services專案、維度

─SQL Server Data Tools For Visual Studio─

  1. 左上點選新增→專案→Analysis Services多維度和資料採礦專案
  2. 新增資料來源:

右邊「方案總管」→資料來源→右鍵新增資料來源→下一步→New…→伺服器名稱:.、資料庫名稱:SSAS2008OLAP_Sample→OK→下一步→勾「繼承」→下一步→完成

  1. 新增資料來源檢視:

右邊「方案總管」→資料來源檢視→右鍵新增資料來源檢視→下一步→選剛剛建立的資料來源(SSAS2008OLAP_Sample)→下一步→下一步→選取「Dim_Region」資料表移到右邊「包含的物件」→下一步→完成

  1. 設定邏輯主索引鍵

針對[Dim_Region.REGION_KEY],右鍵→設定邏輯主索引鍵,並建立資料表關聯。

  1. 新增維度:

右邊「方案總管」→維度→右鍵新增維度→下一步→勾「使用現有資料表」→下一步→

主資料表 索引建資料行 名稱資料行 命名為
DIM REGION REGION_KEY REGION_KEY Dim_REGION

→下一步→可用的屬性:全勾→下一步→完成。

  1. 建立階層:

建立「REGION階層」:GROUP NAME>COUNTRY NAME>REGION NAME。

  1. 左上「處理」維度,到「瀏覽器」頁籤檢視資料,會發現:

各地區都有一層一層向下的階層資料,例如:大中華區>台灣>台北,但是有一筆資料是:大中華區>香港>香港,就很奇怪。

  1. 回到dim,到「維度結構」頁籤,點選階層裡面的「REGION NAME」,到右下角屬性設定
  • HideMemberIf:ParentName

(如果下面這層跟上一層的資料一樣,該層不顯示)(ex:香港)

  • 循環對應維度的處理
  • 加入資料表、建立維度
  1. 在資料來源檢視中,對空白處按右鍵加入/移除資料表:DIM_ EMPLOYEE。
  2. 將「EMPLOYEE _KEY」設定成邏輯主索引鍵。
  3. 將「MANAGER_KEY」拖曳對應到「EMPLOYEE _KEY」,成為循環對應
  4. 新增維度:

右邊「方案總管」→維度→右鍵新增維度→下一步→勾「使用現有資料表」→下一步→

主資料表 索引建資料行 名稱資料行 命名為
DIM EMPLOYEE EMPLOYEE_KEY MANAGER_KEY Dim_REGION

→下一步→可用的屬性:全勾→下一步→完成。

  1. 回到Dim EMPLOYEE.dim切換到「維度結構」頁籤
  • 點擊左上角屬性:EMPLOYEE KEY,到右下角屬性去設定:找Keycolumn>Namecolumn下拉式清單選EMPLOYEE NAME
  • 點擊左上角屬性:MANAGER KEY,到右下角屬性去設定:找Keycolumn>NamingTemplate下拉式清單定義:總經理、副總、協理
  • 點擊左上角屬性:MANAGER KEY,到右下角屬性去設定:找MembersWithData:NonLeafDataHidden。

Leave a Reply