首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Analysis Services 2005 數據完整性處理深度解析(一):未知成員、空值策略與錯誤配置

     編輯:關於SqlServer

背景:OLTP 完整性 vs OLAP 缺口

關係數據庫中數據完整性機制成熟(OLTP),但 ETL 載入數據倉庫(DW)時常缺乏標準化處理。SSAS(SQL Server Analysis Services)提供聲明式完整性處理,核心圍繞未知成員展開,包含空值處理與錯誤配置兩大維度。

核心概念三部曲

1. 未知成員

維度屬性 UnknownMember 可取值:

  • None(預設):不建立未知成員
  • Hidden:自動建立但結果中隱藏
  • Visible:自動建立且顯示

可通過 UnknownMemberName 自定義顯示名稱。

2. 空值處理策略

遭遇 NULL 時的 5 種處理模式:

選項行為適用場景
ZeroOrBlankNULL → 0 或空字串度量值、屬性填充
Preserve保留 NULL,視同普通值需區分「無值」與「零值」
Error視為非法,拋出完整性錯誤嚴格數據質量管控
UnknownMember歸屬未知成員,並產生錯誤僅限鍵屬性
Default條件選項:維度/Cube 用 ZeroOrBlank,挖掘模型用 UnknownMember快速上手

3. 錯誤配置:統一異常處理中樞

完整錯誤類型譜系:

  • NullKeyNotAllowed:空鍵遭遇且 NullProcessing=Error 時
  • NullKeyConvertedToUnknown:空鍵轉未知成員且 NullProcessing=UnknownMember 時
  • KeyDuplicate:屬性鍵重複,服務器捨棄重複行
  • KeyNotFound:關係型引用完整性錯誤(外鍵掛空)

配置層級:數據庫、維度、Cube、度量、分區均可獨立配置。預設配置於 msmdsrv.ini。

關鍵配置屬性

屬性說明預設值
KeyErrorLogFile錯誤日誌文件路徑-
KeyErrorLimit最大錯誤容忍數,-1 為無限制0
KeyErrorLimitAction達限動作:暫停處理/暫停記錄StopProcessing
KeyErrorActionKeyNotFound 處理:轉未知成員/捨棄記錄ConvertToUnknown
NullKeyNotAllowed空鍵不允許時動作ReportAndContinue
NullKeyConvertedToUnknown空鍵轉未知成員時動作IgnoreError
KeyDuplicate鍵重複時動作IgnoreError
KeyNotFound鍵未找到時動作ReportAndContinue

執行順序鐵律:空值處理動作 總在 錯誤配置動作之前執行。

實戰預告

下文將以「死亡率主題分析」為例,逐步解決發布過程中的實際完整性問題。首個問題:域用戶驗證失敗導致無法發布(見圖)。

域用戶驗證失敗錯誤截圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved