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

Analysis Services 2005中數據完整性處理(1)

編輯:關於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)(圖一)

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