1

我知道這主要是一個設計問題。我已經通過在處理時自定義錯誤的方式來了解到這個問題有一個解決方法,但我不喜歡忽略錯誤,並且多維數據集進程也是按照計劃的,所以忽略錯誤不是一個好的選擇。OLAP存儲引擎中的錯誤:處理時找不到屬性鍵

這是發生錯誤的我的多維數據集的一部分。

DimTime

  • PK(INT)
  • MyMonth(INT,示例= 201501,201502,201503等)
  • 另一列

FactBudget

  • PK(INT)
  • 月(INT,示例= 201501,201502,201503等)
  • 另一列...

如下在DSV的關係被設置。

DimTiempo = DimTime,FactPresupuesto = FactBudget,periodo = MyMonth,PeriodoPresupFK = Month 剛翻譯瞭解。
enter image description here

立方體的關係如下: enter image description here

立方體沒有問題,建,處理errror時:屬性密鑰不能處理被拋出時發現。

由於FactBudget有一些DimTime不支持的月份值(201510,201511,201512),所以導致完整性被破壞。

正如答案here所述,這可以在ETL過程中解決。我認爲如果一個事實表的外鍵沒有插入到維度中,我無法獲得關係。

注意MyMonth的值可以是201501,201502,201503等。這是爲年和月連接設置的,DimTime是增量插入的,並且每天計算該列,因此在此時DimTime不具有201507以後的值。

是否有解決方法或模式來處理這種關係?

感謝您考慮我的問題。

回答

0

是否有一個原因,你爲什麼增量填充DimTime? It certainly isn't the standard way to do it。您需要您在事實中使用的值已經存在於維度中。我會簡單地爲DimTime編寫一組完整的數據,並停止它的增量更新。

+0

感謝您的建議,並向我展示對我來說不明的模式,我會牢記它。作爲快速解決方法,我正在考慮逐漸填充事實上,在我不想影響其他使用DimTime的事實的時候匹配DimTime。 –

2

我認爲您所遵循的過程是不正確的:您應該通過簡併/事實維度方法設置與時間有關的任何維度。也就是說,時間維度並不是真正的維度,而是通過事實表本身來填充時間維度。如果你查看退化的維度,你會明白我的意思。

+0

感謝您的建議。我認爲這非常適合交易數據。這種情況涉及固定數據,一個月的預算銷售額。我會記住你的提示。 –

0

我在嘗試處理Halo BI中的多維數據集時遇到了此問題。似乎某些「日期時間」樣式「是」由SQL Server支持,但不支持Halo BI。此語句不會導致一個錯誤:

CAST(CONVERT(char(11),table.[col name],113) AS datetime) AS [col name] 

然而,這並不過程中沒有出現錯誤:

CAST(CONVERT(char(16),table.[col name],120) AS datetime) AS [col name] 

然而無論是在SQL Server管理這些工作的工作室2012年

的另一個原因此錯誤是由於多維數據集度量不正確地映射到事實表。