SSAS 在 ETL 載入維度/事實資料時,提供三層機制處理資料品質問題:未知成員、空值處理、錯誤設定,三者緊密相關。
UnknownMember 可設為 None (預設) / Hidden / VisibleHidden 或 Visible 時,SSAS 自動為每個屬性建立「未知成員」Hidden:查詢結果隱藏該成員;Visible:顯示UnknownMemberName 自訂顯示名稱| 模式 | 行為 | 適用情境 |
|---|---|---|
ZeroOrBlank | NULL → 0 或空字串 | 數值/字串欄位允許預設值 |
Preserve | 保留 NULL,視同一般值 | 需區分「無資料」與「零值」 |
Error | 視 NULL 為非法,引發資料完整性錯誤 | 嚴格品管,不允許空值 |
UnknownMember | NULL 導向未知成員,並引發錯誤 | 僅限鍵屬性,確保維度鍵不為 NULL |
Default | 維度/Cube:ZeroOrBlank;採礦模型:UnknownMember | 不想顯式指定時的安全預設 |
可在 msmdsrv.ini 設定預設值,亦可在資料庫/維度/Cube/量值群/分區層級覆寫。
NullKeyNotAllowed:空鍵被拒(NullProcessing = Error)NullKeyConvertedToUnknown:空鍵轉未知成員(NullProcessing = UnknownMember)KeyDuplicate:屬性鍵重複,捨棄重複列KeyNotFound:參考完整性違規(外鍵找不到主鍵)| 屬性 | 預設值 | 說明 |
|---|---|---|
KeyErrorLogFile | — | 錯誤記錄檔路徑 |
KeyErrorLimit | 0 | 最大錯誤筆數;-1 表無上限 |
KeyErrorLimitAction | StopProcessing | 達上限動作:StopProcessing/StopLogging |
KeyErrorAction | ConvertToUnknown | KeyNotFound 處理:ConvertToUnknown/DiscardRecord |
NullKeyNotAllowed | ReportAndContinue | 空鍵錯誤處理 |
NullKeyConvertedToUnknown | IgnoreError | 空鍵轉未知成員錯誤處理 |
KeyDuplicate | IgnoreError | 重複鍵處理 |
KeyNotFound | ReportAndContinue | 參考完整性錯誤處理:IgnoreError/ReportAndContinue/ReportAndStop |
執行順序: 空值處理動作 永遠先於 錯誤設定動作執行。
KeyErrorAction = ConvertToUnknown,並建立 ETL 前置清洗流程補齊維度鍵KeyDuplicate = ReportAndContinue,事後補抓錯誤日誌修正來源資料