08_Cube部署與處理

Download Report

Transcript 08_Cube部署與處理

Cube 部屬與處理
部署多維度物件
Cub設計完成後,必須經過部署以及處理兩個步驟,才能夠得到多維度
分析的結果
選項
做法
適合情況
BIDS
直接部署至伺服器
系統測試(SIT)
部屬精靈
XMLA指令碼
實際上線環境中使用
排程進行部署
資料庫同步
精靈
為了使cube服務不中斷,
或當排程處理失敗後,可
以有前一日的結果供使用
備份與還原
Cube搬移到其他伺服器或
災難復原
AMO
利用程式處理部署
使用BIDS部屬

非正式上線用,因為BIDS部署時會覆寫掉Cube既有的
管理設定,包括安全角色和資料分割。
(如要避免重新設定資料,可用部署精靈進行)
BIDS設計模式

連接模式(Connected Mode)
當物件儲存時,所有的修改會立刻反應在SSAS資料庫上,不需
要額外的部署動作。

專案模式(Project Mode)
所以修改不會直接同步至伺服器,修改後必須手動至Analysis
services 伺服器
連接模式(Connected Mode)
專案模式-專案屬性
選項
設定
描述
伺服器
指定目標伺服器的名稱,localhost
資料庫
指定目標資料庫的名稱,如果該資料庫尚
未存在,則BIDS會自動建立。
處理選項
交易式部署
部署模式
預設值
自動偵測Cube到達完整狀態的最小處理模式
完整
完整處理資料庫
請勿處理
只部署變更
False
在部署指令碼中,獨立執行每個指令碼
True
如果部署指令碼失敗,則回復變更
部署全部
覆寫目標資料庫
只部署變更
比較專案與目標資料庫的差異,並且指定
部署變更項目
專案模式(Project Mode)
專案部署後 會儲存這些檔案於 專案/bin資料夾底下
再發送部署指令碼至伺服器,來同步伺服器資料庫
部署精靈
用來支援累加式更新模式
優點:可以讓管理者提高部屬過程的掌握度
BIDS建置檔案描述:
檔案
描述
專案名稱.asdatabase
部署指令碼檔案,包含專案內所有物件的定
義
專案名稱.configsettings
專案名稱.deploymentoptions
專案名稱.deploymenttargets
包含環境設定,如資料來源連線定義
包含專案屬性的部署選項,以及額外的使用
者組態部署設定 ,
ex:資料分割覆寫、角色成員設定
包含部署目標伺服器與資料庫的名稱
部署精靈支援模式:
互動式(Interactive)
部署精靈會讀取建置檔案以及顯示設定值。
可以根據需求覆寫設定值,產出結果為XMLA指令碼。
部署人員可以用來立即執行或是儲存待後續執行
命令列(Command-line)
主要用在自動化執行精靈時,使用者可以透過SSIS或
是其他排程工具驅動部署精靈。
執行檔位於:
C:\Program Files\Microsoft SQL
Server\100\Tools\Binn\VSShell\Common7\IDE 目錄下的
Microsoft.AnalysisServices.Deployment.exe
使用部署精靈
Step1:指定部署指令碼檔案的路徑
Step2:安裝目標
Step3:指定資料分割和角色的選項
Step4:指定組態屬性
Step 5 :選取處理選項
Step6:確認部署
執行指令碼
當部署指令碼產生後,可以利用數種模式來執行指
令碼。

可利用SSMS(SQL Server Management Studio)手動執行

SQL Server Agent服務排程執行

使用SSIS封裝中的「Analysis Services執行DDL工作」
使用xmla執行部署
部屬精靈建立部署指令後會產生 *script.xmla 的檔案
指令碼分兩區段
第一區段
<alter>指令碼之後,
顯示資料庫內各物件的定義
第二區段
<process>指令碼之後,顯示 伺服器該如何處理此資料庫
處理CUBE物件
設計完所有分割和彙總,以及將物件定義部署
完之後,就需要執行物件的處理(processing),如此
一來系統才會讀取來源資料,產生物件成員以及彙
總資料。而使用者才能夠瀏覽物件。
影響分析(impact analysis)
檢視受影響的物件清單
包括:cube 、資料分割、量值
群組、維度…
變更設定(changed setting)
用來修改預設處理設定
使用SSIS處理物件
Analysis services 處理工作
執行 analysis services物件處理作業
資料驗證與完整性
參照完整性
量值空值問題
維度屬性空值問題
變更設定
參照完整性(Referential Integrity:RI)(1/2)
主要是發生於主鍵(維度資料表)-外鍵(事實資料表)對應時的錯
誤。
常見的案例:銷售主檔中,出現了產品主檔中沒有的產品,
或是銷售主檔案件的銷售人員卻未出現在員工主檔。
以往參照完整性在處理錯誤時,是在調出Cube處理時,產生
載入資料的T-SQL語法,然後再逐一拿掉Join條件,來找出哪
一個維度才是罪魁禍首。
在找出來後,接著只能在ETL的過程中,加入邏輯來解決它。
例如:利用WHERE NOT IN句型,將鍵值對應不到的案例再塞
回維度表中。
參照完整性(Referential Integrity:RI)(1/2)
AS 2008 把這問題的解決方案從ETL階段移至多維度
分析的階段,利用「未知成員技術」來簡化過程。
未知成員屬性:
 UnknownMember(未知成員)
None
Hidden
Visible
 UnknownMemberName(未知成員名稱)
開發人員自行設定未知成員的命名
預設為Unknown
未知成員屬性
當UnknownMember屬性設為Visible ,
UnknownMemberName屬性設為「未知的產品」或
「遺漏的產品」。名稱可自行命名
處理後,可在維度物件中看到配置完成的未知成員
量值空值問題
量值空值問題主要是發生在事實資料表的維度鍵值
為空值。
Ex:產品代號為空值,主要原因是在系統記錄資料
遺失(事實資料表遺漏維度外鍵)
量值空值處理設定:位於量值屬性中
Source→NullProcessing分項
NullProcessing
 Preserve(保留)
•將資料保留為空值。使用NonEmpty,NonEmpteCrossJoin或
是Exists等句型時,空值會被排除。
 Erroe(錯誤)
•設定系統空值為無效值。系統會發布資料完整性驗證警
告,同時將該筆資料排除。
 ZeroOrBlank(取代)
•設定此選項,連續數值欄位會被取代為零,至於字串資
料型別欄位則會被取代為空字串
•此法是Analysis Services2000預設處理量值空值的技術
 Automatic(預設值)
•對多維度分析來說,此預設值為「ZeroOrBlank」
維度屬性空值問題
維度屬性空值問題是在維度表的屬性欄位中出現空值。
Ex:產品名稱發生遺漏(當初這個屬性非必填維護欄位)等,此時,
系統會將空值轉換為空字串呈現。
成員鍵值空值選項:
 Preserve
 Error
 UnknownMember
•將空值指派為未知成員,同時系統會產生資料完整性驗
證警告
 ZeroOrBlank
 Automatic
變更設定
當錯誤訊息一發生,OLAP處理會立即停止。
因為系統預設能夠容忍的鍵值遺漏錯誤為零。
解決方法:
處理Cube的畫面右下角點選「變更設定」
視窗選擇 維度索引鍵錯誤→勾選使用自訂錯誤組態
處理錯誤限制
 忽略錯誤計數:
•讓系統完全忽略資料完整性驗證警告,繼續處理。
 發生錯誤時停止:
•可以設定發生錯誤的總數上限,分析者可以自行設定可
容許的錯誤數量,以及設定當錯誤超過容許上限後的處
理模式。
– 停止處理-使Cube停止處理
– 停止紀錄-超過上限後停止紀錄錯誤訊息
索引鍵錯誤動作:
轉換為未知:
將遺漏鍵值指派為未知成員
捨棄紀錄:
將事實資料表具有遺漏鍵值的案例排除
•找不到索引鍵:事實資料表出現維度資料表不存在之索引
值時,所發出的驗證警告
•重覆的索引鍵:
– 維度資料表的主鍵出現重覆
– 維度的階層中出現了一個子層成員對應到多個父層
成員
•Null索引鍵已轉換為未知:
– 當事實資料表維度鍵值遺漏,具系統已將其轉換為
未知成員,即會發布此警告。
•不允許Null索引鍵:NullProcessing→Error,即會發布此警告
資料驗證警報有三種發生時的處理模式:
 忽略錯誤
•系統不發佈警告
 報告並繼續
•僅回報警告,繼續處理
 報告並停止
•回報警告,並終止處理
後兩者都會產生重覆鍵值的完整性驗證警告
回顧步驟
步驟:
Step1:
 設定維度的UnknownMember,UnknownMemberName
屬性
Step2:
 設定維度與量值群組關聯性的「量值群組繫節」
Step3:
 最後,則要在Cube處理設定「索引鍵錯誤動作」
為「轉換為未知」