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

SQL Server 2005 Analysis Services (SSAS) 資料完整性處理:未知成員、空值策略與錯誤設定深度解析

     編輯:關於SqlServer

核心概念

SSAS 在 ETL 載入維度/事實資料時,提供三層機制處理資料品質問題:未知成員、空值處理、錯誤設定,三者緊密相關。

1. 未知成員

  • 維度屬性 UnknownMember 可設為 None (預設) / Hidden / Visible
  • 設為 Hidden 或 Visible 時,SSAS 自動為每個屬性建立「未知成員」
  • Hidden:查詢結果隱藏該成員;Visible:顯示
  • 可透過 UnknownMemberName 自訂顯示名稱

2. 空值處理 — 5 種模式

模式行為適用情境
ZeroOrBlankNULL → 0 或空字串數值/字串欄位允許預設值
Preserve保留 NULL,視同一般值需區分「無資料」與「零值」
Error視 NULL 為非法,引發資料完整性錯誤嚴格品管,不允許空值
UnknownMemberNULL 導向未知成員,並引發錯誤僅限鍵屬性,確保維度鍵不為 NULL
Default維度/Cube:ZeroOrBlank;採礦模型:UnknownMember不想顯式指定時的安全預設

3. 錯誤設定 — 統一處理完整性錯誤

可在 msmdsrv.ini 設定預設值,亦可在資料庫/維度/Cube/量值群/分區層級覆寫。

主要錯誤類型

  • NullKeyNotAllowed:空鍵被拒(NullProcessing = Error)
  • NullKeyConvertedToUnknown:空鍵轉未知成員(NullProcessing = UnknownMember)
  • KeyDuplicate:屬性鍵重複,捨棄重複列
  • KeyNotFound:參考完整性違規(外鍵找不到主鍵)

可設定屬性

屬性預設值說明
KeyErrorLogFile—錯誤記錄檔路徑
KeyErrorLimit0最大錯誤筆數;-1 表無上限
KeyErrorLimitActionStopProcessing達上限動作:StopProcessing/StopLogging
KeyErrorActionConvertToUnknownKeyNotFound 處理:ConvertToUnknown/DiscardRecord
NullKeyNotAllowedReportAndContinue空鍵錯誤處理
NullKeyConvertedToUnknownIgnoreError空鍵轉未知成員錯誤處理
KeyDuplicateIgnoreError重複鍵處理
KeyNotFoundReportAndContinue參考完整性錯誤處理:IgnoreError/ReportAndContinue/ReportAndStop

執行順序: 空值處理動作 永遠先於 錯誤設定動作執行。

實戰案例:死亡率主題 Cube 發布問題排解

  1. 網域驗證失敗:檢查服務帳戶權限、SPN 設定
  2. KeyNotFound 大量出現:調整 KeyErrorAction = ConvertToUnknown,並建立 ETL 前置清洗流程補齊維度鍵
  3. 重複鍵導致處理中止:設定 KeyDuplicate = ReportAndContinue,事後補抓錯誤日誌修正來源資料
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved