程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> Analysis Services 2005中數據完整性處理

Analysis Services 2005中數據完整性處理

編輯:關於SqlServer
數據完整性在關系數據庫應用的比較廣泛,特別是在OLTP系統中,但在ETL和加載數據到數據倉庫(DW)時,缺乏提供數據完整性的通常處理,然在SSAS中,數據庫管理員可以非常方便的處理這些問題

在SSAS中,可以通過空值處理和錯誤配置來設置數據完整性處理,其中空值處理和錯誤配置都和未知成員有關
下面就未知成員、空處理、錯誤配置的一些基本概念分別介紹

1、未知成員

SSAS中,維度對象有一個稱為UnknownMember的屬性,它可取的值為:values—None, Hidden, Visible
當為Hidden/Visible值時,SSAS自動的為維度的每一個屬性建立一個稱為 Unknown Member 的成員
當值為Hidden時,指示這個成員將在結果中隱藏
缺省的取值為 None
如果你想改變未知成員的名字,可以修改維度的UnknownMemberName屬性

2、空處理

空處理指定當遭遇空數據時如何處理,它有下面5中可能的值

ZeroOrBlank —這個選擇告訴服務器轉換NULL為0或者空值‘’
Preserve—這個選項告訴服務器保留NULL.服務器會把它當作其他值一樣處理
Error—這個選項告訴服務器說明NULL值為非法的數據項.服務器將產生一個數據完整性錯誤
UnknownMember—這選項告訴服務器以把NULL值作為一個未知的成員處理.但也將產生一個數據完整性錯誤.它只是被應用於作為鍵列的屬性
Default—這是一個條件選項,在維度和CUBE中,它的值為ZeroOrBlank,在挖掘結構和模型中,它的值為UnknownMember

3、錯誤配置
在我們討論錯誤配置之前,我們先必須清楚數據完整性可能產生的各種錯誤類型,前面我們已經了解了一些,下面是一個完整的列表
NullKeyNotAllowed—在遭遇空鍵和記錄丟棄時產生錯誤(當NullProcessing = Error時).
NullKeyConvertedToUnknown— 當一個空鍵被轉為未知成員時產生(當 NullProcessing = UnknownMember時).
KeyDuplicate— 當維度的一個屬性鍵存在重復時產生,一旦屬性鍵必須唯一,服務器將丟棄重復記錄
KeyNotFound— 這是一個在關系數據庫中的引用完整性錯誤

錯誤配置是一個統一處理數據完整性錯誤的一個地方,服務器默認有一個缺省配置(在msmdsrv.ini配置文件中指定),它可以指定在數據庫、維度、CUBE、度量、分區中的錯誤處理
有下面屬性可供配置
KeyErrorLogFile— 記錄完整性錯誤到文件
KeyErrorLimit (Default=zero)— 這是一個錯誤的最大限制數,為-1時表沒有限制
KeyErrorLimitAction (Default=StopProcessing)— 這是一個當錯誤限制數到達時采取的動作,可以設置為暫停處理和暫停錯誤記錄
KeyErrorAction (Default=ConvertToUnknown)— 這是一個當遇到KeyNotFound錯誤時采取的動作,可以設置為轉為未知成員和拋棄記錄
NullKeyNotAllowed (Default=ReportAndContinue)
NullKeyConvertedToUnknown (Default=IgnoreError)
KeyDuplicate (Default=IgnoreError)
KeyNotFound (Default=ReportAndContinue)—當遭遇這個錯誤時的處理動作,可為忽略、報告運行、報告暫停
(注意:空處理動作總是在錯誤配置動作之前開始執行)



下面我將以具體實例來介紹如何解決在OLAP加載時碰到的數據完整性問題
以加載死亡率主題分析為基礎,逐步解決發布時碰到的各種問題
問題1:剛開始發布時碰到的域用戶驗證失敗,不能發布,如圖
Analysis Services 2005中數據完整性處理(圖一)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved