我试图在我的SSAS多维数据集中添加一个新列。该列是日期字段,并链接到我的DimDate表(日期维度)。该日期表示项目完成日期。
然而......并非所有项目都项目完成日期,因为旧项目没有被赋予此值。这是预料之中的。我们不想把伪造的日期放到现场,只是为了让SSAS工作。
处理多维数据集时,它会崩溃:
Errors in the OLAP storage engine: The attribute key cannot be found when
processing: Table: 'dbo_FactMyTable', Column: 'MyDate_id', Value: '0'.
The attribute is 'Date Id'.
我无法禁用"缺少值"对于整个项目,因为在大多数情况下,这确实是一个错误。如何为此维度禁用缺失值?
或者有更好的方法来处理这样的缺失日期/值吗?
答案 0 :(得分:0)
小修正 - 根据您的问题,您需要更改特殊测量组的处理错误处理,而不是Dimension。您可以对链接到某个度量值组的所有维度执行此操作,但不能对特定维度执行此操作
您可以使用_Table处理单个度量值组:' dbo_FactMyTable' _首先使用必要的缺失值设置,然后 - 使用默认设置处理多维数据集的其余部分。
这里的主要问题 - 如何处理其余的多维数据集。您可能拥有复杂的系统,可根据数据更新知识动态创建处理XMLA脚本(我使用SSIS);在这种情况下,你不会问这个问题。假设您的环境更简单 - 您更新多维数据集并希望完全处理它。在这种情况下,我会推出以下工作流程:
这将首先更新Dimensions,然后 - 清除多维数据集中所有度量值组的处理状态标志。之后,您将使用特殊标志处理您的度量组;这个MG的设置处理状态。然后在Cube上的Process Default期间 - 仅覆盖未处理的MG,这将使您的特殊MG不在处理范围内。
答案 1 :(得分:0)
答案有点复杂,但是这篇文章很好地解释了它,包括像我这样受SSAS挑战的屏幕截图。
http://msbusinessintelligence.blogspot.com/2015/06/handling-null-dates-in-sql-server.html?m=1